1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-11 16:59:45 +01:00
Commit Graph

3772 Commits

Author SHA1 Message Date
kkmuffme
7f0f0bc361 ensure concat https://psalm.dev/r/323e33ae8a will be a non-falsy-string 2024-01-13 17:10:19 +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
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
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
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
f8a53ebc5d Fix callable without args not handled correctly 2023-12-18 12:48:13 +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
orklah
93c7a8fd63
Merge pull request #10452 from theodorejb/patch-1
Fix remaining POSIX-only absolute path detection
2023-12-07 18:08:57 +01:00
orklah
f4e9837e27
Merge pull request #10450 from nicelocal/fix_class_string_key
Fix shaped array class string key combination
2023-12-07 17:52:15 +01:00
d5bac4d51d Emit AfterCodebasePopulatedEvent even on partial scans 2023-12-07 12:46:34 +01:00
Theodore Brown
b5ee6e0d8b Replace remaining POSIX only absolute path detection
These were missed in #10441. Fixes "Could not resolve config path" error on Windows (#10418).
2023-12-06 13:48:06 -06:00
4ed0fe934f Fix shaped array class string key combination 2023-12-06 14:12:19 +01:00
390df68966
Merge branch '5.x' into fix_literal_union_key 2023-12-03 20:55:05 +01:00
37cf82ea52
Merge branch '5.x' into fix_literal_union_key 2023-12-03 20:50:05 +01:00
18a6c0b6e9 Implement by-ref closure use analysis 2023-12-03 15:28:51 +01:00
orklah
0659967d05
Merge pull request #10429 from tscni/fix/trait-call-static
Fix static magic method pureness not being inherited from traits
2023-12-02 14:30:49 +01:00
orklah
794bdaac4f
Merge pull request #10422 from tscni/fix/match-null-coalesce
Restore support for null coalesce on match expressions
2023-12-02 14:29:20 +01:00
f652cf09d8 Merge branch 'fix_array_key_exists_negation' into fix_literal_union_key 2023-12-01 16:31:24 +01:00
2e249ab3fa Create keyed arrays when assigning literal union keys 2023-12-01 16:03:08 +01:00
ef169893aa cs-fix 2023-12-01 15:07:55 +01:00
edf2d1e4b6 Fix 2023-12-01 15:03:17 +01:00
461cd184e5 cs-fix 2023-12-01 12:25:30 +01:00
8111319fc3 Fix 2023-12-01 12:25:04 +01:00
eabb57ff02 Use correct file path while adding unused suppressions for virtual __constructs 2023-12-01 12:03:24 +01:00
Tinjo Schöni
4f458b46bc
Fix static magic method pureness not being inherited from traits
https://github.com/vimeo/psalm/pull/10385 "broke" this by propagating pseudo static methods from traits to using classes.
`AtomicStaticCallAnalyzer` was then not capable of dealing with this, because now these static pseudo methods actually exist.

As long as the methods from traits aren't actually transferred to the using class, it seems right that the logic in `AtomicStaticCallAnalyzer` uses `::getDeclaringMethodId()` instead of `::getAppearingMethodId()` for this purpose.
2023-11-29 23:22:14 +01:00
kkmuffme
4f25ccee40 update define types to be correct 2023-11-29 08:51:15 +01:00
Tinjo Schöni
d91aab15be
Restore support for null coalesce on match expressions
https://github.com/vimeo/psalm/pull/10068 added isset restrictions that didn't consider null coalesces on match expressions.
This restores that support by converting the match expression to a virtual variable for the isset analysis, similar to other incompatible expressions.
2023-11-29 02:08:23 +01:00
1e2e2248d9 Fix wrong type 2023-11-26 19:34:49 +01:00
e386b072f3 Fix 2023-11-26 13:33:25 +01:00
35f194e9e8 Fix backtick analysis 2023-11-26 13:12:11 +01:00
kkmuffme
00bed512af suppress false positive 2023-11-18 08:55:20 +01:00
kkmuffme
adb8677f20 Fix optional args not enforced in callable (fix for non-closure/arrow functions of https://github.com/vimeo/psalm/issues/8438) Fix array callables not treated as callable https://psalm.dev/r/23f3787207 (this is needed to fix the optional args enforcement for array callables too) 2023-11-18 08:55:20 +01:00
kkmuffme
5eacd301e9 Fixed ReturnTypeWillChange false positive https://psalm.dev/r/91c6992bf1 with missing return type signature 2023-11-18 08:55:20 +01:00
kkmuffme
0252bbbd7c Fixed https://psalm.dev/r/7f112fd745 - MethodComparator only reported an error for this if the parent class was user defined (= not in stubs), which is wrong, since this will cause a fatal error when running the code 2023-11-18 08:55:20 +01:00
kkmuffme
c5655c510d Fix param providers for native methods not working Fix array_filter params callable incorrect required params depending on the 3rd argument value (at this commit psalm doesn't report an error, due to https://github.com/vimeo/psalm/issues/8438, which gets fixed by this PR later on though) Fix https://github.com/vimeo/psalm/issues/3047 and further improve types for array_multisort and add errors for invalid params Fix SimpleTypeInferer failing on bitwise operations with constants 2023-11-18 08:55:20 +01:00
kkmuffme
88e3cda3b9 remove unused function, fix unusedVariable error after suppress 2023-11-13 20:24:58 +01:00
kkmuffme
dcd53cadab Suppressing NoValue should not treat subsequent code as unevaluated
Fix https://github.com/vimeo/psalm/issues/10302
2023-11-13 18:57:41 +01:00
orklah
7acc50eef0
Merge pull request #10318 from danog/finalize
Finalize all internal classes
2023-11-03 20:57:06 +01:00
07b45b8116 Get rid of legacy 7.3 logic 2023-10-26 17:18:33 +02:00
ec23f998ea Finalize all internal classes 2023-10-26 17:00:29 +02:00
Daniel Linjama
a375f441f2 fix @param-out with named arguments 2023-10-23 10:39:09 +03:00
4c656f0a2b Revert 2023-10-21 20:50:08 +02:00
596ee11d0d cs-fix 2023-10-21 20:48:06 +02:00
3b66272aa0 More rector fixes 2023-10-21 20:45:09 +02:00
cddf6a9a57 Rector fixes 2023-10-21 20:44:04 +02:00
8ca610ae60 Fix 2023-10-19 11:23:24 +02:00
576e4d2bc4 Fix method calls and property accesses after extension_loaded 2023-10-19 11:16:20 +02:00
robchett
e2d1e83b87 Fix memory explosion with calls to method_exists 2023-10-17 19:15:23 +01:00
orklah
b432d812fb
Merge pull request #10274 from tuqqu/enum-case-value-type-from-class-constant
Fix inferring enum case value from a class constant
2023-10-16 20:25:11 +02:00
orklah
c9c3067044
Merge pull request #10279 from trusting-thompson/final-static-constant-type
fix final class constant type
2023-10-16 20:24:25 +02:00
orklah
7a7d6a25af
Merge pull request #10242 from cgocast/5.x
Allow tainted numerics except for 'html' and 'has_quotes'
2023-10-16 20:17:39 +02:00
Daniel Linjama
545e21b56b fix final class constant type 2023-10-13 14:18:58 +03:00
tuqqu
d0825b5fe2 Fix for inferring enum case value from a class constant, const test fix 2023-10-13 01:15:05 +02:00
tuqqu
6039e2be9b Fix for inferring enum case value from a class constant 2023-10-10 22:56:36 +02:00
orklah
3f7306d8df
Merge pull request #10254 from tuqqu/never-function-return-error-message
Fix error message for implicitly returning functions with `never` return type
2023-10-09 18:51:11 +02:00
cgocast
eea7c33309
Merge branch 'vimeo:5.x' into 5.x 2023-10-09 14:17:50 +02:00
tuqqu
a4cebb2cb8 Disallow never type for parameters 2023-10-08 20:47:37 +02:00
robchett
d874aab881 Add alias support to psalm-check-type 2023-10-08 17:46:59 +01:00
tuqqu
2a910d1f17 Changed error message for never return error 2023-10-04 21:00:04 +02:00
tuqqu
413f1d6ce3 Fix error message for returning function with never return type 2023-10-04 20:51:31 +02:00
tuqqu
9f9e5f1e18 Emit MethodSignatureMismatch when descendant does not return by reference 2023-10-03 03:41:11 +02:00
cgocast
e0c24cbe7a Remove unused parents_nodes 2023-10-02 15:38:01 +02:00
cgocast
6eb40e7897 Fix code style 2023-10-02 15:22:57 +02:00
cgocast
94a98ccddd Allow tainted numerics except for 'html' and 'has_quotes' 2023-10-02 15:08:26 +02:00
orklah
2d3a625379
Merge pull request #10230 from ging-dev/lsp
feat(LSP): Improve the autocomplete for nested array shape
2023-09-28 23:42:02 +02:00
orklah
f57088646b
Merge pull request #10191 from boesing/bugfix/inherited-conditional-return-types
Resolve inherited conditional return types
2023-09-28 23:08:20 +02:00
orklah
bbcf50396d
Merge pull request #10189 from boesing/feature/inherited-assertions-v2
Inherited assertions v2
2023-09-28 23:07:15 +02:00
tuqqu
09fbe99f5b Check for declare strict types block mode 2023-09-26 20:59:06 +02:00
ging-dev
45807e27b8 feat(LSP): Improve the autocomplete for nested array shape 2023-09-26 01:52:23 +07:00
robchett
03e8d19eec Only the binary op 'plus' works with two arrays
Treat the result of any other operation as int|float
Fixes #2123
2023-09-16 15:55:59 +01:00
Maximilian Bösing
7c8a5e8b09
bugfix: resolve recursive conditional return types containing templates
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-11 00:04:01 +02:00
Maximilian Bösing
ad463f38e9
bugfix: always gather class templates
No clue why there are conditions on when templates are allowed to get picked up. I've removed this check which actually solves a problem in inherited assertions.

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-10 22:17:30 +02:00
Bruce Weirdan
cd8fc46554
Flag invalid declares 2023-09-02 23:41:50 +02:00
robchett
d0c4d170b0
Apply psalm-inheritors to interfaces too 2023-08-31 23:12:10 +02:00
robchett
e23971ca29
InheritorViolation was only being triggered on grand-childen classes
Fixes #10167
2023-08-31 23:12:07 +02:00
Maximilian Bösing
66c01813c1
refactor: move assertion detection based on inherited classes/interfaces into internal resolver
This also enables `ExistingAtomicStaticCallAnalyzer` to detect those inherited assertions.

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-28 11:09:23 +02:00
Maximilian Bösing
2a0ce2fecc
qa: add newlines to prevent exceeding 120 character line-length limit
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-28 01:15:49 +02:00
Maximilian Bösing
5e520e6bff
bugfix: properly inherit assertions from parents or implemented interfaces
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-28 01:12:28 +02:00
Bruce Weirdan
1474340cf2
Fix crash on array access to undefined class 2023-08-20 23:45:30 +02:00
Nitamet
005eed3d06 Throw and catch exception when specified PHP version is invalid 2023-08-19 00:14:39 +03:00
Nitamet
18b74b1814 Add 8.3 as supported version 2023-08-19 00:01:17 +03:00
Nitamet
2c7391a649 Add versions 5.4-7.3 as supported 2023-08-18 20:32:05 +03:00
Nitamet
5f40d26539 Fix PHP version checking
Separate condition to check both cases if the specified string is a valid version and if it is supported
Remove unsupported versions up to 7.4 from regex
2023-08-18 20:09:17 +03:00
Bruce Weirdan
03f7c263fe
Correct type for $enum->name 2023-08-13 05:56:33 +02:00
Kuba Werłos
35183b9542 Add fix 2023-08-12 12:50:24 +02: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
Nitamet
f742af0221 Check if argument passed to isset() is valid 2023-08-01 14:39:10 +03:00
rhertogh
8d76314a48 Fixed PHPCS errors for CommentAnalyzer (Multi-line function calls must have a trailing comma after the last parameter). 2023-07-15 19:11:15 +02:00
rhertogh
65ad2f829e Fixed PHPCS errors for CommentAnalyzer 2023-07-15 19:04:52 +02:00
rhertogh
c362dd5af7 Ensure comment lines are terminated with a new line character (\n). 2023-07-15 19:00:28 +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