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
orklah
b8a2ba251f
Merge pull request #6672 from orklah/phpstorm-generics
...
prevent phpstorm generics from touching to signature types
2021-10-14 21:25:36 +02:00
orklah
a1b1080c4e
prevent phpstorm generics from touching to signature types
2021-10-14 21:04:53 +02:00
orklah
110f2b4822
Merge pull request #6658 from fluffycondor/method-annotation-parsing-fix
...
Fix @psalm-method annotation parsing
2021-10-14 17:36:42 +02:00
Semyon
28385dc526
Fix failed test
2021-10-14 18:00:32 +03:00
Bruce Weirdan
6abdb092bc
Merge pull request #6667 from SCIF/bugfix-5135-reflectionnamedtype-stub
2021-10-14 13:26:50 +03:00
Aleksandr Zhuravlev
657f8e22ed
Made the test marked 7.4
2021-10-14 22:05:40 +13:00
244a90ca4f
Fix #6665
2021-10-14 10:56:54 +02:00
orklah
75c3f8716a
Merge pull request #6652 from orklah/is_a_stub
...
stub for is_a
2021-10-14 00:13:13 +02:00
Aleksandr Zhuravlev
cbb67c0672
Stubbed RelfectionNamedType
2021-10-14 11:09:52 +13:00
orklah
e17290a9bc
Merge pull request #6613 from orklah/string-unpacking
...
String unpacking
2021-10-13 15:18:11 +02:00
24f1b60e53
Fix nullable unions
2021-10-13 14:05:48 +02:00
orklah
c96be1f68e
fix tests
2021-10-13 11:47:57 +02:00
orklah
758acccb91
fix tests
2021-10-13 11:43:17 +02:00
ce60fa2151
Cleanup
2021-10-13 11:26:01 +02:00
orklah
c4eb548603
more precise type
2021-10-13 11:22:40 +02:00
orklah
83f2cf2eac
switch the test from invalid to valid
2021-10-13 11:22:40 +02:00
orklah
690c24f824
array unpacking with strings
2021-10-13 11:22:40 +02:00
b6e7201b5a
Forbid static in parameter typehint
2021-10-13 11:22:33 +02:00
1c99af205b
Fix manipulation of intersection types, arrow functions, foreign static types, T|false|null unions.
2021-10-13 11:13:43 +02:00
orklah
e7cd2eac0a
Merge pull request #6641 from orklah/weird-assertion-count
...
Union::getAssertionString with multiple types
2021-10-13 08:15:28 +02:00
orklah
1efe272aed
stub for is_a
2021-10-12 22:12:51 +02:00
orklah
04813bf556
fix test
2021-10-12 15:58:06 +02:00
orklah
233fe11d12
SimpleXMLElement is not always truthy
2021-10-12 15:46:02 +02:00
orklah
c6fb81007c
Merge pull request #6629 from orklah/loops-tweaking
...
tweaking with loops
2021-10-11 20:45:54 +02:00
orklah
af414ffe59
Merge pull request #6642 from orklah/inside-conditional
...
Inside conditional
2021-10-11 20:45:14 +02:00
orklah
b54dddf484
Merge pull request #6643 from orklah/never-closure
...
infer never on closures(and more?)
2021-10-11 20:42:02 +02:00
orklah
29966b38bd
fix test
2021-10-11 19:23:56 +02:00
orklah
e4aaae29e9
fix test
2021-10-11 19:12:26 +02:00
orklah
f9377c53fc
infer never on closures(and more?)
2021-10-11 18:52:26 +02:00
orklah
88dd4eace3
add test
2021-10-11 17:33:02 +02:00
orklah
55a696f83f
fix test
2021-10-11 16:11:22 +02:00
orklah
4bcce010e4
loose comparison between int/float and string result in numeric-string
2021-10-11 16:11:05 +02:00
orklah
d08845900b
Merge pull request #6639 from orklah/refine-TKeyedArray-with-iterable
...
Refine TKeyedArray with iterable
2021-10-11 16:09:00 +02:00
orklah
2e64854a6c
don't allow getAssertionString to return a part of the Union
2021-10-11 16:07:57 +02:00
orklah
5bb8eb6eb2
add test
2021-10-11 13:36:56 +02:00
orklah
3aee938910
Merge pull request #6636 from orklah/possibly-undefined-satisfy-nullable
...
Allow sending possibly_undefined inputs to optional params
2021-10-10 23:12:38 +02:00
orklah
fb8b07613d
Allow sending possibly_undefined inputs to optional params
2021-10-10 12:44:04 +02:00
orklah
5134a92e2a
Merge pull request #6623 from orklah/templated-array-key
...
Templated array key
2021-10-10 10:43:12 +02:00
orklah
cdfc119e33
add test
2021-10-10 10:31:30 +02:00
orklah
e7a86148b0
Allow Psalm to store unresolved Unary Ops
2021-10-10 09:24:25 +02:00
orklah
8b151f39c8
put back one of the errors
2021-10-09 22:09:48 +02:00
orklah
d7dfd87390
remove suppress on an old test
2021-10-09 21:04:06 +02:00
orklah
4866155b3a
add test
2021-10-09 20:03:52 +02:00
orklah
f62c76a334
Merge pull request #6622 from orklah/return_0
...
fix @return 0
2021-10-09 18:25:46 +02:00
orklah
4137cabaed
add test
2021-10-09 17:59:41 +02:00
orklah
d40335ff37
Merge pull request #6612 from orklah/empty-array_is_list
...
array_is_list on empty array returns true
2021-10-08 17:16:35 +02:00
orklah
682784c886
array_is_list on empty array returns true
2021-10-08 17:05:35 +02:00
orklah
f35df421e2
Merge pull request #6604 from orklah/array-unshift-on-empty-array
...
Array unshift on empty array
2021-10-07 23:04:10 +02:00
orklah
22fb4b5d19
add test
2021-10-07 11:04:51 +02:00
orklah
ecb541ea51
add test
2021-10-05 19:49:05 +02:00
orklah
dbc70900ff
fix tests
2021-10-05 13:41:40 +02:00
orklah
13c2ba61ea
fix tests
2021-10-05 13:41:20 +02:00
orklah
902206b3ee
Merge pull request #6578 from orklah/psalter-psalm-param
...
Psalter psalm-param
2021-10-05 12:51:52 +02:00
orklah
d22105de72
Merge pull request #6580 from orklah/psalter-generic-object-tophpstring
...
fix wrong type description added in signature
2021-10-04 20:23:42 +02:00
orklah
2c728546e4
Merge pull request #6485 from orklah/list-assert
...
assert that some type is a list
2021-10-04 13:31:34 +02:00
orklah
ac6a75ea7f
Merge pull request #6473 from orklah/double-assert2
...
assert both sides of an equality
2021-10-04 13:30:38 +02:00
orklah
0e83afdb86
Merge pull request #6518 from orklah/fix-truthy
...
improvements of alwaysTruthy/alwaysFalsy
2021-10-04 13:29:49 +02:00
orklah
b0842c6b6f
Merge pull request #6475 from orklah/range6
...
3> min/max, rand inference improvement with integer range
2021-10-04 13:23:03 +02:00
orklah
66206bf061
fix wrong type description added in signature
2021-10-04 12:26:05 +02:00
orklah
8b07e69645
Merge pull request #6514 from zoonru/if-this-is
...
Add if-this-is
2021-10-04 09:49:26 +02:00
orklah
8660f68007
Merge pull request #6519 from gmessier/advanced-issue-handlers
...
Add support for advanced IssueHandler in plugins
2021-10-04 09:47:59 +02:00
orklah
fffe6428de
fix tests
2021-10-04 01:13:16 +02:00
orklah
4f696ec3b4
add/fix tests
2021-10-04 01:01:57 +02:00
orklah
ee4dbafca9
fix test
2021-10-02 10:02:24 +02:00
orklah
f641d9e95a
assert that some type is a list
2021-10-02 10:02:22 +02:00
orklah
532aa9058b
add and fix tests
2021-10-02 10:01:05 +02:00
orklah
597e9a99d7
Makes BooleanNot smarter
2021-10-02 10:01:04 +02:00
orklah
b9f14f8687
improve min/max inference, add a return type provider for rand, mt_rand and random_int
2021-10-02 09:53:58 +02:00
orklah
83ad836e88
assert both sides of an equality
2021-10-02 09:52:19 +02:00
Bruce Weirdan
2e7e343ef8
Merge pull request #6423 from orklah/count-equal-0-negated-assertion
2021-10-02 00:53:03 +03:00
Bruce Weirdan
97a3d673f4
Merge pull request #5091 from ohader/namespace-resolver
2021-10-01 02:00:33 +03:00
Bruce Weirdan
377d3bddf0
Merge pull request #6552 from orklah/manipulator
2021-09-30 21:54:55 +03:00
Bruce Weirdan
d232cc0d02
Merge pull request #6553 from orklah/exec-leak
2021-09-30 21:32:55 +03:00
orklah
4c6f43884c
fix test
2021-09-29 22:55:01 +02:00
orklah
2a2e7c5e32
prevent object leaking that lead to changes in callmap
2021-09-29 22:27:34 +02:00
orklah
5a99c9be94
offset the starting position of the function in case of attributes
2021-09-29 21:19:04 +02:00
orklah
9d9dba156c
Merge pull request #6538 from orklah/taint-windows
...
enable test on taint
2021-09-27 20:37:27 +02:00
orklah
caf4d57438
enable test on taint
2021-09-27 20:16:50 +02:00
orklah
ef82910de3
Merge pull request #6537 from mmcev106/master
...
Prevent unnecessary filter_var() warnings on primitive types
2021-09-27 20:15:01 +02:00
Mark McEver
79340b4a6f
Prevent unnecessary filter_var() warnings
2021-09-27 18:46:01 +01:00
Mark McEver
76dade477d
Prevent unnecessary filter_var() warning
2021-09-27 18:34:58 +01:00
Oliver Hader
51333e8f6e
[TASK] Resolve namespace of class related AST statements
...
This change allows using `Class_` namespaces like in
PhpParser's original `NameResolver` implementation.
```
if ($node instanceof \PhpParser\Node\Stmt\Class_) {
$fqcn = (string)($node->namespacedName ?? $node->name);
$extents = (string)($node->extends->getAttribute('resolvedName'));
}
```
Corresponding parts have been duplicated and modified from
https://github.com/nikic/PHP-Parser/blob/v4.10.4/lib/PhpParser/NodeVisitor/NameResolver.php#L69-L81
2021-09-27 11:19:24 +02:00
Guillaume Messier
c9db2dfb53
Merge branch 'master' of https://github.com/gmessier/psalm into advanced-issue-handlers
2021-09-24 12:48:12 +00:00
orklah
b542daf233
more precise test
2021-09-23 21:24:17 +02:00
orklah
85d65d35e9
restrict the test because int size is fixed on runtime environment
2021-09-23 21:24:17 +02:00
orklah
a54e76cbc7
add new issues to baseline and fix a test
2021-09-23 21:24:16 +02:00
orklah
cc6ab8340b
improve type when min = max and add test
2021-09-23 21:24:16 +02:00
orklah
a7fa63547e
add tests, improve count behaviour on keyed arrays using integer range
2021-09-23 21:24:16 +02:00
orklah
60f017410c
Merge pull request #6526 from orklah/fix-build
...
fix build
2021-09-23 19:37:06 +02:00
orklah
c74e81ca8f
fix build
2021-09-23 19:29:15 +02:00
Guillaume Messier
666367fbd5
Add unit test
2021-09-23 15:30:30 +00:00
741c9ee471
Fixes
2021-09-22 10:26:21 +02:00
ba2c2bdaa2
Fix tests
2021-09-21 13:00:13 +02:00
7e0b489efe
Merge remote-tracking branch 'origin/master' into if-this-is
2021-09-21 12:12:15 +02:00
orklah
55fd9c6713
Merge pull request #6478 from whsv26/bugfix/trait-template-invalid-arg
...
Fix invalid argument bug in generic trait context
2021-09-20 16:53:12 +02:00
orklah
994c927b6a
Merge pull request #6445 from TysonAndre/negate-in_array-v2
...
Fix false positive ParadoxicalCondition in negation of in_array
2021-09-20 16:49:15 +02:00
orklah
7328456a33
Merge pull request #6438 from SCIF/serializable-interface
...
Changed signature of Serializable::unserialize stub
2021-09-20 16:49:00 +02:00
orklah
90e1662964
Merge pull request #6241 from orklah/range5
...
Range arithmetics and assertions
2021-09-20 07:15:43 +02:00
orklah
f87bd56105
fix Pow
2021-09-19 19:30:03 +02:00
orklah
5a2df475ca
changes after review
2021-09-19 19:30:03 +02:00
orklah
3d7dc740c2
fix UnaryMinus
2021-09-19 19:30:03 +02:00
orklah
a6630c49a2
fix mod calculation with ranges
2021-09-19 19:30:02 +02:00
orklah
c226285a4b
fix Mul and Pow operations
2021-09-19 19:30:02 +02:00
orklah
a8a659895f
add failing test
2021-09-19 19:30:02 +02:00
orklah
f789ab0655
add test and allow checking in already inferred types instead of just relying on statements from PHPParser for assertions
2021-09-19 19:30:02 +02:00
orklah
ae0586b0e6
fix shift inference
2021-09-19 19:30:02 +02:00
orklah
e0e34bec33
allow intersections and add test
2021-09-19 19:30:02 +02:00
orklah
c26f403e7e
fix an old bug with inverting positive int + allow inverting TIntRange
2021-09-19 19:30:02 +02:00
orklah
488c13b7c5
handle bit operations and add test
2021-09-19 19:30:02 +02:00
orklah
6f050359ce
refactor int vs int range arithmetic by converting everything to range and add tests
2021-09-19 19:30:02 +02:00
orklah
d2f73d3adb
fix and test minus case
2021-09-19 19:30:01 +02:00
orklah
b5b2677ee3
allow negating inferiorto/superiorto
2021-09-19 19:30:01 +02:00
orklah
b3a62c76dd
add tests and use getNewHighestBound at one place
2021-09-19 19:30:01 +02:00
orklah
edff17134d
improve test
2021-09-19 19:30:00 +02:00
orklah
7d6ede61fd
fix test
2021-09-19 19:30:00 +02:00
orklah
ee75586fbf
expand test and fix assertions
2021-09-19 19:30:00 +02:00
orklah
d2e1388473
Allow inferior-to and superior-to even with negated numbers
2021-09-19 19:30:00 +02:00
orklah
d9d9fa67a6
remove faulty test
2021-09-19 19:29:59 +02:00
orklah
3a8afe07be
fix test
2021-09-19 19:29:59 +02:00
orklah
1dcdaea117
int range arithmetics
2021-09-19 19:29:59 +02:00
orklah
e9f3d5ba06
assert from TClassString
2021-09-17 20:05:25 +02:00
Aleksandr Zhuravlev
65407cc10d
Got rid of test
2021-09-16 23:07:32 +12:00
whsv26
8b54cca3a8
Fix different context templates invalid argument bug for trait.
2021-09-13 23:43:09 +03:00
Alessandro Lai
55cbbd4fe7
Add test
2021-09-09 16:04:12 +02:00
Bruce Weirdan
beb0476eed
Added test
2021-09-08 22:41:23 +03:00
Bruce Weirdan
b4f024b1fe
Basic enum checks
...
* Duplicate cases
* Duplicate case values
* Invalid case values: value on a pure enum case, missing value on a
backed enum case, backing type / case type mismatch
* Literal expression evaluation for case values
Fixes vimeo/psalm#6426
Fixes vimeo/psalm#6427
2021-09-07 12:35:38 +03:00
Tyson Andre
f4f989d1e5
Use different in-array-*
check for non-literals
...
Negating this would not contradict the original condition if the
variables were different. A string can be in one array of strings but
not be in a different array of strings.
2021-09-06 21:48:08 -04:00
Tyson Andre
f69a255611
Fix false positive ParadoxicalCondition in negation of in_array
...
For #6439
2021-09-06 21:15:04 -04:00
Bruce Weirdan
b39e765475
Prevent failures with dev PHP versions
...
It was failing with dev versions, e.g. `8.2.0-dev`
2021-09-07 01:43:03 +03:00
Nicolas Giraud
9df0edbbab
Force array_walk to not infer input type.
2021-09-06 15:15:25 +02:00
Bruce Weirdan
0f2152ac97
Merge pull request #6434 from weirdan/flag-invalid-enum-backing-type
...
Flag invalid backing types for enums
2021-09-05 20:30:01 +03:00
Bruce Weirdan
7b11024886
Flag invalid backing types for enums
...
Fixes vimeo/psalm#6428
2021-09-05 20:12:24 +03:00
Bruce Weirdan
abf557da44
Encode XML output consistently
...
This fixes test failures when running on PHP 8.1, due to changed
`htmlspecialchars()` defaults
2021-09-05 20:06:59 +03:00
Bruce Weirdan
5dfd157d72
Merge pull request #6420 from orklah/ternary-override-type
...
Ternary override type when reassigning
2021-09-04 21:58:32 +03:00
Bruce Weirdan
b710aab148
Merge pull request #6419 from TysonAndre/in_array-fix
2021-09-04 21:56:36 +03:00
Bruce Weirdan
3a3fde332e
Merge pull request #6392 from orklah/control-action-test
2021-09-04 21:38:08 +03:00
orklah
e2b594820e
fix test
2021-09-04 20:27:25 +02:00
orklah
0825f220fe
allow ternary to override previous type when reassigning
2021-09-04 20:22:06 +02:00
Tyson Andre
58e7ae1809
Also support non-literal types in strict in_array() check
...
Modified approach to #6396 by orklah
Fixes #6333
Co-Authored-By: orklah <ronan_morin@hotmail.com>
2021-09-04 12:34:49 -04:00
orklah
ea50e5db4d
add test
2021-09-04 14:19:49 +02:00
orklah
861d2187dd
fix tests
2021-09-04 14:17:55 +02:00
orklah
de27693015
change test to show while loop with truthy value is still inferred
2021-09-04 14:10:12 +02:00
orklah
e99c1951ae
Make Psalm understand infinite while loop in control actions
2021-09-02 22:28:01 +02:00
Bruce Weirdan
a655ca81c1
Merge pull request #6391 from ro0NL/6388
2021-09-02 23:23:32 +03:00
Roland Franssen :)
9a6ae5a27a
test
2021-09-02 20:53:23 +02:00
orklah
58e578e6a7
fix Generator giving templates to Iterator
2021-09-02 20:12:32 +02:00
Bruce Weirdan
eb973ab2e1
Merge pull request #6335 from boesing/bugfix/recursive-class-aliases
2021-08-31 23:51:19 +03:00
Bruce Weirdan
b713140cc1
Merge pull request #6326 from piporoid/issue/2164
...
Prevent @property annotations on class properties
2021-08-31 23:46:56 +03:00
Bruce Weirdan
cbcc38aab8
Merge pull request #6339 from niconoe-/allow-object-on-array_walk
2021-08-31 23:45:10 +03:00
Bruce Weirdan
103b2b7244
Warn about array_walk_recursive over objects
2021-08-31 23:18:20 +03:00
Bruce Weirdan
624246b996
Merge pull request #6376 from orklah/use-variable-in-backtick
2021-08-29 04:39:13 +03:00
orklah
10c20dc8f3
mark variable used in backticks as used
2021-08-29 00:26:52 +02:00
Bruce Weirdan
b370ce92aa
Report RawObjectIteration
when array_walk
is used on objects
2021-08-20 01:43:49 +03:00
Bruce Weirdan
9222b24ea1
Merge pull request #6321 from orklah/analyze-dynamic-classConstFetch
2021-08-20 01:06:56 +03:00
orklah
dbf3512b70
introduce $definite_class flag and use it to avoid using final keyword for simple inference
2021-08-19 23:19:59 +02:00
Bruce Weirdan
3cb28e6399
Merge pull request #6344 from orklah/vendor-suppressions
...
don't report UnusedSuppressions in non project dirs
2021-08-19 20:53:21 +03:00
orklah
6cf7660ad8
fix CS
2021-08-19 19:34:30 +02:00
orklah
7fd0d5f28e
create real path for Psalm to stop ignoring suppressions
2021-08-19 19:31:58 +02:00
Maximilian Bösing
d4559f5ba3
qa: add failing test regarding recursive alias resolving
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-18 16:18:44 +02:00
Benjamin Morel
621c4dd8d1
Enforce class-string in is_subclass_of()
2021-08-17 23:14:11 +02:00
Bruce Weirdan
e5b797c764
Merge pull request #6327 from boesing/bugfix/class-alias
2021-08-17 23:35:25 +03:00
Maximilian Bösing
990723ce64
qa: rework unit test to use already available project_initializer
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-17 21:46:00 +02:00
Barney Laurance
88276d7f1e
Fix error message for call to internal method from root namespace
2021-08-17 18:54:57 +01:00
orklah
1bf7447685
small refactor, add LiteralClassString, remove alter code blocks
2021-08-17 18:51:59 +02:00
Maximilian Bösing
7ab5d29e08
qa: add unit test to verify aliased interface is properly detected
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-17 18:40:18 +02:00
piporoid
1df5f3012a
Prevent @property annotations on class properties
2021-08-17 23:40:26 +09:00
orklah
9264ea5cbb
Allow type inference on dynamic ClassConstFetch
2021-08-16 21:20:20 +02:00
Bruce Weirdan
a9ead63ae1
Revert "Assertions for Integer Range"
2021-08-14 18:06:41 +03:00
Bruce Weirdan
7ff2a660dd
Merge pull request #6233 from supersmile2009/fix-in-array-assert
2021-08-13 01:39:31 +03:00
Bruce Weirdan
a4b6fbcbdf
Simplified InArrayTest a bit
2021-08-13 01:27:28 +03:00
Bruce Weirdan
6294e06955
Improve constant array inference
...
This fixes int offset inference and adds handling for array unpacks in
constant arrays. Mostly it's copy/pasted from `ArrayAnalyzer` with
further adjustments.
Fixes vimeo/psalm#6263
Fixes vimeo/psalm#6289
2021-08-12 20:39:21 +03:00
Bruce Weirdan
868a1672c1
Merge pull request #6253 from orklah/unusedSuppress
2021-08-09 23:34:14 +03:00
Bruce Weirdan
94f034b7ad
Merge pull request #6272 from orklah/sealed-array-combination
2021-08-09 23:33:00 +03:00
orklah
9ca771286f
fix test
2021-08-09 21:18:19 +02:00
orklah
e688781383
seal the result of two sealed KeyedArrays
2021-08-09 20:43:17 +02:00
Bruce Weirdan
8c531fec4b
Tweaks
...
Changed the format of the historical callmap to be plain signature list,
as it isn't really a delta file and renamed the file to not be confused
with deltas.
Added a test to ensure entries in main callmap have history.
2021-08-08 18:43:42 +03:00
bjscharp
07d48d779a
Merge branch 'master' into callmap-delta-inconsistencies
2021-08-08 10:41:42 +02:00
bjscharp
96056d329f
Add simple test to verify outout of getCallMap method
...
Convert deltafile format to new style proposed by weirdan
Modify CallMapTest to use new format
Modify InternalCallMapHandler to use new format
Move assertions to base testcase
2021-08-08 10:39:54 +02:00
orklah
570aa1bb8e
fix test?
2021-08-07 10:18:06 +02:00
orklah
b194291bb3
try to fix offsets
2021-08-07 00:08:19 +02:00
Maximilian Bösing
9d59fbe6bb
feature: introduce literal float methods to Union
type
...
- Added `Psalm\Type\Union#isSingleFloatLiteral`
- Added `Psalm\Type\Union#getSingleFloatLiteral`
- Added `Psalm\Type\Union#hasLiteralFloat`
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-08-06 21:05:26 +02:00
bjscharp
d1d9e3763c
Removed unused test dependencies
2021-08-06 07:45:17 +02:00
bjscharp
a01b92de8a
Split duplicate add/remove check off into seperate tests to deal with several extra error paths
2021-08-06 07:33:37 +02:00
bjscharp
f39c462138
Add missing bcadd function to 8.0 delta file.
...
To prevent similar errors, add baseline file with signatures pre-7.1, to help verify delta files are correct.
Modify test to use this to detect missing 'old' entries
2021-08-05 23:21:41 +02:00
orklah
10049450f8
fix tests for the last time............................................... maybe?
2021-08-05 21:48:37 +02:00
orklah
ba2f623754
fix unused variables
2021-08-05 21:32:32 +02:00
orklah
50fd9065de
fix tests
2021-08-05 21:15:04 +02:00
orklah
3fe678b914
ignore UnnecessaryVarAnnotation
2021-08-05 21:05:44 +02:00
bjscharp
ac5ea252ff
Added test to detect problems and inconsistencies in CallMap files
...
- Fixed inconsistencies in callmap delta files (mainly 8.0)
- Added several missing changes in the bc_* functions
- Added several missing changes in the mb_* functions
- Added several missing changes in the xml_parser_* functions
- Fixed several issues with sodium_ functions
- Removed all but one of the date_* functions. All were marked as having lost the option to return false, despite this only being true for date_format
2021-08-05 19:07:31 +02:00
Alexandr Zolotukhin
3d61f6ca65
Add more tests
2021-08-05 16:42:52 +03:00
Alexandr Zolotukhin
c51f0f4fbf
Add tests with needle/haystack value of union types which intersect partially
2021-08-03 21:09:59 +03:00
Alexandr Zolotukhin
586e8a157e
Fix tests with loose types. Fix return type in the reconciler.
2021-08-03 19:34:35 +03:00
Alexandr Zolotukhin
e278b4fd93
Add failing test cases
2021-08-03 17:29:28 +03:00
Bruce Weirdan
caaff6e3b4
Merge pull request #6210 from orklah/int-range3
2021-08-01 16:37:15 +03:00
Bruce Weirdan
3a1714e732
Merge pull request #6215 from weirdan/fix-6211
...
Use fully-qualified name for virtual class strings
2021-08-01 16:36:25 +03:00
Matthew Brown
a205a23ccb
Fix #6212 - remove untested code, add test for reasonable behaviour
2021-07-31 19:50:56 -04:00
Bruce Weirdan
e4ead74879
Use fully-qualified name for virtual class strings
...
Fixes vimeo/psalm#6211
2021-08-01 02:22:16 +03:00
orklah
d4bf17f323
fix test
2021-07-31 15:47:12 +02:00
orklah
128a811174
add internal assertions for superior and inferior
2021-07-31 15:47:12 +02:00
orklah
ba9f7d09ac
fix CS
2021-07-30 22:22:38 +02:00
orklah
1e3e6a85e4
introduce basic integer range
2021-07-30 21:44:51 +02:00
Bruce Weirdan
9414b11c2f
Merge pull request #6204 from orklah/class-string-attributes
2021-07-29 22:35:42 +03:00
orklah
6fc55d7bff
add test
2021-07-29 20:41:08 +02:00
Jack Robertson
f0193f20fa
Consider print, and conditionally exit / die impure
2021-07-27 13:26:54 +01:00
Bruce Weirdan
358f83d66b
Merge pull request #6181 from Jack97/date-time-interface-type-reconciliation
2021-07-26 16:28:10 +03:00
Jack Robertson
c8574a6347
Simplify FQNs
2021-07-26 13:56:15 +01:00
Jack Robertson
8bec5fc743
Add expected behaviour tests
2021-07-26 08:50:12 +01:00
Bruce Weirdan
82dfbbc12e
Merge pull request #6167 from orklah/non-div-with-numeric-and-int
2021-07-25 13:56:48 +03:00
orklah
55245cf558
Arithmetic operation between numeric and int or float gives int|float
2021-07-25 12:29:11 +02:00
Bruce Weirdan
783dc610df
Merge pull request #6172 from Jack97/malformed-parentheses
2021-07-25 13:08:23 +03:00
Jack Robertson
3a18ec0d51
Add expected behaviour tests
2021-07-25 10:42:40 +01:00
Bruce Weirdan
aa23aa5387
Merge pull request #6166 from orklah/StringIncrementOnNumericString
2021-07-24 23:27:17 +03:00
orklah
9189fa1745
add tests and code for handling LiteralString that are Numeric
2021-07-24 21:21:50 +02:00
Jack Robertson
3eea15e840
Add failing test
2021-07-24 16:02:13 +01:00
orklah
c225281d22
add test
2021-07-23 21:22:00 +02:00
Bruce Weirdan
198fdf876e
Merge pull request #6142 from orklah/trigger_error
2021-07-23 09:22:55 +03:00
Matthew Brown
43cff22b25
Add support for native PHP readonly
2021-07-21 13:29:07 -04:00
Bruce Weirdan
052c7478cc
Unary plus and minus mark operand as used
...
Fixes vimeo/psalm#6145
2021-07-21 01:15:51 +03:00
orklah
cefa9b919e
change wording
2021-07-20 23:55:49 +02:00
orklah
58dd3f6f94
change wording
2021-07-20 23:53:04 +02:00
orklah
acfdb82856
Basic implementation
2021-07-20 23:34:38 +02:00
Bruce Weirdan
0317f1dbec
Merge pull request #6130 from weirdan/forbid-dynamic-access-to-static-props
2021-07-19 16:11:29 +03:00
Bruce Weirdan
d992331125
Expand magic properties
...
Fixes vimeo/psalm#4344
Fixes vimeo/psalm#5663
Fixes vimeo/psalm#5639
Fixes vimeo/psalm#5955
Fixes vimeo/psalm#3272
2021-07-18 23:43:33 +03:00
Bruce Weirdan
a180dc6099
Flag staticness mismatch
...
This handles two new cases:
1. Accessing static property with `->` (produces notices and warnings: https://3v4l.org/TiGan )
2. Accessing non-static property with `::` (causes fatal error: https://3v4l.org/IdYSh )
Fixes vimeo/psalm#6117
2021-07-18 02:51:33 +03:00
Bruce Weirdan
53ae7764e9
Merge pull request #6129 from orklah/unused-global
2021-07-18 02:33:50 +03:00
orklah
d1a4975e3d
remove test no longer applicable
2021-07-17 23:20:13 +02:00
orklah
79d0647d19
fix issue when setting a value to a global is considered unused
2021-07-17 22:00:54 +02:00
Grégoire Paris
26f8e5b333
Add negated identity with false case
...
This is the opposite of === true and works the same.
2021-07-17 03:20:23 +03:00
Bruce Weirdan
c9f52c449b
Merge pull request #6127 from weirdan/deprecated-properties
...
Check deprecated properties on $this->prop reads
2021-07-17 01:43:08 +03:00
Matthew Brown
88c4e2468e
Support interface-string<Foo> as temporary alias of class-string<Foo> ( #6106 )
2021-07-16 18:38:39 -04:00
Bruce Weirdan
af5cdb4dd4
Check deprecated properties on $this->prop reads
...
Fixes vimeo/psalm#6118
2021-07-17 01:20:35 +03:00
Bruce Weirdan
4a516005a3
Allow 0 for all bitmask types
...
Fixes vimeo/psalm#6119
2021-07-16 23:20:33 +03:00
orklah
0bd8b03f7a
Fix usage of gettype in a switch with closed resource
2021-07-14 12:49:46 +02:00
Ruslan Karimov
8a08489dcc
Merge branch 'master' into fix-5957
...
# Conflicts:
# tests/UnusedVariableTest.php
2021-07-13 10:15:35 +05:00
Ruslan Karimov
cfaca07c6d
added dataflow to stringy bitwise op, bitwise not op (fix 5957)
2021-07-13 10:05:21 +05:00
Bruce Weirdan
6729f4db01
Merge pull request #6083 from orklah/falsable-argument
2021-07-13 02:13:39 +03:00
orklah
688367de38
Always emit InvalidArgument when the parameter is always false and not accepted
2021-07-13 00:06:36 +02:00
Matthew Brown
f2bc6913db
Fix #6061 — delay analysis of array value except when unpacking ( #6081 )
2021-07-12 17:05:33 -04:00
Matthew Brown
acc7ee261c
Fix #6066 - introduce more robust system for capturing template constraints ( #6072 )
...
* Fix #6066 - add better system for capturing template constraints
* Fix comment
2021-07-11 12:03:21 -04:00
Bruce Weirdan
83bf9b8ed9
Merge pull request #5608 from paxal/patch/preg_replace_callback
...
Allow to use string key for preg_replace_callback callable argument
2021-07-11 04:55:03 +03:00
Fran Moreno
decb397b8e
Add ReflectionProperty::getType() and hasType()
2021-07-10 13:05:57 +02:00
ElisDN
61b78e117f
Fix negative numbers
2021-07-08 19:17:31 +03:00
Bruce Weirdan
c27b51b91f
Merge pull request #6040 from j4nr6n/update_datetime_format
2021-07-04 08:54:58 +03:00
Justin
780c0307e7
Test should fail on 8.0, but not on 7.4
2021-07-03 05:01:10 -04:00
Justin
f7a2aaef6e
Update DateTime and DateTimeImmutable signatures
...
`DateTime::format` and `DateTimeImmutable::format` will always
return a string starting in PHP 8.0.
2021-07-03 04:29:54 -04:00
orklah
f8644fb508
Improve resolution of __METHOD__ and __FUNCTION__
2021-07-03 10:01:53 +02:00
Bruce Weirdan
6db79be207
Keep generic part of shape on array_map return type
...
Fixes vimeo/psalm#6038
2021-07-03 06:33:37 +03:00
Bruce Weirdan
76be96ce53
Drop FakeFileProvider from tests folder
...
And use Psalm\Internal\Provider\FakeFileProvider
2021-07-02 03:57:57 +03:00
Bruce Weirdan
4b31058234
Separate memory limit formatting from retrieval
...
This addresses https://github.com/vimeo/psalm/pull/6030#issuecomment-872611832
Previously PHP would allow to set memory limit to be below current
memory usage, and the test changed in this PR abused that. As we
actually don't need to test `ini_get()` value decoding was split into
its own method, and we're testing that decoding instead.
2021-07-02 02:59:43 +03:00
Bruce Weirdan
248a07fd35
Ship FakeFileProvider even with dist dev releases
...
Refs psalm/psalm.dev#60
2021-07-02 00:26:20 +03:00
Matt Brown
667dcc2e49
No false-positives for tainting through array keys
2021-06-29 17:05:39 -04:00
Ruslan Karimov
79b61c3b61
Added support for self & static keywords in array_reduce callables
2021-06-29 22:27:50 +05:00
Barney Laurance
eff9acbd9a
Remove unecassary concatentation of string literals
2021-06-27 00:08:03 +01:00
Barney Laurance
0722401aaf
Trim code snippets on both sides when comparing current issues against baseline
...
Should fix issue #5979
We could also trim code issues when writing to baseline, but I think
that's a minor BC break, so probably shouldn't happen until Psalm 9.
2021-06-26 22:37:29 +01:00
Bruce Weirdan
6d4262edbd
Mark return values in as throw
argument as used ( #5989 )
...
Fixes vimeo/psalm#5975
2021-06-25 09:11:27 -04:00
Oliver Hader
38d3b15f8d
[BUGFIX] Specialize TaintSink in IncludeAnalyzer ( #5986 )
...
* [TEST] Assert more details in TaintTest
* [TEST] Add test for multiple tainted includes
* [BUGFIX] Specialize TaintSink in IncludeAnalyzer
Fixes : #5986
2021-06-23 08:27:03 -04:00
Bruce Weirdan
f24f361a95
Add documentation and schema entry for inferPropertyTypesFromConstructor
...
Fixes vimeo/psalm#5974
2021-06-22 21:20:10 +03:00
Matt Brown
d8f4eb2d6d
Restrict type of implode to prevent Array-to-string conversion;
2021-06-21 19:55:27 -04:00
orklah
79478a60b1
Allow class constant as offset key ( #5943 )
...
* allow class-constant as an array offset when the type match
* remove object with __toString as a possible offset as it's not valid
2021-06-17 18:15:57 -04:00
orklah
872f1c232c
allow Psalter to fix RedundantCast ( #5948 )
...
* allow Psalter to fix RedundantCast
* fix test
2021-06-17 18:15:45 -04:00
Bruce Weirdan
e552925af6
Emit separate type of issue when foreach value is unused ( #5932 )
...
* Emit separate type of issue when foreach value is unused
Fixes vimeo/psalm#5929
* Fixed var name case sensitivity
2021-06-17 00:40:24 -04:00
orklah
cfa5492286
Remove redundant namespaced phpdoc ( #5936 )
...
* remove array-key from generated phpdoc
* remove mixed value too
* fix tests
* fix mixed suppression
* revert back to array to prevent breaking refactoring
2021-06-16 11:16:20 -04:00
Matt Brown
9dde8eed9d
Add support for literal-int annotations as well
2021-06-14 23:24:09 -04:00
Matt Brown
c3fdfc5795
Support literal ints in encapsed strings
2021-06-14 16:30:45 -04:00
Matt Brown
3140654a44
Experiment with implode literal tracking
2021-06-14 16:03:37 -04:00
Matt Brown
5ae8b2a23f
Add preliminary support for literal-string
2021-06-14 15:30:25 -04:00
Bruce Weirdan
24d45a50de
Merge pull request #5924 from BafS/fix-type-error-patch-1
2021-06-13 21:19:43 +03:00
Bruce Weirdan
a97bc06e6b
Test for boundary conditions
2021-06-13 13:40:54 +03:00
BafS
d395e00f18
Add assertion
2021-06-13 12:07:34 +02:00
Matt Brown
b678461f5c
Improve detection of fluent methods
2021-06-12 17:09:42 -04:00
Matt Brown
23b7ff86b7
Mark interface methods as unused even when inherited
2021-06-12 16:13:29 -04:00
BafS
dde0f1fb06
Fix Uncaught TypeError with some shifts
2021-06-11 20:03:23 +02:00
Matt Brown
06b89aa00a
Fix end-to-end tests
2021-06-10 18:07:41 -04:00
Matt Brown
4a9f35f0a8
Update ReportOutputTest.php
2021-06-10 17:59:41 -04:00
Matt Brown
f2f5f1eaa2
Revert fix and tests
2021-06-10 17:44:34 -04:00
Matt Brown
47bf5ed567
Fix #5918 - add new issue to detect unquoted strings
2021-06-10 17:43:04 -04:00
Matt Brown
e661c5fb55
Fix erroneous use when comparing methods
2021-06-10 14:39:01 -04:00
Matthew Brown
6d09418a23
Detect unused return values ( #5917 )
...
* Detect unused return values
* Allow static-returning instance methods (presumed to be fluent)
* Make $is_used the default for Codebase::methodExists
2021-06-10 14:18:15 -04:00
Matt Brown
5c1d8489da
Improve test cases
2021-06-10 12:57:13 -04:00
Matt Brown
f5bc841295
Prevent nested literal coercion
2021-06-09 16:01:45 -04:00
Matthew Brown
d12cf88e83
Add back supported for templated index assignment
2021-06-09 12:55:37 -04:00
Matthew Brown
0a7d254689
Fix #5911 - improve non-terminating switch type inference
2021-06-09 09:06:23 -04:00
Bruce Weirdan
6abce3525a
Enforce use
sort ( #5900 )
2021-06-07 22:55:21 -04:00
Bruce Weirdan
5bfb841072
Prevent crashes when class constant references missing class ( #5902 )
...
Fixes vimeo/psalm#5861
2021-06-07 13:20:07 -04:00
Bruce Weirdan
689315b05f
Fix sscanf()
signature ( #5901 )
...
Fixes vimeo/psalm#5870
2021-06-07 13:19:17 -04:00
Bruce Weirdan
86050df4d0
Formally deprecate allowCoercionFromStringToClassConst
( #5897 )
...
* Mark allowCoercionFromStringToClassConst as deprecated in xml schema
* Emit deprecation warning for `allowCoercionFromStringToClassConst`
2021-06-07 10:46:26 -04:00
Andrey Klimenko
3ad3375777
Fix generic destruction in assertion ( #5888 )
2021-06-04 15:33:37 -04:00