1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 04:45:20 +01:00
Commit Graph

4811 Commits

Author SHA1 Message Date
Bruce Weirdan
fb56d5ce58
Merge pull request #7210 from vstm/improve-cli-utils-argv-handling 2021-12-27 00:35:32 +02:00
orklah
d4fcb7f61c handle literal equality with integer ranges 2021-12-26 21:09:27 +01:00
orklah
fb97980bf9 fix test 2021-12-26 19:27:13 +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
Stefan Vetsch
3893abff72 Use directory separator to make test more portable 2021-12-24 15:55:24 +01: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
Stefan Vetsch
ecc7400530 Add CliUtilsTest with test cases for old behaviour 2021-12-24 09:54:37 +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
Philip Hofstetter
fdeb1954c2
update docs for enum case deprecation 2021-12-22 06:16:42 +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
cc618bc916 allow successful destructuring to also be null if the source was nullable 2021-12-20 22:48:27 +01:00
orklah
639b1b94a3 fix stub and fix test 2021-12-20 09:57:06 +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
orklah
ba6a4d8af5 fix test 2021-12-17 00:16:50 +01:00
orklah
9583d6a7e7 invert stub, add test 2021-12-17 00:12:54 +01:00
Matthew Brown
89a1c5acbc Fix faulty comparison with typed closure 2021-12-16 16:39:08 +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
03ccb9b548 Add test for nested array_map return type. 2021-12-15 11:09:10 -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
bb687aebba add test 2021-12-15 00:51:59 +01:00
orklah
41fe5534b6
Merge pull request #7159 from AndrolGenhald/bugfix/number-format-optional-arguments
Fix optional arguments in number_format (fixes #7158).
2021-12-15 00:47:35 +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
AndrolGenhald
10b6b9aef0 Fix optional arguments in number_format (fixes #7158). 2021-12-14 09:10:05 -06: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
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
fed7d1ef3b Conversion of Psalm\Plugin\Hook\*Interface 2021-12-14 02:08:35 +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
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
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
adrew
63de45f0ad Remove use of nonexistent class 2021-12-11 23:45:34 +03:00
adrew
6cf2e31c4a Forbid positional arg after named arg 2021-12-11 23:37:15 +03:00
adrew
603e1c944b Fix type inference of closure params 2021-12-11 23:00:18 +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
b558748db2 Detect unused properties that are written to inside arrays 2021-12-11 11:42:05 -05:00
Aaron Piotrowski
1f3a37ff02
Add support for first-class callables 2021-12-09 10:54:49 -06:00
orklah
761d5f35b4
Merge pull request #7094 from kamil-tekiela/count_chars-fix
Fix count_chars stubs
2021-12-09 00:14:11 +01:00
Kamil Tekiela
098238ff7f Create test for count_chars 2021-12-08 22:57:32 +00: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
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
b29fc6ad3c Allow operator overloading for Decimal extension (fixes #3938). 2021-12-08 10:59:37 -06:00
orklah
574c8f74dd fix test 2021-12-07 19:48:37 +01: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
marcosh
9c4187fd2f fix abs tests 2021-12-07 12:00:52 +01:00
Bruce Weirdan
2530b33dbd
Merge pull request #7076 from klimick/fix-generic-assertion 2021-12-07 08:08:48 +02:00
orklah
75312d93b1 Don't crash when checking purity of __callStatic in a trait 2021-12-06 19:00:37 +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
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
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
ralila
f833085a15 Fix fqn usage in php-doc 2021-12-04 03:37:19 +01:00
ralila
d5d277f579 Set further phpcs fqn options 2021-12-03 22:44:41 +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
a7e9eea0ca
flag usage of get_class outside class without args (#7043) 2021-12-02 00:38:45 +02:00
Bruce Weirdan
28c4f86993
Merge pull request #7027 from rarila/issue-6914 2021-11-30 23:34:00 +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
9a7d0809d2 Restrict tests with PREG_UNMATCHED_AS_NULL to PHP >= 7.2 2021-11-30 03:29:41 +01:00
ralila
fef41461ed Allow skipping tests for PHP <= 7.2 2021-11-30 03:25:39 +01:00
ralila
c29e943244 Add some tests 2021-11-30 03:19:27 +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
9de9c12851 flag DeprecatedProperty on static fetch 2021-11-29 23:32:27 +01:00
orklah
8ca0fc209a remove the remaining dynamic property assignment 2021-11-29 20:12:59 +01:00
Paweł Słowik
18b6fbc907 Add tests for UnresolvableInclude 2021-11-29 18:37:14 +01:00
ralila
e5c1a35e31 Adjust tests 2021-11-29 14:24:15 +01:00
Bruce Weirdan
28a75652ac
Merge pull request #6997 from zoonru/list_values_paradox 2021-11-29 00:47:12 +02: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
7660dc2f3e
Merge pull request #7009 from rarila/fix-symlink-test-error 2021-11-28 01:47:33 +02:00
Bruce Weirdan
66eb665b55
Merge pull request #4160 from Rarst/patch-2 2021-11-28 01:33:16 +02:00
ralila
2e56fcac93 Fix test on Windows 2021-11-28 00:18:13 +01:00
Bruce Weirdan
ec1571d261
Adjust link test to account for colors 2021-11-28 01:14:03 +02:00
Bruce Weirdan
03aea28c73
Merge pull request #6995 from vimeo/enum-constants 2021-11-27 21:49:13 +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
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
ee8c5c9c35
Remove some array_values 2021-11-26 21:47:17 +01:00
04bbd2acba
Fix tests 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
3bc06a8eab Taint can't transmit through numerics nor bool 2021-11-25 22:40:01 +01: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
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
7c6b86cef3 suppress error and add test 2021-11-23 20:04:52 +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
d8fcd783c8 fix parse 2021-11-22 21:38:25 +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
41fd460db5 check __callStatic purity instead of the pseudoMethod purity 2021-11-21 13:51:19 +01:00
Sebastian Kehr
511ed99e46 expand type aliases when comparing unions 2021-11-19 14:15:38 +01:00
Maximilian Bösing
62b0a09741
qa: remove useless var annotation and the psalm suppression
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 19:06:33 +01:00
Maximilian Bösing
dac82e95dc
qa: re-enable skipped test for class constant assertions
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:49:51 +01:00
Maximilian Bösing
665cea7fbf
bugfix: prevent psalm from yelling about docblock type contradiction
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:36:04 +01:00
Maximilian Bösing
a2bf87b1fc
qa: ensure psalm is able to understand already verified types
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:31:28 +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
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
1a543aecb9
qa: add namespace to test asset
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 17:56:04 +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
2e1b7b4c70 Add some tests 2021-11-15 03:09:37 +01:00
Bruce Weirdan
45e1a1c69a
Merge pull request #6850 from gharlan/hyperlink 2021-11-14 23:20:09 +02:00
Bruce Weirdan
db181bfc08
Test links output 2021-11-14 23:07:00 +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
58f60b4be0
Use correct constant in tests 2021-11-14 05:23:12 +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
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
Bruce Weirdan
85f2083acb
Flag duplicate constants
Fixes vimeo/psalm#6882
Addresses p1 from vimeo/psalm#6471
2021-11-11 00:44:17 +02: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
de443192c7
Merge pull request #6873 from orklah/ReturnTypeWillChange3
load the ReturnTypeWillChange stubs for all versions to allow using it on every PHP version
2021-11-09 23:18:07 +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
db05dfeb4c fix never combination 2021-11-09 20:59:49 +01:00
orklah
b7e70f3cd7 load the ReturnTypeWillChange stubs for all versions to allow using it on every PHP version 2021-11-09 19:57:03 +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
orklah
39dc7608ef ignore comments after taint-sink 2021-11-07 10:29:08 +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
Bruce Weirdan
59e63c3235
Merge pull request #6839 from weirdan/forbid-enum-properties 2021-11-06 23:15:09 +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
Bruce Weirdan
f0f085e084
Add test for NoEnumProperties
This was somehow missed from vimeo/psalm#6836
2021-11-06 22:52:17 +02:00
orklah
18677bb108 better understands value and name properties for enum 2021-11-06 21:49:42 +01:00
Bruce Weirdan
b49c25ae76
Fixed tests
* Added new issue to the config.xsd
* Marked NoEnumProperties as PHP 8.1 issue
2021-11-06 22:22:38 +02:00
orklah
65c41e7543 don't consider calls to methods with assertions as Unused 2021-11-06 20:00:31 +01:00
orklah
9c9669ea44 don't consider calls to methods with assertions as Unused 2021-11-06 19:54:17 +01:00
orklah
ad57516765 create a temporary var for coalescing ternaries 2021-11-05 20:07:35 +01:00
orklah
f4f9bd6711 allow declaring functions and classLikes after a never-returning call 2021-11-05 18:34:59 +01:00
orklah
6e8bd2b207 allow declaring functions and classLikes after a never-returning call 2021-11-05 18:18:34 +01:00
orklah
33aab6cc40 allow declaring functions and classLikes after a never-returning call 2021-11-05 18:09:40 +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
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
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
fbe305e5bb detect taint in backticks 2021-11-04 00:28:40 +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
500571b9da move tests to enable config 2021-11-01 22:45:17 +01:00
orklah
e2bb9859e4 fix tests 2021-11-01 22:27:43 +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
c5c779c4a9 detect yield in new 2021-11-01 19:04:49 +01: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
Bruce Weirdan
f660ff4f83
Move ForbiddenCode-related tests to the corresponding test file 2021-10-31 02:43:17 +03:00
Alexey Borzov
136624e817 Add another check to a PHP_VERSION_ID condition test 2021-10-30 01:13:28 +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
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
b53138ebde fix CS 2021-10-28 22:10:22 +02:00
orklah
067f8375cf replace exception by InvalidDocblock 2021-10-28 22:05:43 +02:00
orklah
d19018b3fa
Merge pull request #6775 from orklah/is_a
fix is_a when used with Stringable classes
2021-10-28 21:47:27 +02:00
orklah
9823e87b80
Merge pull request #6774 from orklah/reconcileFalsyOrEmpty
fix local variable defined too early
2021-10-28 21:47:17 +02:00
orklah
ce87fc4882 fix is_a when used with Stringable classes 2021-10-28 20:08:43 +02:00
orklah
b9effdb28a
Merge pull request #6742 from zoonru/fix_fewer_template_parameters
Fix template parameter collection for child classes with fewer parameters (fixes #6734)
2021-10-28 20:06:11 +02:00
orklah
a7c44a1a19 fix local variable defined too early 2021-10-28 19:33:27 +02:00
5fae548e62
Add template support to @psalm-self-out 2021-10-28 10:44:37 +02:00
orklah
e17ca1ba10 fix CS/test 2021-10-27 22:45:16 +02:00
orklah
9b7eabe17f allow documenting promoted properties with @var 2021-10-27 22:35:21 +02:00
02e293bc07
Improve test 2021-10-27 11:02:35 +02:00
9c59550e15
Fully fix recursive template parameter resolution 2021-10-27 10:58:33 +02:00
orklah
dc2ac427ca Don't remove a type because they have a common parent 2021-10-26 22:54:55 +02:00
3f1fef1fce
Fix tests 2021-10-26 13:38:06 +02:00
6fe44b3374
Add tests 2021-10-26 13:26:36 +02:00
Bruce Weirdan
4b0c8806a7
Merge pull request #6739 from orklah/instanceof_notliteral 2021-10-25 23:45:17 +03:00
orklah
8e0cf0e74b add test 2021-10-25 20:16:58 +02:00
orklah
9fb959150a
Merge pull request #6730 from orklah/int-template-arithmetics
don't emit issues when doing arithmetics on int templates
2021-10-24 20:39:54 +02:00
orklah
af918a95a2 don't emit issues when doing arithmetics on int templates 2021-10-24 19:30:39 +02:00
orklah
90d6239d74 strlen of strtolower of string is not always true 2021-10-24 18:40:13 +02:00
orklah
e33492398b
Merge pull request #6726 from orklah/crash_intrange
Don't crash on falsy with int ranges
2021-10-24 14:29:22 +02:00
orklah
c38139a87c Don't crash on falsy with int ranges 2021-10-24 13:59:21 +02:00
orklah
68528985d6
Merge pull request #6724 from orklah/impure_callstatic
flag impure calls made through __callstatic
2021-10-24 10:30:56 +02:00
orklah
a0681a4498 flag impure calls made through __callstatic 2021-10-24 09:55:40 +02:00
orklah
0339815070 fix type leaking when using ternaries 2021-10-23 18:58:05 +02:00
orklah
b63d877f48
Merge pull request #6720 from orklah/loop-template-regression
Don't refine empty/falsy assertions on templates inside loops
2021-10-23 14:31:10 +02:00
orklah
78a4c78187
Merge pull request #6718 from orklah/5651
fix literal string access on a non empty array
2021-10-23 12:11:39 +02:00
orklah
fb5a652e18 Don't refine empty/falsy assertions on templates inside loops 2021-10-23 11:17:47 +02:00
orklah
2cc5c555c2 fix literal string access on a non empty array 2021-10-22 18:17:08 +02:00
orklah
2d90631c87
Merge pull request #6689 from orklah/traversable&array
only fuse array & Traversable with phpstorm generics
2021-10-21 22:38:59 +02:00
orklah
1c0b802abb fix regression 2021-10-21 21:10:12 +02:00
orklah
f0f0b4a8a8
Merge pull request #6708 from orklah/skipped
skipped tests
2021-10-21 13:17:03 +02:00
orklah
8b98e645eb skipped tests 2021-10-20 23:37:52 +02:00
orklah
31bbd5a967
Merge pull request #6707 from orklah/!falsy_on_empty-string
improve falsy on non-empty-string
2021-10-20 23:18:12 +02:00
orklah
7ce0c3a6e3 improve falsy on non-empty-string 2021-10-20 22:31:03 +02:00
orklah
1f02795e42 fix missing implicit __toString 2021-10-20 19:54:32 +02:00
orklah
4755131585 more consistency 2021-10-20 07:32:04 +02:00
orklah
5d154e1bda fix test 2021-10-18 22:00:51 +02:00
orklah
a9e2284e79 add test 2021-10-18 21:51:36 +02:00
orklah
f7a63361ad
Merge pull request #6679 from SCIF/bugfix-5694-arrayfilter
Improve handling of positive ints by array_filter()
2021-10-17 23:20:26 +02:00
Aleksandr Zhuravlev
b664850cdc Added support of asserting properties of objects out of scope 2021-10-17 21:29:25 +13:00
Aleksandr Zhuravlev
978d9ec774 Improve handling of positive ints by array_filter() 2021-10-16 20:47:22 +13:00
orklah
56c73142d6 don't emit InvalidReturnType when return type was inferred to never 2021-10-16 00:15:17 +02:00
orklah
1aad830392
Merge pull request #6654 from zoonru/fixes
Fix manipulation of intersection types, arrow functions, foreign static types, parameter static types, T|false|null unions.
2021-10-15 23:41:24 +02:00
ElisDN
7b47063585 Add array typed tests 2021-10-15 14:30:20 +03:00
ElisDN
f26e9ae3b1 Add array replace tests 2021-10-15 14:30:20 +03:00