1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-09 06:28:36 +01:00
Commit Graph

9415 Commits

Author SHA1 Message Date
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
Tinjo Schöni
8fbe14a34b
Restore support for namespaced functions in referencedFunction config 2023-09-09 01:47:09 +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
Bruce Weirdan
cc7ed9586e
Merge pull request #10156 from boesing/bugfix/prevent-infinite-loop-in-type-parser 2023-08-28 12:06:45 +02:00
Bruce Weirdan
3814fbb231
Merge pull request #10157 from boesing/bugfix/assertions-from-inherited-docblock 2023-08-28 12:04:47 +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
Bruce Weirdan
b3150d451a
Fix crash on property access to undefined property on a class with a missing dependncy 2023-08-28 01:58:02 +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
Maximilian Bösing
3fa5710400
qa: preserve already detected modifications
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-27 22:38:43 +02:00
Maximilian Bösing
d9ebab6b75
bugfix: prevent infinite-loop when resolving type-aliases
The type-expander returns the same `intersection_type` in case something is not properly expandable. To avoid infinite-loop, we do explicitly verify that the expanded  alias is actually resolved

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-27 17:08:55 +02:00
Bruce Weirdan
ad0a132d7f
Update src/Psalm/Type.php 2023-08-25 19:30:16 -04:00
Maximilian Bösing
e985e8aadb
qa: add proper parameter type-hint to suit psalm analysis
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:49:02 +02:00
Maximilian Bösing
a6b646f0e3
qa: re-arrange code to avoid line-length limit of 120 chars
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:42:33 +02:00
Maximilian Bösing
a8bb8d38ea
qa: ensure that we do have at least one enum case extracted from the value-of<Enum> usage
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:41:06 +02:00
Maximilian Bösing
f93ac70a0a
qa: resolving psalm issues
- remove unused variable
- add assertion to reduce possible types from `TEnumCase`
- use `TypeCombiner` to provide proper `Union` containing all literals

Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:36:20 +02:00
Maximilian Bösing
cd3e294bfd
bugfix: remove atomic type comparator regarding TEnumCase
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:15:53 +02:00
Maximilian Bösing
6c1899df13
qa: apply coding standard
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-26 00:08:14 +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
31eaf83c49
bugfix: prevent enums from being detected as literals
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-08-25 23:54:31 +02:00
Bruce Weirdan
b1c25fa30a
Show success message and type stats with GHA formatter 2023-08-24 03:32:18 +02:00
Bruce Weirdan
c34d5132b5
Merge pull request #10115 from edsrzf/file-find-unused-baseline 2023-08-21 09:44:07 +02:00
Bruce Weirdan
0a9e647603
Do not change baseline when checking specific files 2023-08-21 09:25:37 +02:00
Bruce Weirdan
e6aa3fd23c
Extract the list of impure functions into its own dictionary 2023-08-21 06:14:56 +02:00
Bruce Weirdan
46ebe72e69
Correct exit code for invalid version format
Addresses https://github.com/vimeo/psalm/pull/10129#discussion_r1299442729
2023-08-21 00:14:26 +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
bf8e150f8f
Merge pull request #10123 from weirdan/fix-crash-with-removed-assertion 2023-08-17 22:23:23 +02:00
Bruce Weirdan
73ce16de96
Fixes crash when assertion array is not a list
Fixes vimeo/psalm#9984
2023-08-17 22:10:32 +02:00
Bruce Weirdan
32445023d8
strip_tags()/$allowed_tags can accept arrays since 7.4
Fixes vimeo/psalm#4317
2023-08-17 21:36:47 +02:00
Evan Shaw
670bd6afce Filter baseline when checking individual files
This prevents reporting unused baseline entries for other files that
aren't being checked.
2023-08-15 21:16:18 +12:00
orklah
a6e2e31aae
Merge pull request #10093 from kkmuffme/inconsistent-argv-argc-in-context
argv and argc were inconsistent in Context with VariableFetchAnalyzer
2023-08-13 19:32:19 +02:00
Bruce Weirdan
4ca9dccb1d
Merge branch '5.x' into fix-10090 2023-08-13 06:03:16 +02:00
Bruce Weirdan
03f7c263fe
Correct type for $enum->name 2023-08-13 05:56:33 +02:00
Bruce Weirdan
dbd94ef85d
Cleanup test command and fixAll action
None were working.
2023-08-13 05:53:46 +02:00
Kuba Werłos
35183b9542 Add fix 2023-08-12 12:50:24 +02:00
kkmuffme
801cca2aa3 argv and argc were inconsistent in Context with VariableFetchAnalyzer
Not sure why argv/argc are declared in context independently in the first place though
2023-08-08 22:29:18 +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
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
Bruce Weirdan
378b31b67b
Merge pull request #10068 from Nitamet/9949-isset-non-variables 2023-08-01 18:24:50 +02:00
Nitamet
f742af0221 Check if argument passed to isset() is valid 2023-08-01 14:39:10 +03: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