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