Matt Brown
c07378a713
Fix #4467 - variables are only the same if they were set in the same location
2021-01-29 11:45:01 +01:00
Matt Brown
badf0855ce
Invalidate child methods when signature changes
2021-01-29 11:45:01 +01:00
Matt Brown
9d35e3c251
Fix #4464 - bust cache when Psalm’s version changes, not just composer’s
2021-01-29 11:45:01 +01:00
Matthew Brown
afc38b841c
Add aka
2021-01-29 11:45:01 +01:00
Matthew Brown
647e7de70c
Fix brackets
2021-01-29 11:45:01 +01:00
Matt Brown
15059aa50a
Support a bunch of attributes
2021-01-29 11:45:01 +01:00
Matt Brown
b217916f37
Use better inference for getAttributes return type
...
Fixes #4367
2021-01-29 11:45:00 +01:00
Matt Brown
c64597fa96
Only load xdebug stub afterwards
...
Ref #4459
2021-01-29 11:44:36 +01:00
Matt Brown
0ea0604cf3
Fix #4453 - sanitise @extends types before attempting to parse
2021-01-29 11:44:36 +01:00
Matt Brown
881068d5c0
Detect when targets are incorrectly targeted
2021-01-29 11:44:36 +01:00
Matt Brown
98b755fb6c
Add support for int-mask<...> and int-mask-of<...>
2021-01-29 11:44:35 +01:00
Jáchym Toušek
597b58d3a4
Add psalm-mutation-free to ext-ds ( #4425 )
...
* Add psalm-mutation-free to ext-ds
* Update ext-ds.php
* Update stubs/ext-ds.php
Co-authored-by: Jáchym Toušek <enumag@gmail.com>
Co-authored-by: Matthew Brown <github@muglug.com>
2021-01-29 11:44:35 +01:00
Joe Hoyle
7749682c71
Pass CodeLocation to FunctionParamsProviderInterface interface ( #4444 )
...
Currently the `getFunctionParams()` method of the `FunctionParamsProviderInterface` is never passed the CodeLocation of the analyzed function call. As this is in-scope in the only call site, we can pass the CodeLocation. This means the `getFunctionParams()` is able to issue it's own Issues (which required the code location to attached the Issue to)
2021-01-29 11:44:35 +01:00
Matt Brown
fb81fa13f4
Ensure Stringable is always available to tests that need it
2021-01-29 11:44:35 +01:00
Matt Brown
7c1c2f77f7
Use softer return
2021-01-29 11:44:35 +01:00
Matt Brown
2c2e171441
Use more robust check for Stringable stub
2021-01-29 11:44:35 +01:00
Matt Brown
9f87b99fac
Fix #4435 - ensure casts are always flow-sensitive
2021-01-29 11:44:35 +01:00
Matt Brown
ab90097baf
Remove subpar test
2021-01-29 11:44:35 +01:00
Matt Brown
a495e067ca
Protect more calls
2021-01-29 11:44:34 +01:00
Matt Brown
3ebdb3b952
Use more accurate comparison for non-empty-lists
2021-01-29 11:44:34 +01:00
Matt Brown
f242845195
Fix count call
2021-01-29 11:44:34 +01:00
Matt Brown
f9adf24d6d
Use lists everywhere for args
2021-01-29 11:44:34 +01:00
Matt Brown
116bf2e867
If interface implements __toString it’s also Stringable
2021-01-29 11:44:34 +01:00
Matt Brown
97dc34bed3
Add polyfill for Stringable interface
2021-01-29 11:44:34 +01:00
Matt Brown
951c3715f7
Fix tests
2021-01-29 11:44:33 +01:00
Matt Brown
35fd64bf74
Fix test type
2021-01-29 11:44:33 +01:00
Matt Brown
106747487b
Fix #4429 - any class with a __toString method in PHP8 assumed to implement Stringable
2021-01-29 11:44:33 +01:00
Matt Brown
7f975045f4
Fix #4422 - be aware of nested template params
2021-01-29 11:44:33 +01:00
Matt Brown
1762f39a74
Fix comma
2021-01-29 11:44:33 +01:00
Matt Brown
e440baf671
Improve algebra handling a little better
2021-01-29 11:44:33 +01:00
Matthew Brown
5a5a355336
Bump circle PHP version
2021-01-29 11:44:33 +01:00
Matthew Brown
831bcdc057
Experiment with PHP 7.1 compatibility ( #4421 )
...
* Experiment with PHP 7.1 compatibility
* Let’s hop
2021-01-29 11:44:32 +01:00
Matt Brown
cbaffcee67
Fix #4407 - always scan types in @var docblocks regardless of next element
2021-01-29 11:44:32 +01:00
Simon Podlipsky
35201697e9
Fix preg_match_all param name ( #4416 )
2021-01-29 11:44:32 +01:00
Matt Brown
870d07ba51
Fix #4418 - improve try analysis for mixed, too
2021-01-29 11:44:32 +01:00
Matt Brown
c16d779bca
Fix #4397 - allow offsetGet on inside isset
2021-01-29 11:44:32 +01:00
Benjamin Morel
36b7186712
Ds\Queue & Ds\Set implement ArrayAccess as well ( #4415 )
2021-01-29 11:44:32 +01:00
Matt Brown
d027bbf41b
Remove stubs with variadic middle params
...
Fixees #4377
2021-01-29 11:44:32 +01:00
Matt Brown
95b0d6da91
Maintain old behaviour when file does not exist
2021-01-29 11:44:32 +01:00
Matt Brown
fcf8f442fd
Fix output in tests (for non-existent files)
2021-01-29 11:44:32 +01:00
Matt Brown
6ceedb0916
Fix #4410 - use better path normalisation
2021-01-29 11:44:32 +01:00
Matthew Brown
41e073dc05
Bump Psalm Phar version
2021-01-29 11:44:31 +01:00
Matt Brown
e8b3f55013
Track final-ness of class when evaluating trait returns
2021-01-29 11:44:31 +01:00
Matt Brown
2665b7ec33
Don’t require webmozart/glob
...
Fixes #4408
2021-01-29 11:44:31 +01:00
Matt Brown
5aee8e77d5
Fix #4414 - allow multiple @psalm-assert-if-true on same var
2021-01-29 11:44:31 +01:00
Matt Brown
7703a18bdd
Change working dir after getting paths
2021-01-29 11:44:31 +01:00
Matt Brown
eef4ea018b
Empty checks variables are really falsy checks
2021-01-29 11:44:31 +01:00
Matt Brown
8ecbcc5849
Fix a few bugs
2021-01-29 11:44:31 +01:00
Matt Brown
9daeaacca6
Add null check
2021-01-29 11:44:31 +01:00
Matt Brown
a57d62b71b
Add logic to weed out unnecessary clauses
2021-01-29 11:44:30 +01:00