orklah
7dccfa4ff9
CS
2022-01-05 18:44:58 +01:00
Bruce Weirdan
94395f18a4
Applied JsonThrowOnErrorRector
2022-01-05 19:32:43 +02: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
Bruce Weirdan
dd09450092
Applied NullCoalescingOperatorRector
2022-01-05 13:09:37 +02:00
Bruce Weirdan
758e0afd96
Merge branch 'master' into rector-literal-number-separator
2022-01-05 12:32:52 +02: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
Matthew Brown
f5d6d2380f
Remove now-unnecessary code
...
Originally added in 8bc17e47be
2022-01-05 01:54:00 +00:00
Matthew Brown
7595a3c579
Make treatment of interfaces and classes more symmetrical
2022-01-05 01:10:57 +00:00
Matthew Brown
31dd30f3d1
Reduce by-ref args
2022-01-05 00:50:09 +00:00
Matthew Brown
26de4faa51
Unify names with intersection creation
2022-01-05 00:38:40 +00:00
Bruce Weirdan
5e22026863
Fix version id for the callable object typehint
2022-01-05 01:16:15 +02:00
Matthew Brown
0a78b320da
Remove commas for now
2022-01-04 23:15:16 +00:00
Matthew Brown
9e64375e25
Break up two intersection methods
...
At some later date it may be worth seeing whether these can be consolidated into a single intersection method
2022-01-04 23:09:02 +00:00
Bruce Weirdan
5758d31161
Apply literal number separator rector
...
I opted for customary 3-digit groups, except version id, where 2-digit
groups are used to match the version id encoding.
2022-01-05 01:00:05 +02:00
Bruce Weirdan
0c13d8e719
Indent heredoc
...
PHP 7.3 allows indenting of heredoc / nowdoc strings.
2022-01-04 19:57:41 +02:00
Bruce Weirdan
f5dc2ee964
Merge branch '4.x' into upstream-master
2022-01-04 19:42:08 +02:00
Matthew Brown
63f3460df7
Make clear that class string check for trait $this key only applies to certain assertions
2022-01-04 17:08:34 +00:00
Matthew Brown
4e81d0c5ab
Remove an untested chunk of issue-triggering code that has only ever caused anguish
2022-01-04 16:36:33 +00:00
Matthew Brown
0fffb55a83
Simplify some logic around negations to prevent unecessary looping
2022-01-04 16:08:06 +00:00
Matthew Brown
2c6d4f8687
Fix erroneous intersection
...
Found during a line-for-line port. We’re using this value in two different places, and it only makes sense to use it in one
2022-01-04 16:04:36 +00: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
Bruce Weirdan
02b91cc54e
Replaced deprecated webmozart/path-util
2022-01-04 15:15:34 +02:00
Bruce Weirdan
20567ff720
Remove the polyfill we no longer need
2022-01-04 11:29:00 +02:00
Bruce Weirdan
30013cb81a
Drop orphaned token
...
Refs vimeo/psalm#7285
2022-01-04 10:13:44 +02:00
Bruce Weirdan
ff9b214f65
Merge branch '4.x' into upstream-master
2022-01-04 10:07:18 +02: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
afa6497051
Dropped THtmlEscapedString
2022-01-03 22:48:59 +02:00
Bruce Weirdan
c1acab4606
Merge branch '4.x' into upstream-master
2022-01-03 22:06:12 +02:00
Bruce Weirdan
bb2fa7905d
Deprecate THtmlEscapedString
...
Refs vimeo/psalm#7281
2022-01-03 21:58:23 +02:00
Bruce Weirdan
dbee118812
Moved getPsalmHelpText()
to Cli\Psalm
2022-01-03 20:46:24 +02:00
Bruce Weirdan
988ae9496a
Trim baseline selection
...
Refs vimeo/psalm#6000
2022-01-03 20:33:01 +02:00
Bruce Weirdan
e04d545328
Dropped deprecated DocComment
methods
2022-01-03 20:00:56 +02:00
Bruce Weirdan
401c2e9a83
Dropped deprecated TypeAnalyzer methods
2022-01-03 19:48:43 +02:00
Bruce Weirdan
ba69f4fb31
Dropped deprecated CodeIssue
methods
2022-01-03 19:14:58 +02:00
Bruce Weirdan
2e24a16cbb
Dropped legacy plugin API
2022-01-03 18:18:44 +02:00
Bruce Weirdan
55eb4b018b
Dropped removed config entries
2022-01-03 12:41:17 +02:00
Bruce Weirdan
706f2a7761
Drop legacy procedural files
2022-01-03 12:04:35 +02:00
Bruce Weirdan
b924032850
Mark internal classes @internal
2022-01-03 09:33:22 +02:00
Bruce Weirdan
ab60d311c2
Merge pull request #7188 from vimeo/muglug-use-invalidscalarargument-less
2022-01-03 06:04:42 +02:00
Bruce Weirdan
966b6ae2b2
Merge pull request #6808 from orklah/exitFunctions3
2022-01-03 06:04:01 +02:00
Bruce Weirdan
f19e4cedc1
Merge pull request #6705 from orklah/phpstorm-generics-removal
2022-01-03 06:03:36 +02:00
Bruce Weirdan
1bb2661e36
Update TAssertionEmpty signatures
2022-01-03 04:14:48 +02:00
Bruce Weirdan
44fbb9fc77
s/array<empty, empty>/array<never, never>/g
2022-01-03 04:11:02 +02:00
Bruce Weirdan
13bb638b60
Drop remaining Type::getEmpty()
references
2022-01-03 04:11:02 +02:00
orklah
d912663da4
remove isEmpty
2022-01-03 04:10:41 +02:00
Matthew Brown
83911c7408
Remove unnecessary references to empty in TypeCombiner
2022-01-03 04:10:41 +02:00
Matthew Brown
2358b96f54
Fix merge errors
2022-01-03 04:10:39 +02:00
orklah
0747b48d06
remove TEmpty
2022-01-03 04:09:59 +02:00
Bruce Weirdan
2f50070410
Merge pull request #6898 from orklah/php-version-consistency
2022-01-03 03:26:47 +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
orklah
b658b2738f
remove exitFunctions
2022-01-02 15:20:01 +02:00
orklah
48de574777
remove support for allowPhpstormGenerics
2022-01-02 15:07:46 +02:00
orklah
4f7c1d05c1
remove support for allowPhpstormGenerics
2022-01-02 15:06:04 +02:00
Matthew Brown
1e115da372
Add better docs to TypeComparisonResult
2022-01-02 14:56:18 +02:00
Matthew Brown
b419c299e3
Use InvalidScalarArgument only when we can be sure PHP attempts coercion
2022-01-02 14:56:18 +02:00
Bruce Weirdan
ba4a25b483
Drop superfluous import
2022-01-02 14:53:59 +02: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
orklah
8d6b781b3e
use consistent way to compare php version
2022-01-02 13:35:43 +02: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
Tomasz Mlynski
daaa74ce41
Merge branch 'master' into explicit-symlink-resolution
2021-12-22 18:42:55 +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
Tomasz Mlynski
1da6893451
Add resolveSymlinks
condition for project directories
2021-12-14 20:25:27 +01:00
Tomasz Mlynski
2c70a1a72a
Use flag instead of DirectoryIterator::isDot()
2021-12-14 20:00:17 +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
Bruce Weirdan
03aea28c73
Merge pull request #6995 from vimeo/enum-constants
2021-11-27 21:49:13 +02:00
Bruce Weirdan
1797716cf7
Merge pull request #7006 from weirdan/show-php-version
2021-11-27 20:21:20 +02:00
Bruce Weirdan
97445b52f3
Correctly process constant references on enum-valued variables
2021-11-27 04:32:32 +02:00
Bruce Weirdan
d19aad7db1
Display target PHP version
...
Historically it was often not quite clear to users what PHP version
Psalm assumes, and why. This PR addresses this issue by printing the
version and where we got it from right before scanning the files.
2021-11-27 02:18:09 +02:00
Bruce Weirdan
3441197c60
Merge pull request #7004 from weirdan/drop-unused-property
2021-11-27 01:52:14 +02:00
Bruce Weirdan
2afced3101
Drop unused $fq_classlike_names property
2021-11-27 00:09:58 +02:00
orklah
72de3b66cc
Merge pull request #7003 from rarila/no-phpdoc-return-void
...
Use return type hints instead of php doc "@return void"
2021-11-26 23:03:28 +01:00
ralila
7279f00e05
fix failing test
2021-11-26 21:55:30 +01:00
2145a2cbbd
Make sure that the keyed array is actually a list after unsetting
2021-11-26 21:52:34 +01:00
00ab986c06
Update IfElseAnalyzer.php
2021-11-26 21:47:17 +01:00
ee8c5c9c35
Remove some array_values
2021-11-26 21:47:17 +01:00
1129ab1475
Raise RedundantCast when using array_values on a list
2021-11-26 21:47:14 +01:00
orklah
a27e729263
Merge pull request #7002 from orklah/listkeyedarray
...
Disable list flag for TKeyedArray after unset
2021-11-26 21:32:55 +01:00
ralila
fdaed941ad
use return type hints instead of php doc "@return void"
2021-11-26 20:59:41 +01:00
orklah
4f223db455
Disable list flag for TKeyedArray after unset
2021-11-26 20:52:34 +01:00
Bruce Weirdan
f215ed28d0
Drop special handling of constant references on enums
...
Internally enum cases are constants, and they should be resolved as
such.
Fixes vimeo/psalm#6994
2021-11-26 06:00:01 +02:00
orklah
2fbad1bbeb
Merge pull request #6993 from orklah/taint-numerics
...
Taint can't be transmitted through numerics nor bool
2021-11-25 23:20:38 +01:00
orklah
ab61eae5c9
Taint can't transmit through numerics nor bool
2021-11-25 22:51:35 +01:00
orklah
3bc06a8eab
Taint can't transmit through numerics nor bool
2021-11-25 22:40:01 +01:00
Kamil Tekiela
d922808e8f
Create mysqli.phpstub
...
Signed-off-by: Kamil Tekiela <tekiela246@gmail.com>
2021-11-24 22:30:22 +00:00
orklah
b4d25cbf60
Merge pull request #6984 from orklah/enumcase-in-attribute
...
allow using EnumCase in an Attribute
2021-11-24 19:52:19 +01:00
orklah
049285add2
allow using EnumCase in an Attribute
2021-11-24 19:43:43 +01:00
orklah
fdf3a8dbb8
Merge pull request #6979 from orklah/6975
...
don't accept unresolved literal string as valid callable-strings
2021-11-23 21:41:04 +01:00
orklah
60f0fd13bf
Merge pull request #6981 from AlessandroMinoccheri/fix-count-for-php-7-1
...
using lenght istead of count for php 7.1 compatibility
2021-11-23 21:40:45 +01:00
AlessandroMinoccheri
ddc13a0dba
using lenght istead of count for php 7.1 compatibility
2021-11-23 21:32:55 +01:00
Paweł Tomulik
dac8c98613
attempt to fix #6973
2021-11-23 20:26:07 +01:00
orklah
b42c2814a9
Merge pull request #6971 from orklah/empty-keys
...
fix counting array properties when some are Never
2021-11-23 20:11:47 +01:00
orklah
9db43cdaae
don't accept unresolved literal string as valid callable-strings
2021-11-23 19:54:09 +01:00
Paweł Tomulik
a7b9a241f3
attempt to fix #6937
2021-11-22 23:24:20 +01:00
orklah
eca56c0c1a
Merge pull request #6972 from orklah/unused-throws
...
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 22:00:55 +01:00
orklah
1c1e352e5f
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 21:29:57 +01:00
orklah
0d47722195
fix counting array properties when some are Never
2021-11-22 21:13:25 +01:00
orklah
79fa7f5993
Merge pull request #6953 from orklah/callstatic-pure
...
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 23:02:07 +01:00
orklah
46139272f6
Merge pull request #6952 from orklah/null_propagation_in_return
...
fix null propagation in return
2021-11-21 21:53:50 +01:00
orklah
3e56e859a9
fix inheritance
2021-11-21 21:53:24 +01:00
orklah
41fd460db5
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 13:51:19 +01:00
orklah
6bdadfe0cb
fix null propagation in return
2021-11-21 13:18:26 +01:00
Sebastian Kehr
511ed99e46
expand type aliases when comparing unions
2021-11-19 14:15:38 +01:00
Maximilian Bösing
6bf02657b6
qa: ensure array_merge
has at least one argument
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 21:10:20 +01:00
Maximilian Bösing
765bf93444
bugfix: apply coding standard
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:36:51 +01:00
Maximilian Bösing
68abcaab5c
feature: extract class constant by wildcard detection into dedicated resolver
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:27:19 +01:00
Maximilian Bösing
743f570f66
bugfix: remove preg_quote
as that will also quote wildcard
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:06:39 +01:00
Maximilian Bösing
a050ff2878
bugfix: quote regular expression
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:40 +01:00
Maximilian Bösing
3e1be794c4
refactor: expand test cases and optimize handling of invalid class-constant references
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:39 +01:00
Maximilian Bösing
c6191643ab
qa: add Reconciler::RECONCILIATION_*
constants
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:02 +01:00
Maximilian Bösing
49624169a5
bugfix: reconcile class-constant
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:53:26 +01:00
Bruce Weirdan
608e8d11fa
Merge pull request #6922 from weirdan/cases-references
2021-11-15 11:49:47 +02:00
Bruce Weirdan
0a9154b8bb
Allow references to enum cases in class constants
2021-11-15 05:56:09 +02:00
ralila
cf5a8edf1a
Ensure array offset exists
2021-11-15 04:22:14 +01:00
ralila
fe8f919495
Fix some CS issues
2021-11-15 04:00:38 +01:00
ralila
0d0a06e78f
Avoid empty variable names instead of filtering them later
2021-11-15 03:00:08 +01:00
ralila
4fd87f2d77
Allow a comma as separator
2021-11-15 02:59:16 +01:00
ralila
7326f3b125
Remove useless brackets
2021-11-14 23:55:32 +01:00
ralila
659abf52d0
Fix multiple traces don’t get added to the list
2021-11-14 23:55:32 +01:00
Bruce Weirdan
45e1a1c69a
Merge pull request #6850 from gharlan/hyperlink
2021-11-14 23:20:09 +02:00
Bruce Weirdan
4cab21d903
Use snake_case property name
2021-11-14 22:55:12 +02:00
Bruce Weirdan
bc604a36c1
Do not output links with --monochrome
flag on
2021-11-14 22:50:08 +02:00
Bruce Weirdan
d61e31bbaf
Merge pull request #6912 from weirdan/mbstrotolower-produces-nonlowercase-strings-sometimes
2021-11-14 21:03:24 +02:00
Bruce Weirdan
d302ffba91
Drop duplicate constant
2021-11-14 05:19:20 +02:00
Bruce Weirdan
01d07f9392
Report deprecated elements
2021-11-14 04:55:28 +02:00
Bruce Weirdan
f5b71a3a5f
Infer mb_strtolower() result as string when encoding is specified
...
`mb_strtolower()` may return characters we generally consider uppercase
when it's given the encoding argument. This PR makes Psalm to err on the
side of caution and treat the return type as `string` rather than
`lowercase-string` in this case
Refs vimeo/psalm#6908
2021-11-14 03:57:10 +02:00
Aaron Piotrowski
1bb204db76
Fix detecting readonly promoted property visibility
2021-11-13 12:54:15 -06:00
Aaron Piotrowski
d06510833b
Fix detection of readonly on promoted properties
2021-11-13 12:37:08 -06:00
orklah
b35b9f92a6
Merge pull request #6895 from orklah/ignore-falsable
...
make ignore falsable/nullable dependent on the config
2021-11-13 11:37:57 +01:00
orklah
1464e8f91e
make ignore falsable/nullable dependent on the config
2021-11-13 11:37:22 +01:00
Ricardo Boss
4a58739e00
Fix typos in message about Attribute usage
2021-11-12 23:11:59 +01:00
Jonathan Vollebregt
f5d7f6c405
SimpleXMLIterator is not always truthy
...
Fixes #6865
2021-11-12 13:49:31 +01:00
orklah
2d0758ab10
Merge pull request #6899 from pilif/fix-6887
...
don't stop processing for class usage after raising an issue
2021-11-12 09:42:49 +01:00
Philip Hofstetter
ece2bccf76
don't stop processing for class usage after raising an issue
...
this fixes #6887
2021-11-12 09:24:39 +01:00
8d20a83ed9
Use a proper assertion
2021-11-11 12:42:16 +01:00
2bcbc2f86c
Small fix
2021-11-11 12:16:04 +01:00
575fd1c55a
Small fixes
2021-11-11 12:05:03 +01:00
9dd8533806
ImagickPixel::getColor return type provider
2021-11-11 11:54:30 +01:00
Bruce Weirdan
85f2083acb
Flag duplicate constants
...
Fixes vimeo/psalm#6882
Addresses p1 from vimeo/psalm#6471
2021-11-11 00:44:17 +02:00
Nadyita
6b08f1741b
Fix --enable-autocomplete=false
2021-11-10 18:04:47 +01:00
Philip Hofstetter
038df9cebe
detect unevaluated inline-html code after an rearly return
...
this is a followup after #6876
this fixes #6877
2021-11-10 13:11:50 +01:00
Philip Hofstetter
f407ac846a
do not treat __halt_compiler() as an expression being executed
...
this fixes #6875
2021-11-10 12:45:12 +01:00
orklah
a193ec4573
Merge pull request #6874 from orklah/fix-never-combination
...
fix never combination
2021-11-09 23:18:58 +01:00
orklah
830c898fec
Merge pull request #6872 from orklah/InvalidDocblockPromotedProperties
...
allow signature type for promoted property as well as property docblock
2021-11-09 23:17:43 +01:00
orklah
8d22676627
fix errors
2021-11-09 22:31:40 +01:00
orklah
21591b0f2a
fix errors
2021-11-09 21:14:55 +01:00
orklah
db05dfeb4c
fix never combination
2021-11-09 20:59:49 +01:00
orklah
d409c063f3
allow signature type for promoted property as well as property docblock (that will be used for param as well)
2021-11-09 19:38:18 +01:00
Thomas Bley
ca2fe166ee
Added option to forbid eval() in codebase #6855
2021-11-07 21:06:22 +01:00
Bruce Weirdan
756be3b80c
Merge pull request #6843 from weirdan/enums-as-attributes
2021-11-07 17:53:19 +02:00
Bruce Weirdan
17ef25acd8
Merge pull request #6845 from sasezaki/cs_SelfMemberReference
2021-11-07 17:41:45 +02:00
orklah
4e6cb75094
Merge pull request #6848 from orklah/taint-comments
...
Taint comments
2021-11-07 15:55:37 +01:00
Gregor Harlan
ab0049d0ff
ConsoleReport: Add links to open file in editor
2021-11-07 15:04:14 +01:00
orklah
3322801903
ignore comments after taint-sink
2021-11-07 10:17:25 +01:00
sasezaki
5a01c8d601
Added phpcs SelfMemberReference rule, and applied
2021-11-07 15:47:39 +09:00
Bruce Weirdan
68495be147
Forbid declaring enums as attributes
...
This is in line with current Psalm behavior. We forbid non-instantiable
classlikes as attributes, including abstract classes and classes with
non-public constructors.
Refs vimeo/psalm#6841
2021-11-07 01:47:11 +02:00
Bruce Weirdan
9210bbcdd4
Forbid enum instantiation
...
Fixes vimeo/psalm#6837
2021-11-07 00:14:37 +02:00
orklah
b08d39e567
Merge pull request #6834 from orklah/unused-in-assert
...
don't consider calls to methods with assertions as Unused
2021-11-06 22:05:34 +01:00
orklah
e28659eb6c
Merge pull request #6838 from orklah/value_and_name_enum
...
better understands value and name properties for enum
2021-11-06 22:05:04 +01:00
orklah
18677bb108
better understands value and name properties for enum
2021-11-06 21:49:42 +01:00
Bruce Weirdan
0f8ef45110
Forbid properties on enums
...
Fixes vimeo/psalm#6472
2021-11-06 21:57:49 +02:00
orklah
9c9669ea44
don't consider calls to methods with assertions as Unused
2021-11-06 19:54:17 +01:00
orklah
aca8e12bf9
Merge pull request #6830 from orklah/isContainedBy
...
Mixed contain every types and Never is contained in every type
2021-11-05 22:05:32 +01:00
orklah
f4dcea3e57
Merge pull request #6829 from orklah/isType
...
only return true in Union::is*Type* if there is a single type
2021-11-05 22:05:17 +01:00
orklah
de9ad68ad0
Mixed contain every types and Never is contained in every type
2021-11-05 21:25:23 +01:00
orklah
728175f82d
only return true in Union::is*Type* if there is a single type
2021-11-05 21:14:04 +01:00
orklah
ad57516765
create a temporary var for coalescing ternaries
2021-11-05 20:07:35 +01:00
orklah
b7834689e5
Merge pull request #6824 from orklah/session
...
Makes $_SESSION possibly undefined at the source
2021-11-05 20:07:24 +01:00
orklah
33aab6cc40
allow declaring functions and classLikes after a never-returning call
2021-11-05 18:09:40 +01:00
orklah
6e5f3db06c
makes $_SESSION possibly undefined
2021-11-04 22:45:46 +01:00
orklah
fffef80ec1
makes $_SESSION possibly undefined
2021-11-04 22:38:31 +01:00
orklah
915278e253
Merge pull request #6823 from orklah/variable_class
...
allow assertion to work on $var::class
2021-11-04 20:54:59 +01:00
orklah
834d831915
allow assertion to work on $var::class
2021-11-04 20:44:42 +01:00
orklah
5282e4728b
allow assertion to work on $var::class
2021-11-04 20:33:30 +01:00
orklah
cd74f665dc
Merge pull request #6813 from orklah/intTaint
...
don't register taints for numeric variables
2021-11-04 15:30:52 +01:00
orklah
e6dccaa07c
Merge pull request #6809 from orklah/binaryOpTaint
...
don't taint the result of most binary operations
2021-11-04 13:18:07 +01:00
orklah
bf993452a8
Merge pull request #6810 from orklah/castArrayTaints
...
Array cast pass taints
2021-11-04 13:17:20 +01:00
orklah
c2b14e2f39
Merge pull request #6812 from orklah/shell_exec_taint
...
backticks shell_exec taint
2021-11-04 13:16:53 +01:00
Bruce Weirdan
6610a2f918
Improve Github Actions output
...
* Use issue type in title
* Also provide issue type and location in the (use-visible) error message
Fixes vimeo/psalm#6817
2021-11-04 03:03:25 +02:00
orklah
3503f198a6
add deprecated tags to the array
2021-11-04 00:39:09 +01:00
orklah
6e49c61fd0
fix comment
2021-11-04 00:31:22 +01:00
orklah
9fb74a4f28
exclude Plus on arrays too
2021-11-04 00:30:09 +01:00
orklah
3b01713257
don't taint the result of most binary operations
2021-11-04 00:30:09 +01:00
orklah
24137bdbad
Array cast pass taints
2021-11-04 00:29:36 +01:00
orklah
eca530d792
don't register taints for numeric variables
2021-11-04 00:29:07 +01:00
orklah
ff83c498a7
fix CS
2021-11-04 00:28:40 +01:00
orklah
fbe305e5bb
detect taint in backticks
2021-11-04 00:28:40 +01:00
Alexander Wühr
2d91b90690
Add pcntl_alarm to the list of impure functions
2021-11-03 10:16:10 +01:00
sasezaki
e3c6464a91
accept ::class constant strings for literal argument
2021-11-03 13:44:14 +09:00
Bruce Weirdan
0cdb0dc04a
Merge pull request #6768 from zoonru/psalm-self-out-templates
2021-11-02 21:41:16 +02:00
orklah
96ae8e7600
Merge pull request #6793 from orklah/unevaluatedCode
...
emit UnevaluatedCode after exit or never returning functionlike
2021-11-01 23:41:36 +01:00
orklah
68a4f9e930
emit UnevaluatedCode after exit or never returning functionlike
2021-11-01 22:13:29 +01:00
Bruce Weirdan
81ca05f3ab
Merge pull request #6790 from orklah/fix_yield
2021-11-01 20:25:54 +02:00
orklah
af129f8851
detect yield in new
2021-11-01 19:04:37 +01:00
Bruce Weirdan
ac098a52da
Allow to forbid exit()
and die()
2021-10-31 03:02:16 +03:00
Alexey Borzov
91ec5712ad
Add a means to switch return types based on PHP_VERSION_ID
...
As suggested in vimeo/psalm#6755
2021-10-29 22:19:38 +03:00
Bruce Weirdan
8c33b21261
Merge pull request #6776 from orklah/double-autoload-call
2021-10-29 11:25:14 +03:00
orklah
61a7cbe9c5
Merge pull request #6764 from orklah/promoted-property-docblock
...
allow documenting promoted properties with @var
2021-10-28 22:19:42 +02:00
orklah
67a3f3cd5c
fix spacing
2021-10-28 22:11:30 +02:00
orklah
d330b340d2
try without second call
2021-10-28 22:07:50 +02:00
orklah
067f8375cf
replace exception by InvalidDocblock
2021-10-28 22:05:43 +02:00