Bruce Weirdan
872cf58236
Merge pull request #10601 from weirdan/do-not-validate-callable-arguments-in-lenient-contexts
2024-01-29 16:22:47 -04:00
Evan Shaw
98d98be443
Re-work CheckTrivialExprVisitor
...
In php-parser 5.0, `ClosureUse` is no longer considered an expression.
This requires changes to Psalm's `CheckTrivialExprVisitor`, which stores
an array of "non-trivial" `Expr` nodes.
However the only use of this array is to count whether or not it's
empty. Instead of keeping the array, we can keep a boolean, and avoid
needing to change the types in this class when we upgrade to php-parser
5.0.
2024-01-29 13:25:25 +13:00
Bruce Weirdan
4b2cd0f23f
[LSP] Add issue type in description
...
Fixes psalm/psalm-vscode-plugin#287
2024-01-28 16:36:03 +01:00
Bruce Weirdan
67a91e05b2
Do not validate callable arguments in lenient contexts
...
Fixes vimeo/psalm#10453
2024-01-27 16:38:37 +01:00
Ivan Sidorov
10402c426b
Partial revert "Fix auto completion by partial property or method"
...
Filtering is not necessary. Clients using LSP should filter the results themselves.
That's what it says in the documentation.
This reverts commit d6faff2844
.
2024-01-26 12:23:36 +00:00
Evan Shaw
68a1d1e2b4
Switch condition order
...
This change is for forward-compatibility with nikic/php-parser 5.0,
where `InterpolatedStringPart` (née `EncapsedStringPart`) is no longer an expression.
Thus we can't pass it to `NodeTypeProvider::getType()` anymore. Since that call
returns `null` anyway, we can swap the condition order. Everything still
works and Psalm type-checking is happy.
This also might be a tiny performance improvement since it lets the
common, cheap instanceof check come before a method call, but I haven't actually
benchmarked it.
2024-01-24 15:38:39 -10:00
klimick
c307bcbc76
Try to fix template replacement edge case
2024-01-22 13:36:08 +03:00
f7edaa66ac
Fix #10552
2024-01-18 20:33:54 +01:00
23543218dc
Fix template, conditional array keys
2024-01-18 12:59:56 +01:00
kkmuffme
f34ec2c81e
change error level to 2
2024-01-15 10:11:22 +01:00
kkmuffme
2414070849
simplify and remove redundant variable
2024-01-15 10:11:22 +01:00
kkmuffme
19b1a33a20
fix possibly undefined array key in keyed array doesnt include null when not validated
...
Fix https://psalm.dev/r/b153d0d248 to return 'a'|null instead of 'a' - this is required as otherwise empty would report RedundantCondition errors now which would bring back https://github.com/vimeo/psalm/issues/2681
2024-01-15 10:11:22 +01:00
kkmuffme
63ea734f26
fix shepherd issue
2024-01-15 10:11:22 +01:00
kkmuffme
fb93aede12
create a separate issue type
2024-01-15 10:11:21 +01:00
kkmuffme
f3543ca9ab
add the fix for empty() too and fix empty returning bool on true/false only cases hiding errors when functions called
2024-01-15 10:11:21 +01:00
kkmuffme
d5b713e439
Fix https://github.com/vimeo/psalm/issues/10501 - report error for non-strict comparison on truthy+falsy union
2024-01-15 10:11:21 +01:00
orklah
b9583493b0
Merge pull request #10499 from kkmuffme/fix-empty-string-becomes-non-empty-string-when-literal-strings-disabled
...
Fix empty literal string becomes non-empty-string
2024-01-14 23:41:50 +01:00
orklah
c04eb4c96d
Merge pull request #10542 from kkmuffme/remove-duplicate-directory-separator-in-error-message
...
remove redundat directory separator which caused "//" in path not found errors
2024-01-14 23:41:06 +01:00
orklah
6e8692513a
Merge pull request #10544 from kkmuffme/improve-extract-variable-assignments
...
add support for extract to set variables for keyed arrays and respect EXTR_SKIP
2024-01-14 23:40:39 +01:00
kkmuffme
f940c029e1
make basename & dirname return types more specific
2024-01-14 19:01:46 +01:00
kkmuffme
02467fbb6a
add support for extract to set variables for keyed arrays and respect EXTR_SKIP
2024-01-14 10:54:02 +01:00
kkmuffme
7f0f0bc361
ensure concat https://psalm.dev/r/323e33ae8a will be a non-falsy-string
2024-01-13 17:10:19 +01:00
kkmuffme
4092618260
should be non-falsy-string instead of non-empty-string in most cases
2024-01-13 17:10:02 +01:00
kkmuffme
a2bf5cb054
Fix empty literal string becomes non-empty-string
...
when max literal string length is 0, which means literal strings are disabled
2024-01-13 16:23:16 +01:00
kkmuffme
6f184dca91
remove redundat directory separator which caused "//" in path not found errors
2024-01-13 12:17:24 +01:00
orklah
17cd6a7968
Merge pull request #10518 from samlitowitz/issue-10490
...
Deprecated Template Classes are not ignored by @psalm-suppress DeprecatedClass
2024-01-10 22:01:02 +01:00
orklah
06b71be009
Merge pull request #10508 from ging-dev/bugfixes
...
fix : #10496 #10503
2024-01-09 22:02:43 +01:00
orklah
b4ad9c00c5
Merge pull request #10505 from kkmuffme/fix-readonly-properties-by-reference-not-reported
...
Add error when using readonly property in by-ref arg
2024-01-09 22:01:51 +01:00
orklah
6c98f25a69
Merge pull request #10500 from kkmuffme/callable-without-args-union-not-handled-correctly
...
Fix callable without args not handled correctly
2024-01-09 21:58:14 +01:00
orklah
abfbdedf53
Merge pull request #10498 from kkmuffme/filter-input-more-detailed
...
filter_input & filter_var return type more specific
2024-01-09 21:57:34 +01:00
orklah
e6a48e136e
Merge pull request #10483 from florisluiten/5.x
...
Fix GH-10465
2024-01-09 21:56:36 +01:00
sji
1a3bba3e91
Reduce memory consumption of caching and parallel processing without igbinary
2024-01-09 06:42:49 +09:00
Sam L
a60de4bac8
Whitelist suppressed issue types to for template extended params
2023-12-28 07:50:36 -05:00
Sam L
21617c7029
Include suppressed issues from the class the template is being used by
2023-12-28 07:50:36 -05:00
ging-dev
5731f927fe
fix : #10496 #10503
2023-12-20 17:16:21 +07:00
kkmuffme
9e463bbe75
make tests work in PHP < 8.2
2023-12-19 11:37:14 +01:00
kkmuffme
1ff8518888
Fix https://github.com/vimeo/psalm/issues/9840
2023-12-19 11:07:11 +01:00
kkmuffme
80dc208f0e
fix other places that have a similar bug
2023-12-18 12:58:47 +01:00
kkmuffme
f8a53ebc5d
Fix callable without args not handled correctly
2023-12-18 12:48:13 +01:00
kkmuffme
dee555daaf
filter_input & filter_var return type more specific
2023-12-17 20:34:10 +01:00
mu3ic
c8748dc5c9
Add trim() in global use
2023-12-14 09:54:32 +03:00
mu3ic
2ce340782e
Fix Uncaught RuntimeException: PHP Error: Uninitialized string offset 0 when $pattern is empty
2023-12-14 09:44:28 +03:00
orklah
3bc8cde539
Merge pull request #10488 from kkmuffme/invalidargument-false-not-true-param
...
add InvalidArgument error when passing false to true param
2023-12-13 18:48:51 +01:00
kkmuffme
d04694f4d4
Fix https://github.com/vimeo/psalm/issues/9267
2023-12-13 15:30:43 +01:00
kkmuffme
6363b57c33
fix bug equality assertion with int and float setting wrong type - required so previous commit works
2023-12-13 14:43:55 +01:00
kkmuffme
e6f24d91fd
Fix https://psalm.dev/r/aada187f50 where 2 union types are not intersected and the condition contains both types
2023-12-13 14:10:22 +01:00
kkmuffme
108f626712
fix literal int/string comparisons only using one literal
...
Fix https://github.com/vimeo/psalm/issues/9552
2023-12-13 13:59:26 +01:00
Floris Luiten
e981778383
Fix "Cannot locate enable" with Symfony project
...
Fixes the "Cannot locate enable" error when using psalm-plugin enable with a Symfony project
2023-12-13 13:27:35 +01:00
kkmuffme
9be7fceb59
Fix literal string keys int not handled as int as PHP does
...
Fix https://github.com/vimeo/psalm/issues/8680
See also https://github.com/vimeo/psalm/issues/9295
2023-12-13 00:24:50 +01:00
kkmuffme
82ff582280
add error for invalid array key type in docblock
2023-12-13 00:23:14 +01:00