1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-10 06:58:41 +01:00
Commit Graph

9212 Commits

Author SHA1 Message Date
Matt Brown
234787bcd6 Fix logic bugs caught by better elseif checks 2023-02-03 00:30:42 -05:00
orklah
54cd529642
Merge pull request #9170 from mmcev106/filter-var-pure
Added @psalm-pure to filter_var()
2023-02-02 23:39:06 +01:00
orklah
a56e08d4ff
Merge pull request #9207 from ging-dev/master
fix `didChange` event in LSP
2023-02-02 19:35:11 +01:00
Bruce Weirdan
fb65c79079
Fix newly discovered CS issues 2023-02-02 12:19:22 -04:00
ging-dev
79c3779033 fix didChange event in LSP 2023-02-02 16:41:10 +07:00
Mark McEver
77ea545244 Attempted to avoid a psalm warning that was not accurate 2023-02-01 15:50:36 -06:00
Mark McEver
b5781c34e8 Fixed a case where the conditional taint, specialize, & flow features were not playing nicely together 2023-02-01 15:41:52 -06:00
Leo Viezens
7966fd574a
Merge branch 'master' into master 2023-01-30 15:38:29 +01:00
Alies Lapatsin
d49b35c92a
Merge branch 'master' into unify-deprecation-messages 2023-01-26 23:02:59 +01:00
Andrew Nagy
3c38e02b62 allow dynamically changing configuration without restarting 2023-01-26 09:40:07 +00:00
Andrew Nagy
468e7e7d45 add cli command to turn off xdebug turnoff functionality, fix bug with docblock 2023-01-26 09:12:43 +00:00
Andrew Nagy
27c0caf2fb Fixes #9180 allow baseline file 2023-01-25 18:13:27 +00:00
orklah
aec0edc618
Merge pull request #9177 from Nicelocal/duplicate_keys
Detect duplicate keys in array shapes
2023-01-25 18:37:22 +01:00
Andrew Nagy
b14ed73c0b Merge tag '5.6.0' into feature/upgrade-lsp-v5 2023-01-25 17:08:24 +00:00
Bruce Weirdan
0682adf3e4
Merge pull request #9173 from shvlv/feature/support-class-constants-for-phpstorm-meta-override 2023-01-25 12:31:17 -04:00
Jack Worman
375cdeb636 cdata in baseline 2023-01-25 10:57:28 -05:00
Jack Worman
32581a71fd cdata in baseline 2023-01-25 10:54:33 -05:00
40a05d574a Improve error messages 2023-01-25 12:26:59 +01:00
247d30f74c Detect duplicate keys in array shapes 2023-01-25 10:42:05 +01:00
shvlv
eca7079982
Fix Psalm errors 2023-01-25 11:32:41 +02:00
shvlv
6227943bfb
Allow to scan private constants 2023-01-24 13:31:58 +02:00
shvlv
d6aff3ed20
Parse class constant for PhpStorm Meta override 2023-01-24 12:24:52 +02:00
Alies Lapatsin
9d54de6a51 Use a new method to display warning 2023-01-24 06:50:09 +01:00
Alies Lapatsin
0cc770c947 Use a new method to display warning 2023-01-24 06:48:03 +01:00
Alies Lapatsin
b667db20e6 Merge branch 'master' into unify-deprecation-messages 2023-01-24 06:41:43 +01:00
Alies Lapatsin
68842a50c5 Use STDERR for Shepherd output, fixes #9168 2023-01-23 21:14:18 +01:00
Bruce Weirdan
f0df1192c4
Merge pull request #9164 from weirdan/do-not-allow-this-in-static-closures
Fixes https://github.com/vimeo/psalm/issues/9148
Fixes https://github.com/vimeo/psalm/issues/2813
2023-01-23 12:51:50 -04:00
Bruce Weirdan
bfce3a41e4
Closures that use $this should not be static 2023-01-23 05:47:11 -04:00
Bruce Weirdan
70f2fb7d1b
Check $this in static closures
Fixes vimeo/psalm#9148
Fixes vimeo/psalm#2813
2023-01-23 05:16:12 -04:00
Maarten Buis
2065f625cb
HEAD in all caps 2023-01-23 08:42:54 +01:00
Bruce Weirdan
2af7f51394
Suppress warnings when --no-output is specified 2023-01-22 20:40:21 -04:00
Alies Lapatsin
73f90229bb
Merge branch 'master' into fix-shepherd-without-custom-domain 2023-01-22 13:03:40 +01:00
Anner Visser
d86fcf4a85
Narrow ->value of enum case(s) to only the possible values
Using $stmt_var_type to determine if we're dealing with a subset of the
enum cases. If so, we only consider those cases for the possible values.

Fixes #8568
Fixes #8812
2023-01-21 12:05:24 +01:00
Alies Lapatsin
ca063a46d9 Use more readable for Psalm expressions 2023-01-20 09:39:39 +01:00
Alies Lapatsin
e3e1c92c07 Fix shepherd for default domain
When you run `psalm` like `psalm --shepherd`,
$options['shepherd'] === false
2023-01-18 21:28:01 +01:00
Alies Lapatsin
089b388c91 Unify deprecation messages 2023-01-18 21:19:30 +01:00
Alies Lapatsin
a1a2ecc957
Merge branch 'master' into unify-deprecation-messages 2023-01-18 21:14:02 +01:00
Alies Lapatsin
a28d825476 Do not display "Enabled extensions: " for empty ext list 2023-01-18 20:55:14 +01:00
Alies Lapatsin
2f385a9057 Unify deprecation messages 2023-01-18 20:54:49 +01:00
Alies Lapatsin
e6ea61c91b Enhance error output for shephed 2023-01-18 19:59:09 +01:00
Alies Lapatsin
aac6ead2d9 Fix coding style issues 2023-01-18 19:06:51 +01:00
Alies Lapatsin
363a0b6b22 Add suppressions for using a deprecated property 2023-01-18 19:06:51 +01:00
Alies Lapatsin
d5e5dc0683 Fully support Psalm 5 behaviour
asked by orklah, see
https://github.com/vimeo/psalm/pull/9112#issuecomment-1383239821
2023-01-18 19:06:51 +01:00
Alies Lapatsin
291484df44 Return getCurlErrorMessage() method as it can be used outside 2023-01-18 19:06:51 +01:00
Alies Lapatsin
8e5715875a Update cli help text 2023-01-18 19:06:51 +01:00
Alies Lapatsin
587ac6e018 Fix coding style issues 2023-01-18 19:06:51 +01:00
Alies Lapatsin
c95b0718c4 Properly process HTTP response codes from shepherd servers 2023-01-18 19:06:51 +01:00
Alies Lapatsin
09517d3176 Follow redirects when submitting shepherd reports 2023-01-18 19:06:51 +01:00
Alies Lapatsin
30ab11bae1 Use safer type operations with cli $options array 2023-01-18 19:06:32 +01:00
Alies Lapatsin
7e157cfe9d Allow to specify a custom shepherd endpoint (instead of domain) 2023-01-18 19:06:32 +01:00
Jack Worman
56f6dfecc8 Report unused baseline entries 2023-01-17 22:02:21 -05:00
Jack Worman
f9aa2d5ad3 Support constants in traits 2023-01-17 16:37:44 -05:00
Ezequiel
602d3ed53e Add missing int-range aliases into the list of psalm reserved words 2023-01-13 11:15:01 -03:00
Alies Lapatsin
f471ba9f36
Merge branch 'master' into auto-load-random-ext-stub-on-php82 2023-01-12 18:54:08 +01:00
Alies Lapatsin
fc72214bfc Automatically load stubs for random ext on PHP 8.2 2023-01-12 12:52:45 +01:00
Emmanuel Guiton
a7c60072dd
Merge branch 'vimeo:master' into master 2023-01-11 13:17:45 +01:00
Emmanuel GUITON
7b212954a9 Additional test and fix when comparing nested templates (vimeo#9094). 2023-01-11 13:17:06 +01:00
Alies Lapatsin
3b5d1a4856 Fix coding-style issue 2023-01-10 23:01:40 +01:00
Alies Lapatsin
a051090658 Merge remote-tracking branch 'origin/cleaunup-unsupported-extentions-message' into cleaunup-unsupported-extentions-message 2023-01-10 19:29:39 +01:00
Alies Lapatsin
69b6409feb Fix coding-style issues 2023-01-10 19:24:33 +01:00
Alies Lapatsin
e21e38d5ac
Merge branch 'master' into cleaunup-unsupported-extentions-message 2023-01-10 18:59:58 +01:00
Vincent QUATREVIEUX
e5f297ddbb fix: Handle template type on promoted property #8951 2023-01-10 10:41:48 +01:00
orklah
9366c5ed32
Merge pull request #9012 from kkmuffme/ignore-missingfile-error-for-file_exists-files
dont report MissingFile error when file_exists is validated beforehand
2023-01-09 23:33:04 +01:00
Alies Lapatsin
2626827876
Merge branch 'master' into cleaunup-unsupported-extentions-message 2023-01-09 17:39:56 +04:00
Alies Lapatsin
8b23919241 Extend a list of php ext, supported by CallMap files 2023-01-09 14:31:17 +01:00
orklah
4ec4ed75a6
Merge pull request #9026 from kkmuffme/fix-never-void-combined-null-return-type-false-positives
fix implicit return type
2023-01-07 22:32:08 +01:00
Alies Lapatsin
f197d137d6 Internal: use more specific types 2023-01-06 00:27:01 +04:00
Alies Lapatsin
ce8dcdfee7 Do not list core and bundled extensions as unsupported 2023-01-05 18:42:38 +04:00
kkmuffme
2bfdf9bc68 code style 2023-01-05 09:44:23 +01:00
kkmuffme
ea1ece5cd0 fix "No return statements were found" not reporting 2023-01-05 09:44:23 +01:00
kkmuffme
b85d6374fe Revert "Fix psalter bug changing to native types even when backwards incompatible is false"
This reverts commit 98e22c27fff7be6a143406abe8b2cdd54d02283b.
2023-01-05 09:44:23 +01:00
kkmuffme
a0aff18bd8 Fix psalter bug changing to native types even when backwards incompatible is false 2023-01-05 09:43:19 +01:00
kkmuffme
6b9816071c suppress psalm bug 2023-01-05 09:43:19 +01:00
kkmuffme
4c0cae7cd0 code style 2023-01-05 09:43:19 +01:00
kkmuffme
13f6258a06 class overrides stubbed should be ignored too 2023-01-05 09:43:19 +01:00
kkmuffme
67e6cb8142 fix void => null wrong condition
* fix void => null to greedy suppressing errors in never cases
* fix test allowNoReturnInSubclassWithNullableReturnType to not fail
2023-01-05 09:43:19 +01:00
kkmuffme
1341c15edc fix TypeCombiner void => null from docblock missing property
* fix InvalidReturnType "Not all code paths of" when function returns null combined types (void, never) https://psalm.dev/r/db4e313898
* fix false positive InvalidReturnType for void|never phpdoc when function returns void and exits
2023-01-05 09:43:19 +01:00
kkmuffme
4dd92fb795 fix implicit return type
* fix implicit void return type errors https://psalm.dev/r/b0e397c14e
* fix void + never = null return type error https://psalm.dev/r/6f227ae9b9
* fixes https://github.com/vimeo/psalm/issues/8912 and https://github.com/vimeo/psalm/issues/8862
2023-01-05 09:43:19 +01:00
kkmuffme
166df8a99f dont report MissingFile error when file_exists is validated beforehand
Fix https://github.com/vimeo/psalm/issues/3886
2023-01-05 09:32:36 +01:00
orklah
7d6a48ab14
Merge pull request #9044 from kkmuffme/absolute-autoloader-path-not-working
fix autoloader not working with absolute path
2023-01-04 22:11:38 +01:00
kkmuffme
1a0c0fe5c5 relative path as absolute paths autoloader legacy issue 2023-01-03 15:35:57 +01:00
kkmuffme
76f90e62f2 code style 2023-01-03 15:21:15 +01:00
kkmuffme
8fe00cf609 fix autoloader not working with absolute path 2023-01-03 15:13:38 +01:00
Philip Hofstetter
bab17568dc
fix DateTime::modify() and DateTimeImmutable::modify() return types
even though the two methods return types are documented as returning
their respective types, in PHP they are in-fact returning `static`
internally in all versions of PHP currently supported by psalm.

This fixes #9042
2023-01-03 12:11:38 +01:00
orklah
ef1264bd46
Merge pull request #9030 from kkmuffme/psalm-scope-this-doesnt-work-with-FQCN-leading-backslash
fix @psalm-scope-this not working with FQCN with leading backslash
2022-12-31 12:08:20 +01:00
orklah
406946d4c4
Merge pull request #9031 from danog/misc_fixes
Misc fixes
2022-12-30 21:28:11 +01:00
4b00095b31 cs-fix 2022-12-30 21:06:03 +01:00
0b67844420 Improve variable naming and improve docs 2022-12-30 21:00:38 +01:00
kkmuffme
fcf42840f3 fix @psalm-scope-this not working with FQCN with leading backslash 2022-12-30 18:30:31 +01:00
orklah
6353143eaf
Merge pull request #9021 from orklah/nonempty-reconcile
Non empty reconciliation
2022-12-29 22:35:12 +01:00
orklah
2efa6aefac
Merge pull request #9025 from kkmuffme/fix-method-phpdoc-errors-reported-for-stubs-instead-of-files
fixes return type issues of methods reported for the wrong file
2022-12-29 20:13:38 +01:00
orklah
5a6e8cb8e7
Merge pull request #9023 from kkmuffme/fix-union-never-wrong-return-type
Fix never return union type wrong condition
2022-12-29 20:11:38 +01:00
kkmuffme
9130ee2614 fixes return type issues of methods reported for the wrong file
fixes return type issues of methods reported for the wrong file

Fix #8457

See https://github.com/vimeo/psalm/pull/8503 which fixed this issue for functions
2022-12-29 18:55:15 +01:00
kkmuffme
ac8f892d13 Fix never return union type wrong condition
Fix never return union type wrong condition

Related https://github.com/vimeo/psalm/pull/8624
2022-12-29 18:50:58 +01:00
kkmuffme
efc87277d1 fix never return for MethodCalls
Related:
https://github.com/vimeo/psalm/pull/8902 https://github.com/vimeo/psalm/pull/8624
2022-12-29 18:49:58 +01:00
orklah
5bfb87c624
Merge pull request #9022 from Ocramius/fix/#8983-allow-large-union-types-in-array-type-inference
Better type inference and type checking for large union types used in array keys/values
2022-12-29 10:48:05 +01:00
orklah
790c30959d
Merge pull request #9016 from Ocramius/feature/#5039-more-refined-types-for-explode-core-function
Refined `explode()` types
2022-12-29 10:23:18 +01:00
Marco Pivetta
e6600fea21 Better type inference and type checking for large union types used in array keys/values
Fixes #8983

This patch adds a basic test showing that, when reaching a union type with 30 elements
or more, Psalm used to fail with an error, because the large union type got simplified
into a more general type as part of performance optimizations done in `TypeCombiner::combine()`.

This means that a type like `array<1|2|3|(etcetera...)|100, mixed>` was internally
simplified to `array<int, mixed>`, after reaching 30 elements or more, which in turn
led to problems and confusing errors when large union types are in play.

Such union types are relatively common in lookup-table-alike value objects.

By removing the hardcoded call-time limit of `30` types to be combined, we hereby
rely on the default `TypeCombiner::combine()` limit of `500` items, which is more
healthy.

This may come with some performance implications, but it is worth trying out, for
now.

Further parameters passed to `TypeCombiner::combine()` that were already matching
parameter default values were also omitted from the call-sites.
2022-12-29 10:05:23 +01:00
orklah
5a002c448b fix non-empty reconciliation 2022-12-29 00:49:31 +01:00
orklah
9770e113c3
Merge pull request #9020 from orklah/isContainedbug
Is containedbug
2022-12-28 23:46:38 +01:00