1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 02:07:37 +01:00
Commit Graph

8264 Commits

Author SHA1 Message Date
Vincent Langlet
1d6ae16504 Add Exception code return type provider 2022-01-13 21:44:06 +01:00
Vincent
fe7665aaaf Add support of template for docblock methods (fix #7320) 2022-01-13 11:04:37 +01:00
Andrew Nagy
6910461b76 Catch additional InvalidArgumentException 2022-01-12 21:04:35 +00:00
Andrew Nagy
0eb00e8ae2 Fix closure to have storage bug in codeAction 2022-01-10 23:36:21 +00:00
orklah
af37af7d8c
Merge pull request #7242 from zoonru/seal_all_properties
PHP 8.2: seal all properties configuration
2022-01-10 21:36:31 +01:00
orklah
611583c481
Merge pull request #7354 from wouterj/issue-7353/issuehandlers-elements
Support multiple <issueHandlers> elements
2022-01-10 21:34:43 +01:00
Patrick Remy
a555543c0c
fix: pass static class name to ReturnTypeAnalyzer 2022-01-10 21:23:52 +01:00
b9e3979c3f
Cs-fix 2022-01-10 10:22:51 +01:00
a35ccfb0cb
Revert misguided changes 2022-01-10 10:19:12 +01:00
b530f23acc
PHP 8.2: seal all properties by default, add configuration key for lower versions 2022-01-10 10:11:28 +01:00
orklah
549c02d661
Merge pull request #7356 from orklah/keep-class-strings-through-array_merge
keep class-strings through array_merge
2022-01-09 16:16:55 +01:00
orklah
413da78568
Merge pull request #7326 from orklah/short_closures_returning_never
allow short closure to return never
2022-01-09 16:01:26 +01:00
orklah
65efab3a8d keep class-strings through array_merge 2022-01-09 15:48:58 +01:00
Wouter de Jong
e4e9edda27 Support multiple <issueHandlers> elements
This is likely to occur when including multiple Psalm config files.
2022-01-09 14:11:03 +01:00
orklah
c94e25fa7f refactor the TooFewArguments check to start checking with named arguments 2022-01-09 00:37:16 +01:00
orklah
ce2c6cf438 set the is_list flag for the array inferred for hrtime 2022-01-08 22:48:05 +01:00
orklah
a9bc132842
Merge pull request #7349 from orklah/hrtime2
Seal the array inferred for hrtime
2022-01-08 22:40:20 +01:00
Bruce Weirdan
3502f0460a
Merge branch '4.18.x' into 4.x 2022-01-08 23:32:50 +02:00
orklah
afc3a76bc0 Seal the array inferred for hrtime 2022-01-08 22:22:21 +01:00
Bruce Weirdan
a4878ac2b5
Revert "Merge pull request #7239 from DeyV/master"
This reverts commit 33628cad51, reversing
changes made to 216cf6c534.
2022-01-08 22:26:24 +02:00
orklah
abd499c9c9
Merge pull request #7337 from orklah/broken-phar
replace class name by full FQN for scoper
2022-01-07 21:58:14 +01:00
orklah
90ada3774c replace class name by full FQN for scoper 2022-01-07 21:51:11 +01:00
orklah
9d225086e9 replace empty checks on Union with dedicated method 2022-01-07 21:27:45 +01:00
orklah
0d9480ad00
Merge pull request #7335 from orklah/errors_on_int_reconciliation
Errors on superior/inferior reconciliation
2022-01-07 20:19:35 +01:00
orklah
af28687708 fix reconciliation when the assertions is not part of the existing range and add tests 2022-01-07 19:39:19 +01:00
orklah
c0864b2652 emit errors on failure to reconcile ints 2022-01-07 18:32:24 +01:00
Stefan Vetsch
7f2f0d99ec Issue #7243: Do not throw exception on xinclude with fallbacks 2022-01-07 09:40:19 +01:00
orklah
cbb0c6398f allow short closure with never 2022-01-06 21:36:34 +01:00
Fabien Villepinte
b9d8dd9d3f
Fix analysis when __invoke() exists 2022-01-06 21:22:18 +01:00
Bruce Weirdan
46bcb626f5
Merge pull request #7321 from weirdan/dont-crash-on-array_map-first-class-callable 2022-01-06 14:11:35 +02:00
Bruce Weirdan
fe036d4db0
Prevent crashes on array_map(...)
Fixes vimeo/psalm#7305
2022-01-06 10:38:58 +02:00
orklah
18ab5a099f
Merge pull request #7309 from orklah/emptyStringKeyedArray
fix empty string not quoted in keyed array offset
2022-01-06 09:37:28 +01:00
orklah
e7bc6f273a don't crash when pushing a template to in_array 2022-01-05 22:33:20 +01:00
orklah
7e2b9d0fab fix empty string in keyed array offset 2022-01-05 22:26:35 +01:00
orklah
27c4b07d5b fix wrong not literal loose check 2022-01-05 22:11:22 +01:00
orklah
c22670d851 use the correct type for float function 2022-01-05 20:05:56 +01:00
orklah
57e054931e remove unused param 2022-01-05 20:01:34 +01:00
orklah
fac7317af3 refactor float as well 2022-01-05 20:00:56 +01:00
orklah
26542afdf4 accept more loose literal equalities and loop over non-literal types on a separate loop 2022-01-05 19:45:22 +01:00
orklah
7dccfa4ff9 CS 2022-01-05 18:44:58 +01:00
orklah
e0fb87596d typo 2022-01-05 18:21:38 +01:00
orklah
c1575d29fd consistency with string handling 2022-01-05 18:06:08 +01:00
orklah
8099126958 make sure to keep the origin of the type (from_docblock) 2022-01-05 17:52:04 +01:00
orklah
16bb62b499 Fixup!!! don't allow checks on literals 2022-01-05 12:41:08 +01:00
orklah
411399b600 Fixup!!! don't allow checks on literals 2022-01-05 12:22:44 +01:00
orklah
83a02d9a61 Fixup!!! don't allow checks on literals 2022-01-05 12:21:50 +01:00
orklah
5c0fc46734 Fixup!!! be more flexible on loose_equality for strings 2022-01-05 12:10:32 +01:00
orklah
3fc8139205 Fixup!!! only allow general TInt to pass 2022-01-05 11:17:39 +01:00
orklah
950710a47a Fixup!!! make sure to add atomics with the correct offset key 2022-01-05 09:58:56 +01:00
orklah
36349a1370 refactor literal string equality check 2022-01-05 09:52:47 +01:00
orklah
2ada8ee8b0 refactor literal int equality check 2022-01-05 09:52:47 +01:00
orklah
a8c2fcde76 resolve ClassConst before checking equalities and fix things 2022-01-05 09:52:47 +01:00
Fabien Villepinte
c42f3d51bd
Fix typo 2022-01-04 16:27:06 +01:00
Fabien Villepinte
2f3af4a5bc
Remove unused import 2022-01-04 16:13:48 +01:00
Fabien Villepinte
1fa6b612b1
Fix parse_url() return type 2022-01-04 16:09:18 +01:00
orklah
6f9cbc698b resolve type alias and class const on UnionTypeComparator 2022-01-04 00:14:08 +01:00
orklah
a53b5215b8 add missing phpdoc 2022-01-03 23:52:48 +01:00
orklah
e3bb251757 handle cases where the classconst contains a compatible int type 2022-01-03 23:45:23 +01:00
orklah
6ea950c2eb Identify ints from TClassConstant when checking for LiteralEquality 2022-01-03 23:40:39 +01:00
orklah
72270078be
Merge pull request #7286 from orklah/classconstinparamout
resolve ClassConstant for both sides in isContainedBy
2022-01-03 23:37:51 +01:00
orklah
6905daedd7 handle the case where the expansion was not successful 2022-01-03 23:30:36 +01:00
orklah
60732d00ba resolve ClassConstant for both sides in isContainedBy 2022-01-03 23:21:59 +01:00
Bruce Weirdan
bb2fa7905d
Deprecate THtmlEscapedString
Refs vimeo/psalm#7281
2022-01-03 21:58:23 +02:00
orklah
33628cad51
Merge pull request #7239 from DeyV/master
Move from deprecated Composer 1 to Composer 2 runtime api
2022-01-02 18:35:54 +01:00
Dawid 'DeyV' Polak
7172f4bdbe missing default value for $version 2022-01-02 18:13:02 +01:00
Simon Podlipsky
4f62268b04
Report missing file path properly
If the file at the path is missing, `realpath` gives `false`. It makes no sense to try to put it into error message then. It's better to use `prospective_file_path` instead.
2022-01-02 13:35:11 +01:00
Bruce Weirdan
5362f3be91
Deprecate Codebase::$php_major_version and Codebase::$php_minor_version properties
Removed in #6898 (Psalm 5)
2022-01-02 13:22:37 +02:00
Bruce Weirdan
36d5a2a83c
Merge pull request #7019 from zoonru/no_ksort_list 2022-01-02 07:37:21 +02:00
Bruce Weirdan
697db76dc1
Merge pull request #7252 from AndrolGenhald/feature/allow-assertions-on-mutable-object-properties 2022-01-02 07:29:02 +02:00
Bruce Weirdan
047859b4a4
Merge pull request #7256 from tm1000/feature/remove-is-not-in-project-warnings 2022-01-02 07:15:20 +02:00
Bruce Weirdan
ab30a36803
Merge pull request #7255 from tm1000/feature/lang-server-code-actions 2022-01-02 05:38:06 +02:00
Bruce Weirdan
376d2a389e
Merge pull request #7259 from klimick/infer-this-context-for-psalm-if-this-is 2022-01-02 05:31:24 +02:00
orklah
6f4707aa41
Merge pull request #7263 from orklah/revert
revert #7054
2022-01-01 19:39:47 +01:00
orklah
de95fbdbf2 revert #7054 2022-01-01 19:34:17 +01:00
Matthew Brown
387f2664f7 Simplify isset reconciliation slightly 2022-01-01 16:01:27 +00:00
Matthew Brown
11f322c2fb Improve negated reconciliation logic 2022-01-01 13:10:28 +00:00
orklah
2a6f12296e
Merge pull request #7260 from orklah/6691
forbid calling impure callable in immutable context
2022-01-01 12:08:07 +01:00
adrew
0f69483cc1 Fix method storage fetching 2022-01-01 13:33:00 +03:00
orklah
8049438408 forbid calling impure callable in immutable context 2022-01-01 11:13:45 +01:00
adrew
79ea094433 Template resolving for psalm-if-this-is 2022-01-01 13:03:17 +03:00
adrew
878dfa2250 Variable types inference in method context when method marked with psalm-if-this-is 2022-01-01 13:03:17 +03:00
orklah
8dc1a31e11
Merge pull request #7247 from tm1000/bugfix/7246
Fixes #7246, wrap getTypeContextAtPosition in try/catch
2022-01-01 01:19:13 +01:00
Andrew Nagy
409910ce4c move conditional outside of try/catch 2021-12-31 23:30:29 +00:00
Andrew Nagy
e3116e0ab5 dont allow fallback functions 2021-12-31 23:17:27 +00:00
Andrew Nagy
f8f8f6bc41 fix SA and lint issues, prevent duplicate suppressions 2021-12-31 23:11:55 +00:00
Dawid 'DeyV' Polak
d43f2beed8 Fixed problems with test-with-real-projects 2021-12-31 15:15:04 +01:00
Andrew Nagy
6e32e9641f Remove "is not in project" warnings 2021-12-30 23:49:04 +00:00
Andrew Nagy
b2823ca034 fix psalm issues 2021-12-30 23:45:11 +00:00
orklah
51ba96c09d
Merge pull request #7253 from orklah/5874
allow calling mutation_free function inside a mutation_free context
2021-12-31 00:24:29 +01:00
Your Name
6c024b1d96 fix spaces 2021-12-30 15:13:01 -08:00
Your Name
6d14326375 Feat: Initial Support for Code Actions 2021-12-30 15:11:33 -08:00
AndrolGenhald
dd631c0c85 Skip reference tests, allow assertions on magic properties (fixes #6770). 2021-12-30 16:23:59 -06:00
orklah
392402cf6d allow calling mutation_free function inside a mutation_free context 2021-12-30 22:29:36 +01:00
AndrolGenhald
3ac497c811 Allow assertions on mutable object properties.
All of the functionality is already there, we just have to not prevent it.
2021-12-30 14:07:55 -06:00
adrew
2355f1bcdb Remove unused use 2021-12-30 22:46:18 +03:00
adrew
4a903c71a1 Checking psalm-if-this-is before applying psalm-this-out 2021-12-30 21:48:25 +03:00
Andrew Nagy
7379f516ae fix cs issues 2021-12-30 18:35:08 +00:00
Andrew Nagy
cb3cf887c4 Fixes #7246, wrap getTypeContextAtPosition in try/catch 2021-12-30 18:16:09 +00:00
edc797d1c2
Add docs 2021-12-30 11:56:16 +01:00
7c24d33bb2
cs-fix 2021-12-30 11:36:56 +01:00
915ddcc620
Add new RedundantFunctionCall issues 2021-12-30 11:36:32 +01:00
82e24d5c1d
Disallow ksorting lists 2021-12-30 11:30:33 +01:00
Bruce Weirdan
03b7e94748
Merge pull request #7232 from trowski/issue-7196 2021-12-30 10:03:17 +02:00
Dawid 'DeyV' Polak
19c26f7263 Move from deprecated Composer 1 to Composer 2 runtime api 2021-12-29 16:20:14 +01:00
orklah
81ac645990 remove commented old code 2021-12-29 00:44:48 +01:00
orklah
f047d5bc53 allow suppressing unevaluatedCode 2021-12-29 00:44:48 +01:00
orklah
0b3e1299de overwritten properties 2021-12-27 23:46:23 +01:00
orklah
996def0d4d useless statements 2021-12-27 23:34:56 +01:00
orklah
ff62e71e0d immediately rewritten array index 2021-12-27 23:28:37 +01:00
orklah
bd1eb1611e immediately rewritten array index 2021-12-27 23:22:45 +01:00
orklah
ce1f992bcc remove useless statement 2021-12-27 23:11:40 +01:00
orklah
5f6bb39888 if with common parts 2021-12-27 23:08:19 +01:00
orklah
cb1e04b965 unnecessary statements 2021-12-27 23:02:01 +01:00
orklah
2baf3b560a unnecessary statements 2021-12-27 23:00:40 +01:00
Aaron Piotrowski
87160c8711
Handle first-class callable in yield types 2021-12-27 15:55:31 -06:00
orklah
926a56a97c
Merge pull request #7230 from orklah/cleanup6
code grooming
2021-12-27 22:54:39 +01:00
orklah
2bf5a71d46 fix CS 2021-12-27 22:37:30 +01:00
orklah
094ffb36f9 phpdoc issues 2021-12-27 22:30:10 +01:00
orklah
2499e02465 unnecessary array_push 2021-12-27 22:30:10 +01:00
orklah
07bbd3f402 missing visibility 2021-12-27 22:30:10 +01:00
orklah
65fffd2116 replace fully qualified names by imports 2021-12-27 22:30:10 +01:00
orklah
3828db52b9
Merge pull request #7229 from orklah/cleanup5
remove always true/false conditions
2021-12-27 22:08:06 +01:00
Aaron Piotrowski
e23a915bb1
Fix first-class callables when used with magic method, built-in, or undefined methods
Closes #7196.
2021-12-27 14:29:33 -06:00
orklah
3e29a3d961 unnecessary qualified names 2021-12-27 20:16:34 +01:00
orklah
3ae80983cc fix unused and CS 2021-12-27 20:10:39 +01:00
orklah
a9b1a42854 fix 2021-12-27 20:08:08 +01:00
orklah
9029e1d613 remove always true/false conditions 2021-12-27 19:59:11 +01:00
adrew
c0ca383020 Contextual inference for closure param types 2021-12-27 19:35:37 +03:00
sji
1c07813627
align handling of @psalm-internal 2021-12-27 02:31:14 +02:00
sji
a90456ed8b
trim whitespaces in namespaces specified at @psalm-internal 2021-12-27 02:31:11 +02:00
adrew
63a1c71c83
Remove trailing comma 2021-12-27 00:45:25 +02:00
adrew
d6d0fc6704
Remove undefined variables 2021-12-27 00:45:25 +02:00
adrew
2e4d75d6bd
Fix closure param type inference in generic context 2021-12-27 00:45:22 +02:00
Bruce Weirdan
fb56d5ce58
Merge pull request #7210 from vstm/improve-cli-utils-argv-handling 2021-12-27 00:35:32 +02:00
Bruce Weirdan
45c49b570a
Merge pull request #7211 from johnstevenson/xdebug-handler-3 2021-12-26 23:21:51 +02:00
Bruce Weirdan
13de27bb2f
Restore suppression for older XdebugHandler versions 2021-12-26 23:05:02 +02:00
John Stevenson
1cb58ad689
Keep XdebugHandler version 1 2021-12-26 23:00:53 +02:00
John Stevenson
015cc22fa7
Add XdebugHandler version 3 2021-12-26 23:00:50 +02:00
orklah
d4fcb7f61c handle literal equality with integer ranges 2021-12-26 21:09:27 +01:00
orklah
f7b6c4e1b6 escape more special chars in keyed array names that won't be read by the parser 2021-12-26 19:27:13 +01:00
Bruce Weirdan
9387942463
Use strpos instead of str_contains
Fixes vimeo/psalm#7219 (str_contains was added in PHP 8)
2021-12-26 09:22:39 +02:00
Bruce Weirdan
08413d71bb
Restore attributes in ClassConstantStorage
This partially fixes BC break introduced in vimeo/psalm#7129
2021-12-26 02:24:01 +02:00
Matthew Brown
18c790eb99 Remove never-used equality flags 2021-12-24 14:05:44 +00:00
Matthew Brown
4dfc7ce6ee Prevent unnecessary construction of union types during truthiness checks 2021-12-24 13:31:09 +00:00
Matthew Brown
75e4e0b9a7 Revert "Inline possibly_undefined checks"
This reverts commit e2a01673b7.

This change was short-sighted
2021-12-24 13:15:30 +00:00
Matthew Brown
e2a01673b7 Inline possibly_undefined checks
These don’t really belong in truthiness methods, as possibly_undefined is a weird meta state
2021-12-24 13:10:19 +00:00
Stefan Vetsch
c3752b4a2b Fix psalm issues 2021-12-24 10:59:39 +01:00
Stefan Vetsch
5331091f5e Simplify argv handling, the first element is always the script name 2021-12-24 10:05:52 +01:00
orklah
2827c3e87b
Merge pull request #7203 from orklah/6389
flag the context as "inside_conditional" when analyzing leftover cases to prevent emitting unused error
2021-12-23 22:22:46 +01:00
orklah
79a97507d7
Merge pull request #7201 from dvz/early-file-filtering
Add early file filtering to `FileProvider::getFilesInDir()`
2021-12-23 22:19:39 +01:00
orklah
2c9541c1ed flag the context as "inside_conditional" when analyzing leftover cases to prevent emitting unused error 2021-12-23 22:18:27 +01:00
Matthew Brown
2a92db8fad Remove unused in-array assertions
These assertions cannot be parsed, since the `in-array` assertion handler always tries to convert assertions to a type
2021-12-22 19:47:20 +00:00
Tomasz Mlynski
c94364631b
Normalize variable name 2021-12-22 20:23:11 +01:00
Tomasz Mlynski
b3da242e78
Remove redundant projectDirs/extraDirs checks 2021-12-22 19:49:12 +01:00
Tomasz Mlynski
a514df2bb7
Use callable to filter files in FileProvider::getFilesInDir() 2021-12-22 19:47:57 +01:00
Philip Hofstetter
e8e968e8c2
recognize Deprecated attribute on enum cases
just like with properties, this recognizes both `Psalm\Deprecated` and
`JetBrains\PhpStorm\Deprecated`
2021-12-22 06:16:42 +01:00
Philip Hofstetter
d45cb64827
allow marking enum cases as @deprecated 2021-12-22 06:16:42 +01:00
orklah
cc9111ff48
Merge pull request #7161 from dvz/improve-project-files-discovery
Improve project files discovery performance
2021-12-21 22:31:39 +01:00
orklah
ca25b0f815 always unflag before leaving a analyzer 2021-12-21 18:30:29 +01:00
orklah
b1a1c65714 CS changes 2021-12-21 18:30:29 +01:00
orklah
56369a7ba6 fix wrong handling of flags in context 2021-12-21 18:30:29 +01:00
orklah
1eca2c32ae only emit PossiblyNullArrayAccess if there was no successful destructuring 2021-12-20 22:48:27 +01:00
orklah
cc618bc916 allow successful destructuring to also be null if the source was nullable 2021-12-20 22:48:27 +01:00
Matthew Brown
2e32a18222 Fix callable negation 2021-12-18 19:42:43 +00:00
S.M. Ataur Rahman
e408abf119 Fixed ignoreTypeStats & useStrictTypes flag value detection for directories in config 2021-12-18 19:59:25 +06:00
Matthew Brown
89a1c5acbc Fix faulty comparison with typed closure 2021-12-16 16:39:08 +00:00
Matthew Brown
84d677738e
Add docs for TypeComparisonResult::$type_coerced_from_scalar 2021-12-16 14:05:46 +00:00
Bruce Weirdan
7e97c5c84e
Merge pull request #7167 from AndrolGenhald/bugfix/7164-conflicting-fake-variable 2021-12-15 20:56:51 +02:00
orklah
16c0496d1c
Merge pull request #7157 from nowaja/master
ISSUE-5962 Fixed wrong line number for @method annotations
2021-12-15 18:37:26 +01:00
orklah
2dfe45a96e
Merge pull request #7152 from orklah/7109
display class-strings in keyed arrays syntax and allow using them for assertions
2021-12-15 18:36:40 +01:00
AndrolGenhald
d62bee3a9a Rename $fake_var_id to $fake_var_discriminator. 2021-12-15 11:33:27 -06:00
AndrolGenhald
04c0243547 Fix trailing comma for PHP < 8.0. 2021-12-15 11:02:24 -06:00
AndrolGenhald
00749c84fc Fix array_filter return type provider. 2021-12-15 09:58:36 -06:00
AndrolGenhald
b78a188061 Assign id to array_map fake variables to avoid conflicts and ensure removal (fixes #7164). 2021-12-15 09:12:14 -06:00
rarila
97e6511fab Set number of lines before and after namespace. 2021-12-15 04:58:32 +01:00
rarila
7df7c1f070 Format declare(strict_types=1) 2021-12-15 04:42:37 +01:00
orklah
0c1564f4b5 allow keyed array to contain class-strings 2021-12-15 00:51:59 +01:00
orklah
5ddf5df10d
Merge pull request #7155 from rarila/partials-conversion-2
Convertion of partials to full imports
2021-12-15 00:39:20 +01:00
sji
f7e402d75b use igbinary for communication between processes if possible (depending on the configuration) 2021-12-15 03:30:41 +09:00
Tomasz Mlynski
4034959c1b
Use $directory_filter with FileProvider::getFilesInDir() to skip ignored directories 2021-12-14 18:25:09 +01:00
Tomasz Mlynski
d00c733c1f
Add callable $directory_filter to FileProvider::getFilesInDir() 2021-12-14 18:22:47 +01:00
Tomasz Mlynski
837075a378
Use cached ProjectAnalyzer::$project_files to build list of changed files 2021-12-14 17:57:19 +01:00
Tomasz Mlynski
ef23056ca0
Use FilesystemIterator::SKIP_DOTS flag instead of DirectoryIterator::isDot() 2021-12-14 17:51:31 +01:00
Jakub Nowak
14c181f280 ISSUE-5962 Fixed wrong line number for @method annotations 2021-12-14 10:57:02 +01:00
ralila
6ee3d44092 Conversion of misc 2021-12-14 02:52:44 +01:00
ralila
3cbfdd5e37 Conversion of Psalm\Internal\LanguageServer 2021-12-14 02:31:27 +01:00
ralila
b5cf7bf170 Conversion of Psalm\Internal\Provider\ 2021-12-14 02:31:27 +01:00
ralila
7bb370855e Conversion of Psalm\Storage\FunctionStorage|MethodStorage 2021-12-14 02:31:26 +01:00
ralila
19b2a64ce8 Conversion of Psalm\Internal\Analyzer\**\*Analyzer 2021-12-14 02:31:26 +01:00
ralila
34857c2eee Conversion of AdvancedJsonRpc\* 2021-12-14 02:31:26 +01:00
ralila
c0adde8f45 Conversion of Psalm\CodeLocation\DocblockTypeLocation|Raw 2021-12-14 02:31:26 +01:00
ralila
e06d4ab5ac Conversion of Psalm\Exception\*Exception 2021-12-14 02:31:26 +01:00
rarila
1c298c4605 Conversion of Psalm\Type 2021-12-14 02:31:22 +01:00
ralila
e32af3c05a Conversion of Psalm\Type\Atomic 2021-12-14 02:26:28 +01:00
ralila
b9adc77a19 Conversion of Psalm\Plugin\EventHandler 2021-12-14 02:08:35 +01:00
ralila
fed7d1ef3b Conversion of Psalm\Plugin\Hook\*Interface 2021-12-14 02:08:35 +01:00
ralila
e170619d10 Conversion of Psalm\Internal\Scanner\UnresolvedConstant 2021-12-14 02:08:34 +01:00
ralila
84e2de888b Conversion of Psalm\Internal\Type\TypeAlias 2021-12-14 02:08:34 +01:00
ralila
553c22f8ab Conversion of Psalm\Internal\Type\ParseTree 2021-12-14 02:08:34 +01:00
ralila
7961130469 Conversion of Psalm\Plugin\EventHandler\Event 2021-12-14 02:08:34 +01:00
ralila
1e909d3304 Conversion of Psalm\Internal\Provider\ReturnTypeProvider 2021-12-14 02:08:12 +01:00
S.M. Ataur Rahman
f4512361b2 "No errors found!" message is now printed within a nice green block 2021-12-14 00:50:32 +06:00
orklah
fb07d5819c
Merge pull request #7141 from mathroc/fix/in-array-return-type
in_array returns false in strict mode if types are incompatibles
2021-12-13 00:20:43 +01:00
Mathieu Rochette
39fb4222d5
in_array returns false in strict mode if types are incompatibles
see #5552
2021-12-13 00:00:53 +01:00
adrew
de0d3a3be3 Allow IssueBuffer::remove to remove recorded issues 2021-12-13 01:42:33 +03:00
adrew
a8d23538b7 Fix closure param type inference with named params 2021-12-12 13:17:15 +03:00
Bruce Weirdan
41ca7f7f7a
Merge pull request #7136 from klimick/forbid-positional-args-after-named 2021-12-12 02:22:51 +02:00
Bruce Weirdan
e08a4f2a2a
Drop unused use 2021-12-12 01:58:45 +02:00
orklah
f79f857ded
Merge pull request #7133 from AndrolGenhald/remove-unused-suppressed
Allow suppressing UnusedPsalmSuppress, remove unused suppressions.
2021-12-11 23:24:31 +01:00
orklah
b6638412b1
Merge pull request #7082 from dvz/fix-parser-cache-maintenance
Fix parser cache files maintenance
2021-12-11 23:14:30 +01:00
AndrolGenhald
225af970cc Add comments explaining condition for UnusedPsalmSuppress. 2021-12-11 16:14:25 -06:00
orklah
6632ddf884
Merge pull request #7135 from klimick/fix-closure-param-type-inference
Fix type inference of closure params
2021-12-11 23:10:32 +01:00
orklah
50cc629a43 fix cs 2021-12-11 23:03:10 +01:00
orklah
a1268d94d5 fix some more expressions that can be replaced by getSingleAtomic 2021-12-11 22:37:44 +01:00
AndrolGenhald
684cbfeab9 Add back suppressions for undefined constants on Windows. 2021-12-11 15:37:09 -06:00
AndrolGenhald
5d09cd075d Add another usage of getSingleAtomic. 2021-12-11 15:11:17 -06:00
adrew
6cf2e31c4a Forbid positional arg after named arg 2021-12-11 23:37:15 +03:00
adrew
989c3ada2e Fix type inference of closure params 2021-12-11 22:51:18 +03:00
AndrolGenhald
23b781163a Use getSingleAtomic() instead of array_values(getAtomicTypes())[0]. 2021-12-11 13:44:34 -06:00
AndrolGenhald
bfe7f96b56 Allow suppressing UnusedPsalmSuppress, remove unused suppressions. 2021-12-11 13:23:00 -06:00
orklah
0ba5b0b30a
Merge pull request #7130 from AndrolGenhald/bugfix/fix-class-property-suppression
Class property issue suppression fixes.
2021-12-11 19:12:49 +01:00
AndrolGenhald
51d9652b70 Class property issue suppression fixes.
Fix @psalm-suppress and @psalm-allow-private-mutation being ignored if nothing else is in the docblock.
Fix @psalm-suppress not allowing extra text after the issue name.
Fix PossiblyUnusedProperty and UnusedProperty suppression not working at the property level.
Fix MissingPropertyType suppression not working at the property level.
2021-12-11 11:45:06 -06:00
Matthew Brown
4229045c23 Remove array properties that are never read 2021-12-11 11:55:37 -05:00
Matthew Brown
b558748db2 Detect unused properties that are written to inside arrays 2021-12-11 11:42:05 -05:00
Matthew Brown
19ae9e81d2 Remove property that is only written to but never used 2021-12-11 08:51:12 -05:00
orklah
76bb8bc655
Merge pull request #7113 from trowski/first-class-callables
Added support for first-class callables
2021-12-10 22:40:16 +01:00
Aaron Piotrowski
3c5e99ed1e
Revert reorder of getting method return type and checking args
Skipping checking args for first-class callables, but fixes handling of other methods.
2021-12-09 19:02:58 -06:00
orklah
ae765dfba8
Merge pull request #7054 from orklah/6933
fix missing case for displaying varId
2021-12-09 23:54:37 +01:00
Aaron Piotrowski
d5519fc53a
Use $stmt->args directly instead of creating new VariadicPlaceholder 2021-12-09 15:51:48 -06:00
orklah
0716dfcda0 allow Reconciler to retrieve global constant values 2021-12-09 21:27:57 +01:00
Aaron Piotrowski
1f3a37ff02
Add support for first-class callables 2021-12-09 10:54:49 -06:00
orklah
eefdb95765
Merge pull request #7093 from orklah/7090
don't stop analyzing array, even if we already have a type and we can't create an object like
2021-12-08 22:37:57 +01:00
orklah
604f47d52a
Merge pull request #7106 from orklah/7098
fix reconciliation between positive-int and inferior/superior assertions
2021-12-08 22:29:15 +01:00
Bruce Weirdan
eb2f4dca89
Merge pull request #7103 from AndrolGenhald/feature/3938-decimal-operator-overloads 2021-12-08 23:22:24 +02:00
orklah
3f46377467 don't remove literal ints if the Int type already in Union doesn't cover this specific literal 2021-12-08 22:13:54 +01:00
orklah
edeaada8af simplify reconciliation of literal ints with inferior/superior assertions 2021-12-08 22:13:19 +01:00
orklah
be9037f7b1 fix reconciliation between positive-int and inferior/superior assertions 2021-12-08 21:38:12 +01:00
AndrolGenhald
a89e8ec28c Fix non-empty-literal-string to behave as subtype of non-empty-string (fixes #7095). 2021-12-08 13:38:32 -06:00
AndrolGenhald
ba881c80bf Use maybeAdd instead of accepts. 2021-12-08 12:15:32 -06:00
AndrolGenhald
b29fc6ad3c Allow operator overloading for Decimal extension (fixes #3938). 2021-12-08 10:59:37 -06:00
Matthew Brown
8daf9c42a9 Remove useless chunk of code in ScopeAnalyzer 2021-12-07 23:42:17 -05:00
orklah
c17af4128e don't stop analyzing array, even if we already have a type and we can't create an object like 2021-12-07 19:38:52 +01:00
Bruce Weirdan
2530b33dbd
Merge pull request #7076 from klimick/fix-generic-assertion 2021-12-07 08:08:48 +02:00
orklah
257d237192 ignore ComplexMethod: didn't see any easy refactoring 2021-12-06 20:13:33 +01:00
orklah
75312d93b1 Don't crash when checking purity of __callStatic in a trait 2021-12-06 19:00:37 +01:00
Tomasz Mlynski
348c62db94
Remove unused function reference 2021-12-06 18:25:04 +01:00
Tomasz Mlynski
e4b0b9b305
Remove redundant condition 2021-12-06 18:17:52 +01:00
Tomasz Mlynski
5c73d77f28
Remove unused methods 2021-12-06 18:16:07 +01:00
Tomasz Mlynski
7e54c5172d
Deprecate unused methods 2021-12-06 17:59:43 +01:00
Tomasz Mlynski
0fcad43581 Simplify parser cache files maintenance
Delete files that were not modified during a no-diff run
2021-12-06 17:57:44 +01:00
Tomasz Mlynski
af23619653
Fix ParserCacheProvider::deleteOldParserCaches() 2021-12-06 17:49:40 +01:00
Ricardo Boss
2ec77fe29c Make name property of enum cases return non-empty-strings (vimeo/psalm#6964) 2021-12-06 00:33:57 +01:00
adrew
dee3fc4358 try to fix generic assertions for list and array 2021-12-06 02:25:40 +03:00
rarila
39402c233d
Return type hints (#7065)
Co-authored-by: ralila <>
2021-12-05 19:51:26 +02:00
orklah
f67a0ca143
Merge pull request #7068 from klimick/fix-yield
Detect yield in array expression
2021-12-05 16:25:21 +01:00
Ricardo Boss
8a230110e8 Fix vimeo/psalm#6968 2021-12-05 15:43:38 +01:00
adrew
bc61547bce detect yield in array expression 2021-12-05 15:33:18 +03:00
Bruce Weirdan
e9d9481ea6
Merge pull request #7060 from rarila/codingstyle-convert-fqn 2021-12-05 02:46:03 +02:00
ralila
9902898c4d Remove unnecessary bug circumvention and generate new baseline 2021-12-05 01:15:29 +01:00
ralila
da3a691c36 Import PhpParser\Node\Expr\Closure as ClosureNode 2021-12-05 00:32:38 +01:00
ralila
81c94f12c1 Revert \Composer\Autoload\ClassLoader in other Cli\*.php 2021-12-05 00:30:13 +01:00
ralila
2d199d1f13 Revert \Composer\Autoload\ClassLoader in Cli\Psalm.php 2021-12-04 23:07:54 +01:00
ralila
8fb2e0f885 Handle some partials 2021-12-04 21:55:53 +01:00
Bruce Weirdan
14dcbc908a
Don't output console links in CI env (#7049) 2021-12-04 19:49:24 +02:00
Matthew Brown
1956b85c41
Remove always-false args (#7056) 2021-12-04 10:40:52 -05:00
ralila
f833085a15 Fix fqn usage in php-doc 2021-12-04 03:37:19 +01:00
orklah
2612f5a5f1 fix missing case for displaying varId 2021-12-03 23:46:12 +01:00
ralila
30a65685a2 Import instead of using fqn classes 2021-12-03 21:40:18 +01:00
ralila
7c32325e03 Import instead of using fqn constants 2021-12-03 21:25:22 +01:00
ralila
2a956498bf Import instead of using fqn functions 2021-12-03 21:07:25 +01:00
ralila
711be643c6 Import instead of using fqn exceptions 2021-12-03 20:29:06 +01:00
ralila
245920e53c Import instead of using fqn 2021-12-03 20:11:20 +01:00
orklah
826b26bf6b fix phpdoc. The previous message was incorrect 2021-12-01 23:42:30 +01:00
orklah
a7e9eea0ca
flag usage of get_class outside class without args (#7043) 2021-12-02 00:38:45 +02:00
orklah
e90a4b4468
Merge pull request #7040 from orklah/docs-issuebuffer
document the behavior of methods in IssueBuffer
2021-12-01 21:10:08 +01:00
orklah
fab3c94ef6 document the behavior of methods in IssueBuffer 2021-12-01 21:04:49 +01:00
Kamil Tekiela
5d99109ba9 Throw exception when baseline file is empty 2021-12-01 18:09:30 +00:00
Bruce Weirdan
28c4f86993
Merge pull request #7027 from rarila/issue-6914 2021-11-30 23:34:00 +02:00
orklah
15bc0fac1f ignore irrelevant errors 2021-11-30 21:17:27 +01:00
Bruce Weirdan
812d62d1ce
Merge pull request #7031 from weirdan/suppress-void-progress-output 2021-11-30 21:39:24 +02:00
Bruce Weirdan
2706645126
Prevent VoidProgress from outputting anything
Fixes vimeo/psalm#7028
2021-11-30 21:21:38 +02:00
orklah
2c6ea7c551
Merge pull request #7022 from orklah/7007
remove the remaining dynamic property assignment
2021-11-30 19:41:42 +01:00
ralila
98b0b052ce Remove some now superfluous casts 2021-11-30 05:08:56 +01:00
orklah
466137a4c4
Merge pull request #7025 from orklah/6256
flag DeprecatedProperty on static fetch
2021-11-29 23:46:25 +01:00
orklah
328dcb093b fix variable name 2021-11-29 23:41:47 +01:00
orklah
9de9c12851 flag DeprecatedProperty on static fetch 2021-11-29 23:32:27 +01:00
Dave Liddament
1879713dbb
Add --php-version to CLI help
As documented here: https://psalm.dev/docs/running_psalm/configuration/#phpversion
2021-11-29 20:21:33 +00:00
Matthew Brown
175ba83332
Migrate most IssueBuffer::accepts calls to IssueBuffer::maybeAdd (#7020) 2021-11-29 14:54:17 -05:00
orklah
8ca0fc209a remove the remaining dynamic property assignment 2021-11-29 20:12:59 +01:00
ralila
15eb8127ee Reverse parameter list vor preg_match 2021-11-29 14:23:33 +01:00
Bruce Weirdan
99d3d5e811
Escape GHA output
Refs Roave/BackwardCompatibilityCheck#342

Thanks @staabm for highlighting this issue.
2021-11-29 04:47:47 +02:00
Bruce Weirdan
28a75652ac
Merge pull request #6997 from zoonru/list_values_paradox 2021-11-29 00:47:12 +02:00
925df22052
Use simplified, proper logic 2021-11-28 13:42:30 +01:00
orklah
8bc71fcf85
Merge pull request #7013 from orklah/6951
Allow overriding the signature type by a param docblock for promoted properties
2021-11-28 11:50:43 +01:00
orklah
a6e4230d2d Allow overriding the signature type by a param docblock for promoted properties 2021-11-28 11:10:55 +01:00
Bruce Weirdan
806db287d2
Infer ::from() and ::tryFrom() return types on backed enums
Fixes vimeo/psalm#6429
2021-11-28 09:47:01 +02:00
Bruce Weirdan
ac903c5634
Include enum cases in const wildcards
Refs vimeo/psalm#6471
2021-11-28 05:49:39 +02:00
Bruce Weirdan
66eb665b55
Merge pull request #4160 from Rarst/patch-2 2021-11-28 01:33:16 +02:00
Bruce Weirdan
ec1571d261
Adjust link test to account for colors 2021-11-28 01:14:03 +02:00
Andrey Savchenko
03ae329837
Colorized file name and line in console output
Fixes #4129
2021-11-28 01:06:21 +02:00