1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-03 10:07:52 +01:00
Commit Graph

5884 Commits

Author SHA1 Message Date
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
Ivan Sidorov
2f039f9072 Fix auto-completion with declared static method by DocBlock 2023-10-27 09:35:30 +00:00
Ivan Sidorov
d6faff2844 Fix auto comletion by partial property or method 2023-10-26 21:31:47 +00:00
Daniel Linjama
a375f441f2 fix @param-out with named arguments 2023-10-23 10:39:09 +03:00
3b66272aa0 More rector fixes 2023-10-21 20:45:09 +02:00
576e4d2bc4 Fix method calls and property accesses after extension_loaded 2023-10-19 11:16:20 +02:00
orklah
5a862784ac
Merge pull request #10289 from ging-dev/add-fix
Additional caching fixes
2023-10-17 20:32:03 +02:00
robchett
e2d1e83b87 Fix memory explosion with calls to method_exists 2023-10-17 19:15:23 +01:00
ging-dev
8ee875086f chore: add failing test 2023-10-17 20:17:15 +07:00
ging-dev
0162e75ee8 fix: #10080 2023-10-17 02:43:22 +07: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
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
tuqqu
6039e2be9b Fix for inferring enum case value from a class constant 2023-10-10 22:56:36 +02:00
orklah
ee4e8aa720
Merge pull request #10271 from klimick/type-check-nested-templates
Type check nested templates
2023-10-09 19:47:15 +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
klimick
a3df6505f0 Type check nested templates 2023-10-09 17:07:52 +03: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
orklah
16be90c351
Merge pull request #10262 from robchett/negated_class_exist_convert_class-string_to_string
Negated class_exist check on class-string converts to string instead of mixed
2023-10-08 19:09:14 +02:00
orklah
67ac81e220
Merge pull request #10261 from robchett/allow_named_params_for_callables
Allow parameter names in callable docblocks with templates
2023-10-08 19:08:23 +02:00
robchett
d874aab881 Add alias support to psalm-check-type 2023-10-08 17:46:59 +01:00
robchett
c729fcd5c8 Negated class_exist check on class-string converts to string instead of mixed 2023-10-08 15:48:48 +01:00
robchett
fc7f846fbd Fix test case for named variadic callable docblock 2023-10-07 16:59:43 +01:00
robchett
c71a252dee Add tests for callable docblock parsing 2023-10-07 16:04:48 +01:00
tuqqu
2bc330976f Add tests for never return type 2023-10-04 21:18:59 +02:00
tuqqu
9f9e5f1e18 Emit MethodSignatureMismatch when descendant does not return by reference 2023-10-03 03:41:11 +02:00
cgocast
2eca720e9d Merge branch '5.x' of https://github.com/cgocast/psalm into 5.x 2023-10-02 15:13:07 +02:00
cgocast
94a98ccddd Allow tainted numerics except for 'html' and 'has_quotes' 2023-10-02 15:08:26 +02:00
orklah
c67dce7d14
Merge pull request #10240 from ging-dev/cache
fix: #10239
2023-09-30 18:26:59 +02:00
ging-dev
c312c76050 chore: add test 2023-09-30 17:33:50 +07:00
orklah
db07b05156
Merge pull request #10231 from MidnightDesign/sprintf-stringable-values
Allow stringable objects in `sprintf()` values
2023-09-29 11:38:37 +02:00
Rudolph Gottesheim
c4c8ef53c4 Delete an invalid test 2023-09-29 11:27:36 +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
Rudolph Gottesheim
aa04c0063b Allow Stringable in sprintf() values 2023-09-28 10:23:02 +02:00
orklah
83485f3fcf
Merge pull request #10234 from tuqqu/block-mode-declare-check
Check for declare strict_types in block mode
2023-09-28 09:13:13 +02:00
orklah
a8ef5a213d
Merge pull request #10202 from gmessier/issue-handlers-priority
Issue handlers priority
2023-09-28 09:09:33 +02:00
orklah
a843c30950
Merge pull request #10207 from boesing/bugfix/issue-10203
Allow object assertions for `mixed` values
2023-09-28 09:08:43 +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
Rudolph Gottesheim
3b775f4617 Allow class-string<T> where T is a union 2023-09-18 12:13:34 +02: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
3e100b15d9
bugfix: allow object assertions for mixed
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-15 20:19:54 +02:00
Guillaume Messier
ae427fd60e Add 'safe' methods to prevent overriding issueHandlers already defined in the configuration 2023-09-13 16:30:33 -04:00
Maximilian Bösing
eda55a2d27
qa: make assertions more strict as we do want exact matches
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-11 11:14:12 +02:00
Maximilian Bösing
3dc00518c6
qa: add test for inherited conditional templated return types
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-10 23:57:02 +02:00
Maximilian Bösing
56b719b1e6
qa: remove unnecessary lines from tests
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-10 22:17:30 +02:00
Maximilian Bösing
f6f7c20f36
qa: extend inherited assertion test
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-10 22:17:29 +02:00
Bruce Weirdan
ea1664f30b
Merge pull request #10190 from boesing/feature/array-object-array-key 2023-09-10 20:09:10 +03:00
Maximilian Bösing
7f8ec79243
qa: modify tests since array keys are not mixed for ArrayObject
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2023-09-10 16:06:56 +02:00
George Steel
e98ed16577
DateTimeZone::getName() always returns non-empty-string and cannot be constructed with an empty string
Signed-off-by: George Steel <george@net-glue.co.uk>
2023-09-09 23:48:49 +01: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
3814fbb231
Merge pull request #10157 from boesing/bugfix/assertions-from-inherited-docblock 2023-08-28 12:04:47 +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
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
cgocast
c8b47b17bf Fix typo 2023-08-26 21:54:26 +02:00
cgocast
72c9bf8575 New sinks for TaintedCallable #10117 2023-08-26 19:29:00 +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
1474340cf2
Fix crash on array access to undefined class 2023-08-20 23:45:30 +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
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
63347e71ae
Merge remote-tracking branch 'hub/5.x' into non_falsy_string_literal 2023-07-29 15:04:04 +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
Bruce Weirdan
4f6fc3585b
Update tests to account for new progress protocol 2023-07-26 05:16:37 +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
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