1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 09:19:40 +01:00
Commit Graph

5902 Commits

Author SHA1 Message Date
Bruce Weirdan
190d488196
Merge branch '5.x' into upstream-master 2023-08-26 01:57:03 +02:00
Maximilian Bösing
5948559a31
feature: introducing proper handling of value-of in combination with backed enums
This introduces both:
- a bugfix for a regression introduced by `31eaf83c4` which prevents backed enums are incorrectly identified as literals
- an additional feature so that `value-of` can be used with backed enums to assert any of the enum cases values

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-25 23:58:53 +02:00
Maximilian Bösing
22bcd576d3
qa: add test to verify backed enums are no literals
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-25 23:53:58 +02:00
Bruce Weirdan
828f6618ca
Merge branch '5.x' into upstream-master 2023-08-20 23:56:55 +02:00
Bruce Weirdan
1474340cf2
Fix crash on array access to undefined class 2023-08-20 23:45:30 +02:00
orklah
fb95bc0929
Merge pull request #10092 from mmcev106/respect-stubs-with-autoload-defined-require-path
Respect stubs in all cases
2023-08-16 18:11:35 +02:00
Bruce Weirdan
76a62db2ea
Merge branch '5.x' into upstream-master 2023-08-13 19:46:13 +02:00
Bruce Weirdan
03f7c263fe
Correct type for $enum->name 2023-08-13 05:56:33 +02:00
Kuba Werłos
18a4752970 Add test 2023-08-12 12:28:23 +02:00
Mark McEver
1d1c13a836 Removed trailing whitespace to follow code style 2023-08-08 15:34:23 -05:00
Mark McEver
7ffba7f611 Respect stubs in all cases 2023-08-08 15:07:15 -05:00
Yannick Gottschalk
a4de6d9dc0 Fix #9997
- make SimpleXmlElement and SimpleXmlIterator not a universal object crate
- added typed magic __get method to SimpleXmlElement
- adjusted tests to reflect new behaviour of SimpleXmlElement
- added tests
2023-08-05 17:07:08 +02:00
kkmuffme
02385c2b49 code style + update tests 2023-08-04 23:56:47 +02:00
kkmuffme
0a58a68e9a make (s)printf error reporting more correct/literal
Fix https://github.com/vimeo/psalm/issues/10021
Fix https://github.com/vimeo/psalm/issues/9987 again now for all cases (specifically https://github.com/vimeo/psalm/issues/9987#issuecomment-1624360506)

Use RedundantFunctionCall instead of InvalidArgument, where it's technically valid.
Report TooManyArguments when a format without placeholders is used
Report an error for splat with vprintf/vsprintf
2023-08-04 23:38:48 +02:00
orklah
b9d355e082
Merge pull request #10071 from weirdan/fix-10070
Allow method-like strings in `referencedFunction`
2023-08-01 07:16:55 +02:00
Bruce Weirdan
ec842c0f3d
Allow method-like strings in referencedFunction
Fixes vimeo/psalm#10070
2023-08-01 06:37:01 +02:00
klimick
809b27c499 Fix variadic callable type check 2023-07-30 11:43:07 +03:00
f894cdeb87
Merge remote-tracking branch 'hub/master' into strict_types 2023-07-29 18:22:01 +02:00
4141d79593
Merge remote-tracking branch 'hub/5.x' into strict_types 2023-07-29 18:21:12 +02:00
3e747a692e
Merge branch 'non_falsy_string_literal' into psalm_v6 2023-07-29 15:05:18 +02:00
99dd34c67e
Merge remote-tracking branch 'hub/master' into psalm_v6 2023-07-29 15:04:52 +02:00
63347e71ae
Merge remote-tracking branch 'hub/5.x' into non_falsy_string_literal 2023-07-29 15:04:04 +02:00
c7ab83767a
cs-fix 2023-07-28 11:35:38 +02:00
08e7db1143
Merge branch 'amp_v3' into strict_types 2023-07-28 11:33:07 +02:00
767fa621cf
Merge remote-tracking branch 'hub/master' into amp_v3 2023-07-28 11:23:51 +02:00
orklah
73ebe227b2
Merge pull request #10055 from thbley/master
Add type detection for PDOStatement::fetchAll(PDO::FETCH_CLASS, SomeClass::class)
2023-07-27 19:03:09 +02:00
Thomas Bley
ee505259aa #9974 extended test with PDO::ATTR_DEFAULT_FETCH_MODE for future implementation 2023-07-27 15:59:31 +02:00
Thomas Bley
d600705b0c #9974 removed references_in_scope for setFetchMode 2023-07-27 15:53:05 +02:00
Thomas Bley
66bc28d2a8 #9974 extended return type detection for PDOStatement::fetchAll/fetch with FETCH_COLUMN and FETCH_KEY_PAIR 2023-07-27 01:39:21 +02:00
Bruce Weirdan
6c0a09a36a
Merge pull request #10050 from weirdan/lsp-modernize-progress-reporting
Modernize LSP progress reporting
2023-07-27 01:11:36 +02:00
Thomas Bley
fc74ae83e6 #9974 added return type detection for PDOStatement::fetchAll, extended return type detection for PDOStatement::fetch 2023-07-27 00:40:26 +02:00
orklah
be875f50e4
Merge pull request #10028 from thbley/master
added GitHub CI for unit tests with PHP 8.2 and 8.3
2023-07-26 19:23:15 +02:00
dea38564a9
Merge branch 'amp_v3' into strict_types 2023-07-26 10:57:28 +02:00
b839d8dfe0
Merge remote-tracking branch 'hub/master' into amp_v3 2023-07-26 10:19:11 +02:00
b8b45401ae
Merge branch 'fix_intersection_scanning' into strict_types 2023-07-26 09:58:17 +02:00
ede8367033
Revert for now 2023-07-26 09:57:08 +02:00
Bruce Weirdan
4f6fc3585b
Update tests to account for new progress protocol 2023-07-26 05:16:37 +02:00
d3bea28a12
Merge branch 'fix_intersection_scanning' into strict_types 2023-07-25 10:52:35 +02:00
ac5dd77955
Remove mistakenly (?) ignored functions 2023-07-25 10:50:01 +02:00
8cc5af9592
Fix thread data merging 2023-07-25 10:38:48 +02:00
6b54ea2d38
Merge branch 'fix_intersection_scanning' into strict_types 2023-07-25 10:10:27 +02:00
1ad9fc66f8
Fixes 2023-07-25 10:09:29 +02:00
Bruce Weirdan
0a2a0feaf2 CS fix 2023-07-24 21:59:34 +02:00
Bruce Weirdan
6eb7a688d1 Introduce --map-folder switch
And create PathMapper based on its value
2023-07-24 21:59:34 +02:00
Bruce Weirdan
8a51aaedd4 CS fix 2023-07-24 21:59:34 +02:00
Bruce Weirdan
6b9d9805b1 Account for -r option 2023-07-24 21:59:34 +02:00
Bruce Weirdan
a68c4804f4 Add path mapper 2023-07-24 21:59:34 +02:00
7975164069
Small fix 2023-07-24 11:11:32 +02:00
51cb9c79f8
Fix 2023-07-24 10:51:25 +02:00
07b013d306
Enable strict_types 2023-07-24 10:48:32 +02:00
544762f6cd
Fix tests 2023-07-24 10:22:01 +02:00
79da33221f
Fixes 2023-07-24 09:48:35 +02:00
57dfad65c5
Fix e2e tests 2023-07-24 09:32:46 +02:00
8859e58464
Switch to amp v3 2023-07-24 09:32:45 +02:00
dfbc9dd177
Fix combination of non-falsy-string and falsy literal 2023-07-24 09:07:46 +02:00
Thomas Bley
603dfa2e5a #10026 cleanup phpcs 2023-07-21 22:57:49 +02:00
Thomas Bley
fda483a98b #10026 converted version_compare() to direct comparison with PHP_VERSION_ID 2023-07-21 22:42:27 +02:00
Thomas Bley
7f39dab07b #10026 moved some more signature changes to CallMap_83_delta 2023-07-21 22:26:05 +02:00
Thomas Bley
9590279c62 #10026 added style changes to pass phpcs check 2023-07-21 21:50:30 +02:00
Thomas Bley
51058eb45e #10026 cleanup 2023-07-20 02:02:28 +02:00
Thomas Bley
f34327e079 10026 extended InternalCallMapHandlerTest ignores for php 8.3 2023-07-20 01:01:10 +02:00
Thomas Bley
cbee1e094e #10026 adapted DateTime tests for DateMalformedStringException in PHP 8.3 2023-07-19 23:52:25 +02:00
Thomas Bley
804087b5d5 #10026 added workaround for DateTimeInterface::__unserialize() signature 2023-07-19 23:14:04 +02:00
Thomas Bley
0f99799fa9 #10026 fixed AnnotationTest 2023-07-19 22:52:15 +02:00
rhertogh
c62d507a0e Added addtitional cases for 'multiLineArrayShapeWithComments' in \Psalm\Tests\AnnotationTest::providerValidCodeParse() 2023-07-16 00:53:37 +02:00
rhertogh
fa107d5e01 Updated docs for comments in Array Shapes with // in the key 2023-07-15 20:15:37 +02:00
rhertogh
f378ef1cab Allow comments in types (e.g. array shape) 2023-07-15 18:43:47 +02:00
rhertogh
9935b2c71e Merge branch 'master' into inline_comments_in_types
# Conflicts:
#	tests/CommentAnalyzerTest.php
2023-07-15 15:46:01 +02:00
klimick
e9445cd422 Test inference with omitted closure param 2023-07-11 11:34:06 +03:00
rhertogh
5a1bb56fc2 3nd attempt to fix CommentAnalyzerTest::providerSplitDocLine() docblock 2023-07-09 14:26:58 +02:00
rhertogh
d2ec23fc71
2nd attempt to fix CommentAnalyzerTest::providerSplitDocLine() docblock (https://github.com/vimeo/psalm/pull/10000#issuecomment-1627430145) 2023-07-08 23:01:35 +02:00
rhertogh
a69b0caa23 Added return type specification for \Psalm\Tests\CommentAnalyzerTest::providerSplitDocLine() (https://github.com/vimeo/psalm/pull/10000#issuecomment-1624354237) 2023-07-07 16:25:10 +02:00
rhertogh
356e6d7bbd First setup to allow comments in types (e.g. array shape) 2023-07-06 23:40:13 +02:00
rhertogh
fc85ecb1f6 Code style fixes for \Psalm\Tests\CommentAnalyzerTest (https://app.circleci.com/pipelines/github/vimeo/psalm/11905/workflows/353387bb-1dcc-4527-9569-c83ebe43864c/jobs/39822) 2023-07-06 18:31:26 +02:00
rhertogh
242a38c184 Allow space before array shape opening brace and added unit tests for \Psalm\Internal\Analyzer\CommentAnalyzer::splitDocLine() 2023-07-06 00:01:00 +02:00
kkmuffme
8d8adefb6c no error for printf with only 1 arg
Fix https://github.com/vimeo/psalm/issues/9987
2023-07-03 22:59:02 +02:00
kkmuffme
b4126326eb make stubbed constant types configurable with comment
Fix https://github.com/vimeo/psalm/issues/4024
2023-07-03 22:28:25 +02:00
orklah
8d1876a8a3
Merge pull request #9981 from kkmuffme/fix-replace-functions-return-type-provider-less-specific
fix mixed replace return types for arrays
2023-07-02 12:59:01 +02:00
orklah
53ce62bf28
Merge pull request #9975 from kkmuffme/sprintf-single-arg-splat-array
Fix sprintf single arg splat array
2023-07-02 10:08:08 +02:00
kkmuffme
c2388b4d90 fix failing tests and shepherd 2023-07-02 08:33:43 +02:00
Roland Franssen :)
039c526c58
Update PsalmRunnerTrait.php 2023-07-01 16:47:42 +02:00
Roland Franssen :)
06172740cd
Update PsalmRunnerTrait.php 2023-07-01 13:40:04 +02:00
Roland Franssen :)
f0e2856963
Update PsalmRunnerTrait.php 2023-07-01 13:36:42 +02:00
Roland Franssen :)
7cf87b28dc
Update PsalmRunnerTrait.php 2023-07-01 13:28:05 +02:00
kkmuffme
26eb870e47 fix mixed replace return types for arrays
* remove useless replace return type provider code that returned incorrect type for array replacements and was worse duplicate of existing stubs
* require preg patterns to be non-empty-strings as otherwise it will throw a PHP notice
* improve return type of array replacements to be more correct (not fully correct due to https://github.com/vimeo/psalm/issues/5994#issuecomment-1614601590)
2023-06-30 17:08:03 +02:00
kkmuffme
2dd26cb0f1 Fix sprintf single arg splat array
Fix https://github.com/vimeo/psalm/issues/9873#issuecomment-1612901224
2023-06-29 13:47:42 +02:00
Yannick Gottschalk
f93d23899d Fix glob CallMap and stub to prevent crash on alpine (and possibly other systems) 2023-06-25 13:17:13 +02:00
kkmuffme
0535c6b877 PHP 7 format with only placeholders isn't falsable if valid
limit tests to PHP 8 to avoid having to create them twice and add specific test for Issue 9941
2023-06-24 18:11:15 +02:00
kkmuffme
28b9e8dd95 run format checks for splat too 2023-06-24 18:11:15 +02:00
kkmuffme
fad17686bd Fix false positive for array unpacking
Fix https://github.com/vimeo/psalm/issues/9873
2023-06-24 18:11:15 +02:00
Tinjo Schöni
a737ca8072
Consider a property type change as a signature change 2023-06-24 15:31:15 +02:00
Tinjo Schöni
703a4b46c3
Add test case for property type change not invalidating methods 2023-06-24 14:29:28 +02:00
Tinjo Schöni
1b1915eaf5
Make file storage cache handling consistent 2023-06-24 14:29:28 +02:00
Tinjo Schöni
9939cae52d
Support project analysis with file diffing in tests 2023-06-24 14:29:28 +02:00
Maximilian Bösing
2d84b06cfa
qa: introduce failing test
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-06-23 20:44:33 +02:00
orklah
01e2ac78d4
Merge pull request #9950 from orklah/iterableInt
fix reconciliation between a list and iterable
2023-06-22 23:45:39 +02:00
orklah
8929f8b4d8 fix reconciliation between a list and iterable 2023-06-22 23:37:40 +02:00
Tinjo Schöni
474f8874f0
Add test case for file deletes not invalidating methods 2023-06-20 01:01:24 +02:00
Tinjo Schöni
3e2de9d152
Implement a way to test cache issues 2023-06-20 01:01:23 +02:00
orklah
8e636086b3
put config to true to prevent deprecations for new config files (#9857)
* put config to true to prevent deprecations for new config files
2023-06-19 22:02:29 +02:00
orklah
e2dde5d200
Merge pull request #9922 from robchett/elseif_shouldnt_be_modifying_outer_scope
Don't update types of the outer scope when in an elseif conditional
2023-06-18 11:00:16 +02:00
robchett
620c7cd68a Fix bug surfaced from removal of elseif scope modification 2023-06-17 15:02:31 +01:00
robchett
7792b6c36c Don't update types of the outer scope when in an elseif conditional 2023-06-17 13:36:29 +01:00
robchett
338b50a959 Change __LINE__ to a positive-int 2023-06-17 12:24:09 +01:00
orklah
eb64a471c4
Merge pull request #9903 from ygottschalk/fix/9827-union-empty-array-and-false
Fixes #9827
2023-06-15 21:19:44 +02:00
kkmuffme
16aaa3ae2b regex cleanup 2023-06-13 22:07:51 +02:00
kkmuffme
51fd63cfbb fix CI warnings 2023-06-13 16:59:25 +02:00
kkmuffme
8a8aeb6452 fix tests 2023-06-12 19:44:22 +02:00
kkmuffme
d0f14ba19e ignore complex placeholders for now
Fix https://github.com/vimeo/psalm/issues/9900
Fix https://github.com/vimeo/psalm/issues/9901
Fix original core stubs sprintf returning a wrong type too (unrelated to return type provider) for placeholders that are always empty
2023-06-12 19:44:22 +02:00
kkmuffme
9bc4752e29 add checks for complex empty format and make return type more specific 2023-06-12 19:44:22 +02:00
kkmuffme
9232e4e76b code style 2023-06-12 19:44:22 +02:00
kkmuffme
697d06b24d fix empty format return type, add errors for empty format or format without placeholders 2023-06-12 19:44:22 +02:00
orklah
715a91d15c
Merge pull request #9889 from dkarlovi/feat/cache.gz
feat: cache.gz
2023-06-12 18:50:01 +02:00
Yannick Gottschalk
d11bb90c96 Style fixes 2023-06-12 15:29:22 +02:00
Yannick Gottschalk
40ce0cf7d7 Fixes #9827 2023-06-12 15:25:17 +02:00
orklah
b6cba5a377
Merge pull request #9877 from kkmuffme/sprintf-improve-return-param-type-validation
Sprintf improve return param type validation
2023-06-11 13:08:24 +02:00
Dalibor Karlović
495a466c5e
init cache in child classes 2023-06-09 15:57:29 +02:00
kkmuffme
3179498643 check args for sprintf + printf
* check args for (s)printf for Invalid/TooMany/TooFew
* don't change the return type when we cannot infer it more specifically (nullable return)
* fix https://github.com/vimeo/psalm/issues/9874
* implement https://github.com/vimeo/psalm/issues/9817
* add tests
2023-06-09 12:59:13 +02:00
kkmuffme
0a54c84055 readonly does not have write access, therefore is safe as long as the type is contained in the parent type
Fix https://github.com/vimeo/psalm/issues/9831#issuecomment-1569022701
2023-06-09 12:37:41 +02:00
orklah
08d5b719c7
Merge pull request #9878 from ygottschalk/fix/9820-glob-stub
Glob return type stub
2023-06-07 20:32:40 +02:00
andrew
4f5dfa7350 Better intersection of template types during inheritance check 2023-06-07 17:58:25 +03:00
Yannick Gottschalk
8bab567aac Merge branch 'master' into fix/9820-glob-stub 2023-06-07 11:45:16 +02:00
Yannick Gottschalk
c74d431fdf Fixed style issues 2023-06-07 08:52:54 +02:00
kkmuffme
08d515d7af don't autoload AllowDynamicProperties 2023-06-07 08:41:44 +02:00
kkmuffme
ed9fbab1c4 don't autoload Mockery/Closure 2023-06-07 08:31:53 +02:00
kkmuffme
40679e9a82 fix failing mock tests 2023-06-07 08:12:31 +02:00
Yannick Gottschalk
a130e2f06c Fixes #9820 2023-06-06 17:02:28 +02:00
orklah
9d1c2c4596
Merge pull request #9866 from klimick/fix-generic-type-params-mapping
Fix generic type params mapping
2023-06-04 23:05:04 +02:00
orklah
43df1dc9ba
Merge pull request #9865 from klimick/intersection-with-template
Intersect template types during inheritance check
2023-06-04 23:01:28 +02:00
orklah
c15860508b
Merge pull request #9853 from kkmuffme/multiple-psalm-assert-if-for-array-list
Allow if/false assert for same variable to allow array/list distinction
2023-06-04 22:59:37 +02:00
andrew
02addbe79c Fix generic type params mapping 2023-06-02 17:36:13 +03:00
andrew
38bd4d8c0d Intersect template 2023-06-02 14:48:20 +03:00
orklah
75baaf7889
Merge pull request #9844 from kkmuffme/property-no-set-in-constructor-abstract-false-positive
PropertyNotSetInConstructor should not report for abstract constructors
2023-06-01 07:21:23 +02:00
kkmuffme
103e7b343c PropertyNotSetInConstructor should not report for abstract constructors
since they do not have any code

Fix https://github.com/vimeo/psalm/issues/9830
2023-06-01 01:38:33 +02:00
kkmuffme
1f2db5f31c Allow if/false assert for same variable to allow array/list distinction
Fix https://github.com/vimeo/psalm/issues/9037
2023-06-01 01:08:06 +02:00
orklah
a762b6c3bb
Merge pull request #9841 from kkmuffme/sprintf-basic-return-type-provider
sprintf basic non-empty-string return type provider
2023-05-31 23:36:03 +02:00
Alies Lapatsin
174cd5c0fe Introduce and use IssueData constants for severity
they are not the same as Config::REPORT_* constants
2023-05-31 12:38:15 +02:00
kkmuffme
8606d5585f sprintf basic non-empty-string return type provider
Fix https://github.com/vimeo/psalm/issues/9819
This PR is a starting point for improving the sprintf return type and eventually validate the format, param types and param count.
(see https://github.com/vimeo/psalm/issues/9817, https://github.com/vimeo/psalm/issues/9818)
2023-05-30 22:11:17 +02:00
orklah
88aae91e55
Merge pull request #9835 from staabm/patch-5
Fixed typo in ConstantTest
2023-05-30 21:08:47 +02:00
kkmuffme
e3e7373e99 fix test string format 2023-05-30 16:55:13 +02:00
kkmuffme
c185437955 fix string format in test 2023-05-30 16:49:10 +02:00
kkmuffme
9d7d4bff28 non-empty-string always returs non-empty-string, fix tests 2023-05-30 16:44:23 +02:00
kkmuffme
25c7f37a44 add test, fix wrong test and fix shepherd 2023-05-30 16:29:47 +02:00
Markus Staab
9af897f328
Fixed typo in ConstantTest 2023-05-30 08:43:54 +02:00
orklah
2bbfca6d9f
Merge pull request #9829 from klimick/map-closed-inheritance-to-union
Mapping closed inheritance to union during assertion
2023-05-29 20:14:31 +02:00
Yannick Gottschalk
a41eb35b24 Fix #9824 2023-05-28 17:37:16 +02:00
klimick
38c93db889 More closed inheritance assertion tests 2023-05-27 18:55:27 +03:00
klimick
b7b20771c0 Add closed inheritance assertion tests 2023-05-27 13:40:23 +03:00
Jack Worman
f279c39503 GH-9825 2023-05-26 18:03:05 -04:00
Demmie
cab10721e6 Add a support for multilevel glob wildcards
This works just like in Python with "**".
2023-05-24 01:13:26 -04:00