AndrolGenhald
c24cf9aa8c
Add test for circular reference with stub class.
2022-01-22 13:54:44 -06:00
Bruce Weirdan
d19aad7db1
Display target PHP version
...
Historically it was often not quite clear to users what PHP version
Psalm assumes, and why. This PR addresses this issue by printing the
version and where we got it from right before scanning the files.
2021-11-27 02:18:09 +02:00
Matt Brown
ae1fd44b13
Resolve build issues
2021-03-22 19:37:49 -04:00
AndrolGenhald
45694d37d4
Fix composer major.minor version detection ( fixes #5415 ) ( #5416 )
...
* Fix composer major.minor version detection (fixes #5415 )
* Add PHP 8 polyfill dependency.
* Fix version check.
2021-03-18 09:42:01 -04:00
Bruce Weirdan
205fdd197e
Wrap entrypoints into IIFE to protect their variables ( #5366 )
...
* Wrap entrypoints into IIFE to protect their variables
Fixes vimeo/psalm#5359
* Add tests for Psalm variable isolation
* Capture environment before registering autoloader
2021-03-11 00:14:22 -05:00
Bruce Weirdan
65f0fb0288
Allow multiple version-dependent method stubs ( #5337 )
...
Fixed vimeo/psalm#4836
2021-03-06 17:18:51 -05:00
Bruce Weirdan
beca4a127f
Suppress test issues with Symony functions used with ::class
constant ( #5335 )
...
These appeared in symfony/symfony#40203
2021-03-06 15:29:15 -05:00
Vincent Langlet
a80d5b736b
Rename stub to avoid phpstorm conflict ( #5213 )
2021-02-13 18:42:34 -05:00
Adrien LUCAS
6f1f680b2d
Add option to dump taint graph ( #5080 )
...
* Add option to dump taint graph
* Fix types
* Simplify types
Co-authored-by: Matthew Brown <github@muglug.com>
2021-01-22 16:04:15 -05:00
orklah
f9fccb2b2d
implement DTO for plugins ( #4881 )
...
* implement DTO for plugins
* introduce EventHandler + reintroduce legacy API for plugins
2021-01-06 09:05:53 -05:00
Bruce Weirdan
c27cd3d472
Fix windows builds ( #4775 )
...
* Choco now offers PHP 8 only
* Bump build deps to allow PHP 8 builds
* Bump slevomat
* Disable coverage to allow paratest
* Bump dummy project version to allow testing on PHP 8
2020-12-04 15:11:14 -05:00
Matt Brown
27d928b684
Add failing testcase for #4705
2020-12-01 10:26:45 -05:00
Matt Brown
8799e1a337
Break apart complex method
2020-11-09 00:58:45 -05:00
orklah
10f2966dcb
return types ( #4311 )
...
* return types
* remove willReturn for void methods
2020-10-12 15:02:52 -04:00
Matt Brown
bf98e5b30c
Remove by-ref
2020-10-05 09:16:01 -04:00
Matt Brown
ea47548dd0
4.x - Prevent AfterFunctionCallAnalysisInterface from rewriting return types
2020-10-04 23:39:20 -04:00
Bruce Weirdan
d9776aa710
Fixes crash due to class/filename mismatch ( #4247 )
...
Introduced in 56cddd16bf
2020-09-26 13:31:38 -04:00
orklah
37a2f8a33d
unused use statements ( #4228 )
2020-09-22 01:10:46 -04:00
Bruce Weirdan
cd110c7e2f
Added @psalm-stub-override
for classlikes and methods ( #4177 )
...
Fixes vimeo/psalm#1252
2020-09-13 16:40:31 -04:00
orklah
ead107fa9e
More return types ( #4173 )
...
* add native return types
* redundant phpdoc
2020-09-12 11:24:05 -04:00
orklah
8c7423505a
add native param types ( #4137 )
...
* add native param types
* redundant phpdoc
* add more param types and adds "?" to nullable types
* remove redundant phpdoc
* add more param types and remove redundant phpdoc
* add more param types and remove redundant phpdoc
2020-09-06 19:36:47 -04:00
orklah
73f6fcde48
Short list syntax ( #4102 )
...
* Short list syntax
* revert unrelated CS
2020-09-02 00:17:41 -04:00
Brown
209d17c868
Fix #2891 - treat autoloaded constants better
2020-08-13 09:14:27 -04:00
Toshiyuki Goto
e0d1655582
Add an unqualified classes in PHPUnit/Framework/Assert/Functions.php to $knownBadClasses ( #3985 )
2020-08-11 07:33:11 -04:00
Matthew Brown
73321339a3
Bump nikic/php-parser
2020-08-09 16:23:43 -04:00
Bruce Weirdan
56047dd094
Use composer/package-versions-deprecated instead of ocramius/package-versions ( #3846 )
...
It allows wider range of PHP versions in addition to supporting both
Composer v1 and v2
Fixes vimeo/psalm#3844
2020-07-20 04:53:16 -04:00
Bruce Weirdan
931d35a703
Collect and scan files included by the autoloaders ( #3183 )
...
Refs vimeo/psalm#2861
2020-07-11 17:17:22 -04:00
Brown
a5da803a21
Fix test to work better
2020-07-08 17:42:19 -04:00
Brown
831482951a
Fix things
2020-06-06 11:23:05 -04:00
Brown
438eb17e58
Fix #3367 - ensure --diff works after second run, not third
2020-06-05 12:09:38 -04:00
Matthew Brown
43189b3d55
Allow types to be traversed
2020-03-14 23:54:51 -04:00
Matthew Brown
2e6fe993a8
Fix #2890 - phpstorm.meta.php scanner should be insensitive to method names
2020-03-01 17:11:44 -05:00
Matthew Brown
ced092874a
Make config generation smarter
2020-02-17 22:05:58 -05:00
Philip Hofstetter
f6983fd883
allow setting php version from config or composer.json
...
if a composer.json is present and a PHP version requirement is
configured, we set the php version to the minimal PHP version that
satisfies the composer requirement.
Additionally, this adds a `phpVersion` attribute to the <psalm> tag. If
that's set, it takes precedence over what has been detected in
composer.json.
And finally, the --php-version command line flag continues to work and
takes precedence over the setting in the <psalm> tag
this fixes #2628
2020-01-30 08:48:53 -05:00
Bruce Weirdan
17857163fc
Modular config files ( #2635 )
...
This change introduces an option to have the configuration split across
several files using standard XInclude tags. This may be useful for more
complex configs, or to include auto-generated parts into a manually
written config file.
2020-01-16 15:57:52 -05:00
Тальгат Хайруллов
39a822759d
#2579 TooManyArguments was triggered if the variadic function declared at the autoloader file. Fixed. ( #2580 )
2020-01-12 11:33:38 -05:00
Bruce Weirdan
9027bc6190
Added SuicidalAutoloader test ( #2399 )
...
The idea behind this is that Psalm should not use project autoloader for
its own things. So if we have a project with autoloader and no code,
then any project autoloader hit means Psalm failed to load something
itself.
Right now it highlights several issues in CoreGenericClasses stub:
- usage of `callback` instead of `callable`
- `@property-read` not resolving template parameters
2019-11-30 00:09:07 -05:00
Brown
aa5d82d30d
Fix #2228 - load functions defined on traits included in a class
2019-10-15 12:09:08 -04:00
Matthew Brown
0b4981f01b
Fix #1551 - do better at inferring class constant types
2019-09-14 14:26:31 -04:00
Brown
12eeb8b320
Fix #1935 - clear stub grandchildren
2019-07-11 18:23:02 -04:00
Brown
7d05568e22
Add skipped test for broken stubbing behaviour
...
Ref #1935
2019-07-11 12:51:43 -04:00
Matthew Brown
da42be175f
Apply PHPCS fixes
...
Fixes #1880
2019-07-05 16:27:53 -04:00
Matthew Brown
802016757c
Fix #1891 - don’t enter class_alias if the class doesn’t exist
2019-07-04 15:46:24 -04:00
Matthew Brown
ca53019d6b
Simplify class completion lookup
...
Ref #1822
2019-06-29 21:32:26 -04:00
Brown
6514f2084c
Fix #1860 - be less restrictive about class_exists checks
2019-06-28 10:17:59 -04:00
Barney Laurance
4c57c67e2f
Add end to end tests that invoke psalm as a separate process ( #1798 )
...
* Add end to end tests that invoke psalm as a separate process
* Assert that psalm --init creates config file
2019-06-16 15:56:00 -04:00
Matthew Brown
158a2150a7
Fix #1752 - don’t enter if/else when class/interfaces/functions don’t exist
2019-06-09 23:50:28 -04:00
Brown
e85794038f
Fix #1704 - improve type coercion complaints
2019-05-29 14:22:15 -04:00
Brown
f336720e06
Fix vendor path
2019-05-29 11:58:58 -04:00
Matthew Brown
11509cdc10
Remove ignored symlink
2019-05-23 22:31:54 -04:00