Vincent
280de4bc98
Fix undefined parent method call (ref #7414 )
2022-01-24 09:17:29 +01:00
orklah
63b802bff4
remove TPositiveInt
2022-01-23 23:49:23 +01:00
orklah
7c4f08067b
Merge remote-tracking branch 'upstream/4.x' into upstream-master5
2022-01-23 23:44:04 +01:00
orklah
a7b72b865f
remove TPositiveInt usage for TIntRange
2022-01-23 22:04:18 +01:00
orklah
82d84b0b3a
fix internal properties on interfaces
2022-01-23 13:08:35 +01:00
AndrolGenhald
7d256975e4
Fix cs/psalm errors after rebase.
2022-01-22 17:06:54 -06:00
AndrolGenhald
1686f28a37
Default to using inferred type unless in late static binding context.
2022-01-22 17:06:54 -06:00
AndrolGenhald
0fb0632e0d
Infer type from known ternary condition.
2022-01-22 17:06:54 -06:00
AndrolGenhald
558208e44e
Add type checking for class const assignments, fix several other const issues.
2022-01-22 17:06:54 -06:00
AndrolGenhald
c877ce031e
Use inferred type instead of annotated type where possible.
2022-01-22 17:06:54 -06:00
AndrolGenhald
c18a155f77
Support type annotations for class consts ( fixes #942 ).
2022-01-22 17:06:53 -06:00
AndrolGenhald
3510f55e31
Check for indirect circular dependencies with stubbed parents.
2022-01-22 13:56:10 -06:00
AndrolGenhald
c24cf9aa8c
Add test for circular reference with stub class.
2022-01-22 13:54:44 -06:00
AndrolGenhald
2f2c24cb4f
Add reproducer for stub parent class not being loaded.
2022-01-22 13:30:10 -06:00
orklah
0e891f25ad
refactor description of types in Atomic
2022-01-22 19:34:57 +01:00
orklah
841d4f4429
improve support for enum_exists
2022-01-22 18:27:24 +01:00
orklah
070a1cc7a3
fix merge induced errors
2022-01-22 18:05:32 +01:00
orklah
af1888b631
Merge remote-tracking branch 'upstream/4.x' into upstream-master4
2022-01-22 17:48:42 +01:00
orklah
997d5d5f5f
handle two more cases of firstClassCallable
2022-01-22 17:37:35 +01:00
orklah
d1a946c221
Merge pull request #7454 from petewalker/feat/native-intersections
...
feat: Handle native intersection types
2022-01-22 11:18:54 +01:00
Pete Walker
057a99c9f1
fix: Tests / minor bug
2022-01-22 00:00:45 +00:00
Pete Walker
299eca4daa
fix: Add PHP version checks / more tests
2022-01-21 17:31:48 +00:00
Pete Walker
a3bdf1ba8c
feat: Handle native intersection types
...
Adds native intersection type handling to psalm, removing the previous `UnexpectedValueException`.
Where an intersection is found in the parse tree, the types are resolved using the existing `Type::intersectUnionTypes` function, which I assume is being used when they're encountered in the existing docblock annotations.
I've added a handful of tests to cover this, but they're certainly not exhaustive. Are there any specific edge cases I should target?
This change feels way too simple... so apologies if I've missed something fundamental..!
2022-01-21 12:59:55 +00:00
orklah
f9b26acf6e
Array key exists assert both ways
2022-01-21 00:26:37 +01:00
orklah
f9e392316f
remove unused imports
2022-01-21 00:17:06 +01:00
orklah
fe9d3f02a8
nitpicks
2022-01-20 23:47:41 +01:00
Matthew Brown
0a81f8cd6c
Use objects, not strings, for assertions ( #7410 )
...
* Use objects, not strings, for assertions
* Remove unnecessary param
* Remove some unnecessary checks
* Fix bad find/replace
* Add note about assertions no longer stored as strings in UPGRADING.md
2022-01-20 17:33:06 -05:00
orklah
eb53f7e99c
fix tests
2022-01-20 22:18:03 +01:00
orklah
6f1a5e8a47
Merge pull request #7417 from klimick/partially-applied-closure-inference
...
Contextual type inference for high order function arg
2022-01-20 21:03:46 +01:00
Alberto Piai
9b22d63c5b
fix proc_open stub for php >= 8.0
...
The argument names are defined here:
https://github.com/php/php-src/blob/PHP-8.0.0/ext/standard/basic_functions_arginfo.h#L1773-L1780
2022-01-20 13:57:34 +01:00
Vincent Quatrevieux
c7bfc03a6b
Merge branch '4.x' into call-docblock-method-using-parent
2022-01-20 08:59:50 +01:00
orklah
5c4be6bc21
Merge pull request #7435 from orklah/old-phpunit
...
drop phpunit compatibility aliases
2022-01-19 20:36:44 +01:00
orklah
7d07f42790
fix CS
2022-01-19 20:36:09 +01:00
orklah
5a6dccd4a9
Merge pull request #7420 from orklah/remove-old-things
...
Remove forbidEcho
2022-01-19 20:32:19 +01:00
orklah
bbfdd57d5c
Merge pull request #7363 from zoonru/81_returntypewillchange
...
PHP 8.1: Report missing typehints in overridden native methods
2022-01-19 20:31:54 +01:00
orklah
52a7f0694e
drop compatibility aliases
2022-01-19 19:29:16 +01:00
1914be4ca1
Rollback
2022-01-19 12:44:55 +01:00
78a125ab95
Fix
2022-01-19 12:33:16 +01:00
d970661182
Add separate issue
2022-01-19 12:20:50 +01:00
cee9eb0ead
PHP 8.1: Report missing typehints in overridden native methods
2022-01-19 12:06:35 +01:00
Vincent
7b25ca75f4
Resolve generics of inherited pseudo methods ( fix #7419 )
2022-01-19 11:45:19 +01:00
orklah
cb976f8416
fix merge induced errors
2022-01-18 23:07:35 +01:00
adrew
7e623ed48e
Upcast invokable to callable during hof arg analysis
2022-01-19 00:37:05 +03:00
orklah
477c0113c2
Merge remote-tracking branch 'upstream/4.x' into upstream-master3
2022-01-18 18:37:04 +01:00
orklah
dceaa117cf
remove forbidEcho
2022-01-18 18:25:18 +01:00
orklah
5f749c8a33
remove forbidEcho
2022-01-18 18:14:39 +01:00
adrew
379d0d6c49
Add tests
2022-01-18 18:54:47 +03:00
adrew
3886d5b4c6
Add test for high order function arg inference in class context
2022-01-18 13:12:13 +03:00
adrew
fac7115eae
Add simple test for high order function arg inference
2022-01-18 12:48:53 +03:00
Vincent
33f0de073f
Add test case for parent method call without declared pseudo method
2022-01-18 09:34:05 +01:00
adrew
00ce1107d3
Infer partially applied closure arg by previous function arg
2022-01-18 03:02:21 +03:00
Fabien Villepinte
c9eafa15ad
Improve signature of DOMDocument::loadXML()
2022-01-17 22:52:58 +00:00
Vincent
09fc43a4d8
Add support of docblock method using parent keyword ( fix #7411 )
2022-01-17 19:26:42 +01:00
Matthew Brown
e1d2da792c
More specific test name
2022-01-16 15:34:25 -05:00
Ricardo Boss
26dd4c5b8f
Try to provide literal int types when possible ( fixes #6966 ) ( #7071 )
...
* Fixed vimeo/psalm#6966
* Only accept >= 0 values for mode argument in round()
* Made round() only return float or literal float values and remove unneeded test
* Registered RoundReturnTypeProvider
* Updated cast analyzer to handle single string literal int values as literal ints
* Fixed psalm errors
* Fix invalid property accesses
* Addressed comments
* Added Tests
* Marked RoundReturnTypeProvider as internal
* Fixed CS
2022-01-16 21:33:04 +01:00
Matthew Brown
91902943bd
Make test more of a real-world example
2022-01-16 10:19:51 -05:00
andrew
10012c9e09
Fix self parsing for psalm-if-this-is and psalm-self-out
2022-01-16 16:11:40 +03:00
orklah
de824d6724
Merge pull request #7403 from orklah/readonly_phpdoc_promoted
...
support @readonly for promoted properties
2022-01-16 09:38:37 +01:00
orklah
6578396afb
add test
2022-01-16 09:31:58 +01:00
orklah
3c726e76df
Merge pull request #7401 from orklah/getObjectVarsNoValue
...
Psalm can't be sure get_object_vars will return an empty array unless object is known AND final
2022-01-15 23:27:33 +01:00
orklah
3260b1ad74
make class final in test to revalidate what it's testing
2022-01-15 21:53:05 +01:00
orklah
0beb8e7a4e
fix test
2022-01-15 21:39:29 +01:00
orklah
4344c8ec3f
add test
2022-01-15 21:29:24 +01:00
orklah
e8c8161dd6
fix merge induced errors
2022-01-15 20:32:09 +01:00
orklah
5b82082bbd
Merge remote-tracking branch 'upstream/4.x' into upstream-master2
2022-01-15 20:21:00 +01:00
orklah
9a9243e5fe
Merge pull request #7385 from b2pweb/handle-template-on-pseudo-method
...
Add support of template for docblock methods
2022-01-15 11:26:03 +01:00
orklah
75947c97c6
Merge pull request #7391 from b2pweb/docblock-method-inheritance
...
Handle inherited docblock method
2022-01-15 11:24:06 +01:00
orklah
d2faa5b94f
fix errors after merge
2022-01-14 21:13:34 +01:00
orklah
b633619a2c
Merge remote-tracking branch 'upstream/4.x' into upstream-master
2022-01-14 21:01:25 +01:00
orklah
93fe3e81d4
Merge pull request #7304 from orklah/classconst5
...
Refactor Reconciler::handleLiteralEquality
2022-01-14 19:16:23 +01:00
Vincent
a52362465b
Handle inherited docblock method ( fix #7198 )
2022-01-14 10:30:09 +01:00
Matthew Brown
0ded59d968
Remove unused use
2022-01-13 19:01:56 -05:00
Vincent Langlet
b376a8d4d7
Wip
2022-01-13 22:23:41 +01:00
Vincent Langlet
b1285bd058
Fix cs
2022-01-13 21:53:34 +01:00
Vincent Langlet
1d6ae16504
Add Exception code return type provider
2022-01-13 21:44:06 +01:00
Matthew Brown
58b567a91d
Fix test
2022-01-13 14:44:24 -05:00
Matthew Brown
b49682a485
Simplify issue suppression in tests
2022-01-13 14:38:17 -05:00
Matthew Brown
f439d6550b
Ensure that all entries in test arrays have explicit keys ( #7386 )
...
* Transformation that updates assertions
* Simplify transformation
* Ensure that all tests have keys
* Fix a few remaining keys
2022-01-13 13:49:37 -05:00
Vincent
fe7665aaaf
Add support of template for docblock methods ( fix #7320 )
2022-01-13 11:04:37 +01:00
AndrolGenhald
ceb5644d5b
Add script to generate issues.md.
2022-01-12 15:22:21 -06:00
AndrolGenhald
240032568c
Add test for issues.md to ensure all documented issues are listed.
2022-01-12 14:29:23 -06:00
AndrolGenhald
7558ef5e85
Fix @covers annotation.
2022-01-11 10:03:00 -06:00
orklah
d52c3f0117
Merge pull request #7163 from dvz/explicit-symlink-resolution
...
Add explicit `resolveSymlinks` option for project directories
2022-01-10 21:50:08 +01:00
orklah
af37af7d8c
Merge pull request #7242 from zoonru/seal_all_properties
...
PHP 8.2: seal all properties configuration
2022-01-10 21:36:31 +01:00
orklah
611583c481
Merge pull request #7354 from wouterj/issue-7353/issuehandlers-elements
...
Support multiple <issueHandlers> elements
2022-01-10 21:34:43 +01:00
Patrick Remy
a555543c0c
fix: pass static class name to ReturnTypeAnalyzer
2022-01-10 21:23:52 +01:00
b530f23acc
PHP 8.2: seal all properties by default, add configuration key for lower versions
2022-01-10 10:11:28 +01:00
orklah
549c02d661
Merge pull request #7356 from orklah/keep-class-strings-through-array_merge
...
keep class-strings through array_merge
2022-01-09 16:16:55 +01:00
orklah
413da78568
Merge pull request #7326 from orklah/short_closures_returning_never
...
allow short closure to return never
2022-01-09 16:01:26 +01:00
orklah
52ae26f143
fix test
2022-01-09 15:53:43 +01:00
orklah
65efab3a8d
keep class-strings through array_merge
2022-01-09 15:48:58 +01:00
Wouter de Jong
f92841f2df
Only pass existing paths to realpath()
...
`realpath()` returns `false` if the path does not exists. This caused
these tests to not test what they were expected to (due to `false` being
transformed into `""`, which never matches the project paths).
2022-01-09 14:23:48 +01:00
Wouter de Jong
e4e9edda27
Support multiple <issueHandlers> elements
...
This is likely to occur when including multiple Psalm config files.
2022-01-09 14:11:03 +01:00
orklah
9877517284
add test
2022-01-09 00:37:16 +01:00
orklah
80f617decd
fix test
2022-01-09 00:37:16 +01:00
orklah
48ebbe8c4b
fix test
2022-01-08 22:52:22 +01:00
Bruce Weirdan
1a1b5a9e6a
Merge branch '4.x' into upstream-master
2022-01-08 23:38:29 +02:00
Matthew Brown
4abbd9cb1b
Simplify object comparison
2022-01-07 18:50:13 -05:00
orklah
0d9480ad00
Merge pull request #7335 from orklah/errors_on_int_reconciliation
...
Errors on superior/inferior reconciliation
2022-01-07 20:19:35 +01:00
orklah
5ce626fcdf
fix test
2022-01-07 19:39:24 +01:00
orklah
af28687708
fix reconciliation when the assertions is not part of the existing range and add tests
2022-01-07 19:39:19 +01:00
orklah
6296a60553
add new test that was failing before
2022-01-07 18:18:47 +01:00
Stefan Vetsch
7f2f0d99ec
Issue #7243 : Do not throw exception on xinclude with fallbacks
2022-01-07 09:40:19 +01:00
Bruce Weirdan
762ef8dab4
Merge branch '4.x' into upstream-master
2022-01-07 08:44:32 +02:00
orklah
cbb0c6398f
allow short closure with never
2022-01-06 21:36:34 +01:00
Fabien Villepinte
b9d8dd9d3f
Fix analysis when __invoke() exists
2022-01-06 21:22:18 +01:00
Bruce Weirdan
46bcb626f5
Merge pull request #7321 from weirdan/dont-crash-on-array_map-first-class-callable
2022-01-06 14:11:35 +02:00
Bruce Weirdan
fe036d4db0
Prevent crashes on array_map(...)
...
Fixes vimeo/psalm#7305
2022-01-06 10:38:58 +02:00
orklah
18ab5a099f
Merge pull request #7309 from orklah/emptyStringKeyedArray
...
fix empty string not quoted in keyed array offset
2022-01-06 09:37:28 +01:00
Bruce Weirdan
3fb3db3516
Merge branch '4.x' into upstream-master
2022-01-06 10:05:53 +02:00
orklah
f3bc55e409
Merge pull request #7312 from orklah/empty-array
...
Support PHPStan notation for empty-arrays
2022-01-06 08:45:40 +01:00
Bruce Weirdan
8726065d21
Applied ClosureToArrowFunctionRector
2022-01-06 00:48:04 +02:00
orklah
9d3a51db6a
remove obsolete test and fix a missing exception
2022-01-05 23:08:34 +01:00
orklah
030195a395
parse array{} into an empty array
2022-01-05 23:08:33 +01:00
orklah
a6a0769402
fix test
2022-01-05 22:39:13 +01:00
orklah
72216f9354
fix test
2022-01-05 22:36:22 +01:00
orklah
e7bc6f273a
don't crash when pushing a template to in_array
2022-01-05 22:33:20 +01:00
orklah
7e2b9d0fab
fix empty string in keyed array offset
2022-01-05 22:26:35 +01:00
Bruce Weirdan
94395f18a4
Applied JsonThrowOnErrorRector
2022-01-05 19:32:43 +02:00
Bruce Weirdan
758e0afd96
Merge branch 'master' into rector-literal-number-separator
2022-01-05 12:32:52 +02:00
Bruce Weirdan
9b488e673f
Merge pull request #7300 from weirdan/dead-code-phpversion
2022-01-05 12:31:12 +02:00
Matthew Brown
7595a3c579
Make treatment of interfaces and classes more symmetrical
2022-01-05 01:10:57 +00:00
Bruce Weirdan
c81c5faa83
Drop dead code based on PHP_VERSION_ID
...
Psalm now requires PHP 7.4, so this test is never skipped.
2022-01-05 01:49:27 +02:00
Bruce Weirdan
5758d31161
Apply literal number separator rector
...
I opted for customary 3-digit groups, except version id, where 2-digit
groups are used to match the version id encoding.
2022-01-05 01:00:05 +02:00
Bruce Weirdan
f5dc2ee964
Merge branch '4.x' into upstream-master
2022-01-04 19:42:08 +02:00
Fabien Villepinte
1fa6b612b1
Fix parse_url() return type
2022-01-04 16:09:18 +01:00
Bruce Weirdan
cf962eebc2
Promote conditional tests to always-running
2022-01-04 11:40:55 +02:00
Bruce Weirdan
30013cb81a
Drop orphaned token
...
Refs vimeo/psalm#7285
2022-01-04 10:13:44 +02:00
Bruce Weirdan
ff9b214f65
Merge branch '4.x' into upstream-master
2022-01-04 10:07:18 +02:00
orklah
6f9cbc698b
resolve type alias and class const on UnionTypeComparator
2022-01-04 00:14:08 +01:00
Bruce Weirdan
afa6497051
Dropped THtmlEscapedString
2022-01-03 22:48:59 +02:00
Bruce Weirdan
2e24a16cbb
Dropped legacy plugin API
2022-01-03 18:18:44 +02:00
Bruce Weirdan
ab60d311c2
Merge pull request #7188 from vimeo/muglug-use-invalidscalarargument-less
2022-01-03 06:04:42 +02:00
Bruce Weirdan
966b6ae2b2
Merge pull request #6808 from orklah/exitFunctions3
2022-01-03 06:04:01 +02:00
Bruce Weirdan
f19e4cedc1
Merge pull request #6705 from orklah/phpstorm-generics-removal
2022-01-03 06:03:36 +02:00
orklah
d912663da4
remove isEmpty
2022-01-03 04:10:41 +02:00
Matthew Brown
83911c7408
Remove unnecessary references to empty in TypeCombiner
2022-01-03 04:10:41 +02:00
Matthew Brown
2358b96f54
Fix merge errors
2022-01-03 04:10:39 +02:00
orklah
0747b48d06
remove TEmpty
2022-01-03 04:09:59 +02:00
orklah
b658b2738f
remove exitFunctions
2022-01-02 15:20:01 +02:00
orklah
4f7c1d05c1
remove support for allowPhpstormGenerics
2022-01-02 15:06:04 +02:00
Matthew Brown
b419c299e3
Use InvalidScalarArgument only when we can be sure PHP attempts coercion
2022-01-02 14:56:18 +02:00
orklah
8d6b781b3e
use consistent way to compare php version
2022-01-02 13:35:43 +02:00
Bruce Weirdan
36d5a2a83c
Merge pull request #7019 from zoonru/no_ksort_list
2022-01-02 07:37:21 +02:00
Bruce Weirdan
697db76dc1
Merge pull request #7252 from AndrolGenhald/feature/allow-assertions-on-mutable-object-properties
2022-01-02 07:29:02 +02:00
Bruce Weirdan
094a0651d7
Increase composer timeout
...
This should prevent random failures we've been observing lately.
2022-01-02 07:06:16 +02:00
Bruce Weirdan
376d2a389e
Merge pull request #7259 from klimick/infer-this-context-for-psalm-if-this-is
2022-01-02 05:31:24 +02:00
orklah
2a6f12296e
Merge pull request #7260 from orklah/6691
...
forbid calling impure callable in immutable context
2022-01-01 12:08:07 +01:00
orklah
8e5c9f02bb
fix test
2022-01-01 11:21:43 +01:00
orklah
8049438408
forbid calling impure callable in immutable context
2022-01-01 11:13:45 +01:00