orklah
33aab6cc40
allow declaring functions and classLikes after a never-returning call
2021-11-05 18:09:40 +01:00
orklah
6e5f3db06c
makes $_SESSION possibly undefined
2021-11-04 22:45:46 +01:00
orklah
fffef80ec1
makes $_SESSION possibly undefined
2021-11-04 22:38:31 +01:00
orklah
915278e253
Merge pull request #6823 from orklah/variable_class
...
allow assertion to work on $var::class
2021-11-04 20:54:59 +01:00
orklah
834d831915
allow assertion to work on $var::class
2021-11-04 20:44:42 +01:00
orklah
5282e4728b
allow assertion to work on $var::class
2021-11-04 20:33:30 +01:00
orklah
cd74f665dc
Merge pull request #6813 from orklah/intTaint
...
don't register taints for numeric variables
2021-11-04 15:30:52 +01:00
orklah
e6dccaa07c
Merge pull request #6809 from orklah/binaryOpTaint
...
don't taint the result of most binary operations
2021-11-04 13:18:07 +01:00
orklah
bf993452a8
Merge pull request #6810 from orklah/castArrayTaints
...
Array cast pass taints
2021-11-04 13:17:20 +01:00
orklah
6e49c61fd0
fix comment
2021-11-04 00:31:22 +01:00
orklah
9fb74a4f28
exclude Plus on arrays too
2021-11-04 00:30:09 +01:00
orklah
3b01713257
don't taint the result of most binary operations
2021-11-04 00:30:09 +01:00
orklah
24137bdbad
Array cast pass taints
2021-11-04 00:29:36 +01:00
orklah
eca530d792
don't register taints for numeric variables
2021-11-04 00:29:07 +01:00
orklah
ff83c498a7
fix CS
2021-11-04 00:28:40 +01:00
orklah
fbe305e5bb
detect taint in backticks
2021-11-04 00:28:40 +01:00
sasezaki
e3c6464a91
accept ::class constant strings for literal argument
2021-11-03 13:44:14 +09:00
Bruce Weirdan
0cdb0dc04a
Merge pull request #6768 from zoonru/psalm-self-out-templates
2021-11-02 21:41:16 +02:00
orklah
96ae8e7600
Merge pull request #6793 from orklah/unevaluatedCode
...
emit UnevaluatedCode after exit or never returning functionlike
2021-11-01 23:41:36 +01:00
orklah
68a4f9e930
emit UnevaluatedCode after exit or never returning functionlike
2021-11-01 22:13:29 +01:00
Bruce Weirdan
81ca05f3ab
Merge pull request #6790 from orklah/fix_yield
2021-11-01 20:25:54 +02:00
orklah
af129f8851
detect yield in new
2021-11-01 19:04:37 +01:00
Bruce Weirdan
ac098a52da
Allow to forbid exit()
and die()
2021-10-31 03:02:16 +03:00
Alexey Borzov
91ec5712ad
Add a means to switch return types based on PHP_VERSION_ID
...
As suggested in vimeo/psalm#6755
2021-10-29 22:19:38 +03:00
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
597487c4c9
Assert that $lhs_var_id
is defined
2021-10-28 10:50:43 +02:00
5fae548e62
Add template support to @psalm-self-out
2021-10-28 10:44:37 +02:00
9c59550e15
Fully fix recursive template parameter resolution
2021-10-27 10:58:33 +02:00
orklah
70175d8fd2
Merge pull request #6744 from orklah/dont_assert_mixed
...
Don't assert mixed type
2021-10-26 19:23:13 +02:00
orklah
e8e2624c5f
Don't assert mixed type
2021-10-26 19:12:13 +02:00
c0e6f93deb
Fix template parameter collection for child classes with fewer parameters
2021-10-26 13:06:45 +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
0161dedcdb
fix
2021-10-24 19:53:22 +02:00
orklah
2c5cec4a05
fix
2021-10-24 19:48:28 +02:00
orklah
af918a95a2
don't emit issues when doing arithmetics on int templates
2021-10-24 19:30:39 +02:00
orklah
d99f300043
fix concat
2021-10-24 19:15:18 +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
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
2cc5c555c2
fix literal string access on a non empty array
2021-10-22 18:17:08 +02:00
orklah
1c0b802abb
fix regression
2021-10-21 21:10:12 +02:00
orklah
1f02795e42
fix missing implicit __toString
2021-10-20 19:54:32 +02:00
Aleksandr Zhuravlev
b664850cdc
Added support of asserting properties of objects out of scope
2021-10-17 21:29:25 +13:00
orklah
7a47ebfcd6
fix
2021-10-16 00:26:00 +02:00
orklah
56c73142d6
don't emit InvalidReturnType when return type was inferred to never
2021-10-16 00:15:17 +02:00
Bruce Weirdan
c556920352
Revert "Merge remote-tracking branch 'upstream/master' into test5"
...
This reverts commit 043a0262f7
, reversing
changes made to cc4c29837d
.
2021-10-16 00:20:38 +03:00
orklah
043a0262f7
Merge remote-tracking branch 'upstream/master' into test5
2021-10-15 22:37:07 +02:00
orklah
99d8f92e4f
what would that do?
2021-10-15 22:33:04 +02:00
orklah
64df00baba
Merge pull request #6660 from orklah/cleanup4
...
Code trimming
2021-10-14 00:12:21 +02:00
orklah
ae193ca4da
replace elvis operator by coalesce operator when applicable
2021-10-13 20:16:06 +02:00
orklah
dbc6f503b1
use of strtolower only once
2021-10-13 20:16:06 +02:00
orklah
e17290a9bc
Merge pull request #6613 from orklah/string-unpacking
...
String unpacking
2021-10-13 15:18:11 +02:00
orklah
91c3d788f6
Merge pull request #6656 from orklah/setAttribute
...
use Attribute feature of PHP-Parser to avoid dealing with dynamic properties
2021-10-13 14:46:22 +02:00
orklah
bee5b69f7f
use Attribute feature of PHP-Parser to avoid dealing with dynamic properties
2021-10-13 13:27:56 +02:00
orklah
9bb731182a
reintroduce errors for older versions
2021-10-13 11:22:40 +02:00
orklah
6e7aafe9b8
better behaviour in SimpleTypeInferer
2021-10-13 11:22:40 +02:00
orklah
66bbcc212c
remove unneeded argument
2021-10-13 11:22:40 +02:00
orklah
690c24f824
array unpacking with strings
2021-10-13 11:22:40 +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
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
911076939c
Merge pull request #6628 from orklah/phpparser2
...
Php-Parser 4.13
2021-10-11 20:42:32 +02:00
orklah
21456b85b1
add Never for throws. Add Never only if at top level
2021-10-11 19:35:18 +02:00
orklah
f9377c53fc
infer never on closures(and more?)
2021-10-11 18:52:26 +02:00
orklah
c4ebc34695
suppress or use the return type
2021-10-11 17:27:52 +02:00
orklah
9e7d3a4cd6
sets the inside_conditional flag after creating another context from it
2021-10-11 16:38:39 +02:00
orklah
2e64854a6c
don't allow getAssertionString to return a part of the Union
2021-10-11 16:07:57 +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
cc82e6cf41
suppress warning
2021-10-10 13:58:09 +02:00
orklah
1b24b0309c
reduce complexity
2021-10-10 13:52:14 +02:00
orklah
69d412bfcb
fix error message when input is possibly undefined
2021-10-10 13:42:28 +02:00
orklah
fb8b07613d
Allow sending possibly_undefined inputs to optional params
2021-10-10 12:44:04 +02:00
orklah
f159ca76de
Merge pull request #6624 from orklah/float-always-float
...
invert the meaning of the errors
2021-10-10 10:42:37 +02:00
orklah
d5eb471688
every condition must be true
2021-10-10 10:27:22 +02:00
orklah
85668ed255
Add support for infinite for loops
2021-10-10 10:22:41 +02:00
orklah
39b85f574b
revert back wrong change
2021-10-10 10:06:37 +02:00
orklah
70bfce769c
revert back wrong change
2021-10-10 10:00:44 +02:00
orklah
df34daee52
more consistency
2021-10-10 00:51:47 +02:00
orklah
7c99878f58
tweaking with loops
2021-10-10 00:21:15 +02:00
orklah
870ee4ff93
->args to ->getArgs
2021-10-09 23:37:04 +02:00
orklah
bac0217890
add "!" to invert the meaning of the errors
2021-10-09 21:15:27 +02:00
orklah
f62c76a334
Merge pull request #6622 from orklah/return_0
...
fix @return 0
2021-10-09 18:25:46 +02:00
orklah
a1df08f718
fix an old test
2021-10-09 18:18:15 +02:00
orklah
950b21d10a
Merge pull request #6621 from orklah/incompatible-types-found-for-T
...
add a little details to the Incompatible types found for T error
2021-10-09 15:10:27 +02:00
orklah
b1f20dffa0
fix brackets
2021-10-09 15:02:49 +02:00
orklah
e9f3e8795f
add a little details to the Incompatible types found for T error
2021-10-09 15:01:13 +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
87a5df6043
only put offset to 0 when there's only one argument
2021-10-07 20:38:10 +02:00
orklah
3fc716ec3b
fix CS
2021-10-07 19:39:45 +02:00
orklah
a7c4f0052b
foreach on list gives a positive|0 offset
2021-10-07 19:32:25 +02:00
orklah
3a2eddf2d7
pass the method_id to be able to set the new offset type to 0 for array_unshift
2021-10-07 09:46:49 +02:00
orklah
6627055f3b
make TypeCombiner override empty-array
2021-10-07 09:46:17 +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
8b07e69645
Merge pull request #6514 from zoonru/if-this-is
...
Add if-this-is
2021-10-04 09:49:26 +02:00
orklah
53c0a4e63a
cleanup
2021-10-04 00:03:06 +02:00
orklah
d3bc179abd
cover the case where the call to the function is namespaced but the function doesn't exists in the namespace
2021-10-02 10:02:24 +02:00
orklah
e0b2cb5028
consistency
2021-10-02 10:02:24 +02:00
orklah
0b8681c8bf
check namespace before adding assertions
2021-10-02 10:02:24 +02:00
orklah
fa9990ae55
fix wrong method name
2021-10-02 10:02:24 +02:00
orklah
e02eec932e
refactor Assertions for is_ functions
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
f8628ef68c
fix errors
2021-10-02 10:01:05 +02:00
orklah
b9e65f066a
refactor paradoxical conditions
2021-10-02 10:01:04 +02:00
orklah
85f16e9710
handle the case where analysis failed
2021-10-02 10:01:04 +02:00
orklah
597e9a99d7
Makes BooleanNot smarter
2021-10-02 10:01:04 +02:00
orklah
7f0d25374f
add comment
2021-10-02 09:52:19 +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
d232cc0d02
Merge pull request #6553 from orklah/exec-leak
2021-09-30 21:32:55 +03:00
orklah
02ef33c4ac
Merge pull request #6554 from simPod/use-a
...
Use correct English articles
2021-09-30 09:37:56 +02:00
Simon Podlipsky
4f5e30fd30
Use correct English articles
2021-09-30 09:19:08 +02:00
orklah
3133cd159a
fix NPE
2021-09-29 22:30:38 +02:00
orklah
2a2e7c5e32
prevent object leaking that lead to changes in callmap
2021-09-29 22:27:34 +02:00
orklah
ab6efe49b2
fix CS
2021-09-26 23:41:26 +02:00
orklah
38dac34846
unnecessary null initialization
2021-09-26 23:34:32 +02:00
orklah
5d6d3df4cf
unnecessary identical child method
2021-09-26 23:34:32 +02:00
orklah
9170b0af8f
replace list()
2021-09-26 23:34:32 +02:00
orklah
2315316b17
return types
2021-09-26 23:34:32 +02:00
orklah
72eab30a3a
coalesce operator
2021-09-26 23:34:31 +02:00
orklah
46801c4b98
clearer string operations
2021-09-26 23:34:31 +02:00
orklah
18b0c63de2
shorter operations
2021-09-26 22:44:33 +02:00
orklah
53e4719c19
boolean cast
2021-09-26 22:39:01 +02:00
orklah
c11b32d414
redundant variable check
2021-09-26 22:37:17 +02:00
orklah
a85cba3973
dead code
2021-09-26 22:37:17 +02:00
orklah
ae1afd90c6
coalesce operator
2021-09-26 22:37:17 +02:00
orklah
a5aa824258
unnecessary local variable
2021-09-26 22:37:17 +02:00
orklah
be8406294c
unnecessary return
2021-09-26 22:37:16 +02:00
orklah
5b684309fd
unnecessary ternary
2021-09-26 22:37:16 +02:00
orklah
153de33704
weird param always false
2021-09-26 22:37:16 +02:00
orklah
4481428f97
unused param
2021-09-26 22:36:17 +02:00
orklah
c0f6474bc6
merging exceptions
2021-09-26 22:36:17 +02:00
orklah
966211e052
unused variable
2021-09-26 22:36:16 +02:00
orklah
afbda6d0f6
Merge pull request #6535 from orklah/SA
...
Improvements
2021-09-25 20:16:38 +02:00
orklah
41ea541084
unset instead of reassign
2021-09-25 18:11:54 +02:00
orklah
7891e6136a
unparsable types
2021-09-25 17:19:50 +02:00
orklah
cc77abaa40
unparsable types
2021-09-25 17:19:45 +02:00
orklah
748d58a1d6
unparsable types
2021-09-25 17:14:57 +02:00
orklah
89f5c12be2
unparsable types
2021-09-25 17:14:10 +02:00
orklah
a9b1248e9f
unnecessary phpdoc is necessary
2021-09-25 17:13:58 +02:00
orklah
671a175deb
unnecessary phpdoc
2021-09-25 17:08:51 +02:00
orklah
f0b0540563
unparsable types
2021-09-25 17:08:38 +02:00
orklah
3e6bf6f35f
remove unused nullable on param types
2021-09-25 16:05:47 +02:00
orklah
a92fee8ae3
better combining
2021-09-25 11:21:06 +02:00
orklah
97e91e6bf0
code trimming
2021-09-25 02:34:21 +02:00
orklah
e6ba6092a6
turn inside_loop to true for do...while
2021-09-23 21:24:17 +02:00
orklah
d3d11471b7
allow arithmetics on variables as long as we're out of loops
2021-09-23 21:24:16 +02:00
orklah
012b65de78
try to improve behaviour
2021-09-23 21:24:16 +02:00
orklah
2b56d52760
rename vars for better diff
2021-09-23 21:24:16 +02:00
orklah
efde3f9180
change order for better diff
2021-09-23 21:24:16 +02:00
orklah
5ec9e6543d
try with everything except Variables
2021-09-23 21:24:16 +02:00
orklah
c6949760f8
activate arithmetic operations on properties too
2021-09-23 21:24:16 +02:00
orklah
a70e7032e9
activate arithmetic operations on method calls too
2021-09-23 21:24:16 +02:00
orklah
c4b47d3786
activate arithmetic operations on func calls
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
ea80373006
AssertionFinder refactor
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
7bf9df4360
restore paradox checking
2021-09-23 21:24:16 +02:00
orklah
667eec2ac8
consider count === 0
2021-09-23 21:24:16 +02:00
741c9ee471
Fixes
2021-09-22 10:26:21 +02:00
orklah
9b60c86206
Merge pull request #6508 from thomasbley/master
...
fixed Uncaught Error: Call to undefined function shell_exec()
2021-09-21 20:39:15 +02:00
f8a959c079
Fix silly bug
2021-09-21 14:11:33 +02:00
7e0b489efe
Merge remote-tracking branch 'origin/master' into if-this-is
2021-09-21 12:12:15 +02:00
Thomas Bley
6f958fe919
Merge branch 'master' of github.com:thomasbley/psalm
2021-09-20 16:55:58 +02:00
Thomas Bley
e60d9e5ec5
return 1 if shell_exec is not available for getCpuCount()
2021-09-20 16:55:16 +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
Thomas
ecb368ff2b
Merge branch 'vimeo:master' into master
2021-09-20 12:19:43 +02:00
Thomas Bley
449ef0d994
fixed Uncaught Error: Call to undefined function shell_exec()
2021-09-20 12:18:49 +02:00
orklah
90e1662964
Merge pull request #6241 from orklah/range5
...
Range arithmetics and assertions
2021-09-20 07:15:43 +02:00
orklah
0f17a2590c
fix Mod
2021-09-19 19:30:03 +02:00
orklah
25f78b5d54
refine Mod with positives everywhere
2021-09-19 19:30:03 +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
e75e390449
refactor big methods away
2021-09-19 19:30:03 +02:00
orklah
6b5e6eeecc
fix wrong type
2021-09-19 19:30:02 +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
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
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
9994a91915
help Psalm understand the types
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
0227894176
fix code
2021-09-19 19:30:02 +02:00
orklah
d2f73d3adb
fix and test minus case
2021-09-19 19:30:01 +02:00
orklah
d919a53674
rename method too
2021-09-19 19:30:01 +02:00
orklah
9ab46ff3e0
rename class because it handles Div too now
2021-09-19 19:30:01 +02:00
orklah
2dd16f9e22
simplify code
2021-09-19 19:30:01 +02:00
orklah
def7d31566
fix positive-numeric assertion
2021-09-19 19:30:01 +02:00
orklah
c20c1b5002
better div and modulo inference
2021-09-19 19:30:01 +02:00
orklah
55b45853de
try not to remove null after a positive-numeric assertion
2021-09-19 19:30:00 +02:00
orklah
219e425894
handle nightmare isset assertions
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
61d1d1660d
handle the div case when even if min/max are integers, there may be float between them
2021-09-19 19:30:00 +02:00
orklah
4682c4be5e
remove unnecessary var
2021-09-19 19:29:59 +02:00
orklah
8325378e23
support inverted comparison and remove null after value comparison
2021-09-19 19:29:59 +02:00
orklah
ca4c18c30d
put assertions back
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
orklah
44bfa2c21c
flag alwaysTruthy conditions as redundant
2021-09-12 22:53:44 +02:00
S.M. Ataur Rahman
c13ed7cc28
type of "$http_response_header" is "list<string>" now
2021-09-09 01:36:07 +06: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
7df819e585
Unrelated: Use strict_equality instead of loose_equality for ===
checks
...
(`=` is strict equality, `~` is loose equality)
2021-09-06 21:44:19 -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
7b11024886
Flag invalid backing types for enums
...
Fixes vimeo/psalm#6428
2021-09-05 20:12:24 +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
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
f9b37cea5b
name error
2021-09-04 14:08:04 +02:00
orklah
c8cf503367
introduce isAlwaysFalsy and isAlwaysTruthy
2021-09-04 13:56:13 +02:00
orklah
e99c1951ae
Make Psalm understand infinite while loop in control actions
2021-09-02 22:28:01 +02:00
Roland Franssen :)
27faf9502e
😓
2021-09-02 20:39:03 +02:00
Roland Franssen :)
a4356089ef
fix
2021-09-02 20:37:21 +02:00
Roland Franssen :)
4bf4d8e451
Forbid empty()
2021-09-02 20:32:05 +02: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
27b6d5ad3b
fix psalm errors
2021-08-29 00:39:36 +02: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
65f34d0d9f
Merge pull request #6346 from orklah/id-cache
...
remove cache after unsetting a key from a TKeyedArray
2021-08-19 22:01:44 +03:00
orklah
6ba8876153
remove cache after unsetting a key from a TKeyedArray
2021-08-19 20:40:25 +02:00
orklah
2b37bdf253
get rid of the final check that was there only for static:: before
2021-08-17 23:40:03 +02:00
orklah
ee53c57952
add back alter blocks but remove renaming the $stmt->class part when it's a variable
2021-08-17 23:11:28 +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
orklah
7308c86bb2
fix build
2021-08-16 21:56:37 +02:00
orklah
9264ea5cbb
Allow type inference on dynamic ClassConstFetch
2021-08-16 21:20:20 +02:00
orklah
1e17069c24
Change > assertion back to @ and put back a perf threshold
2021-08-15 10:13:05 +02:00
Bruce Weirdan
a9ead63ae1
Revert "Assertions for Integer Range"
2021-08-14 18:06:41 +03:00
Matthew Brown
6cc5ba970a
Fix tests
2021-08-14 10:45:32 -04:00
Matthew Brown
a4479761a7
Fix #3660 - ensure mixed percentage for file never drops below 0
2021-08-14 10:35:31 -04:00
Bruce Weirdan
7ff2a660dd
Merge pull request #6233 from supersmile2009/fix-in-array-assert
2021-08-13 01:39:31 +03:00
Bruce Weirdan
568a9e0412
Prevented empty assertions
...
and simplified the code a bit.
2021-08-13 00:39:24 +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
8f85f580da
Extract item handling
2021-08-11 01:18:23 +03:00
Bruce Weirdan
f9a75983f9
Use ArrayCreationInfo for is_list flag
2021-08-11 00:47:45 +03:00
Bruce Weirdan
b6ade31dd0
Use ArrayCreationInfo for can_create_objectlike flag
2021-08-11 00:39:56 +03:00
Bruce Weirdan
ba4f1db2cd
Use ArrayCreationInfo for class strings
2021-08-11 00:29:14 +03:00
Bruce Weirdan
47d3d31c47
Use ArrayCreationInfo for property types
2021-08-11 00:19:18 +03:00
Bruce Weirdan
abe5ef774c
Use ArrayCreationInfo for key and value types
2021-08-11 00:05:00 +03:00
Bruce Weirdan
a64a30cdda
Combine value types at once
2021-08-10 21:30:57 +03:00
Bruce Weirdan
a41d5c5b4f
Combine offset types at once
2021-08-10 21:23:13 +03:00
Bruce Weirdan
cf28859faf
Extract array type inference
2021-08-10 20:48:45 +03:00
Bruce Weirdan
5dc748d372
Merge pull request #6273 from VincentLanglet/nonEmptyConstant
...
Constants are non empty strings
2021-08-09 23:36:41 +03:00
Bruce Weirdan
868a1672c1
Merge pull request #6253 from orklah/unusedSuppress
2021-08-09 23:34:14 +03:00
Vincent Langlet
b28316c27c
Declare some constant as non empty
2021-08-09 21:39:49 +02:00
orklah
5134747edd
CS
2021-08-09 20:46:15 +02:00
orklah
e688781383
seal the result of two sealed KeyedArrays
2021-08-09 20:43:17 +02:00
orklah
2253667bd5
fix CS, remove redundant vars
2021-08-07 00:22:47 +02:00
orklah
b194291bb3
try to fix offsets
2021-08-07 00:08:19 +02:00
Alexandr Zolotukhin
65a129e3c2
Fix type reconciliation for complex cases with union types
2021-08-06 00:13:26 +03:00
orklah
3fe678b914
ignore UnnecessaryVarAnnotation
2021-08-05 21:05:44 +02:00
orklah
c706497cbd
restrict types
2021-08-04 19:45:25 +02:00
orklah
0c75ac89d0
refactor arithmetics
2021-08-04 19:43:27 +02:00
Bruce Weirdan
2ecd1d8bd3
Merge pull request #6238 from orklah/unused-foreach-fixable
...
don't flag UnusedForeachValue as fixable
2021-08-03 19:37:07 +03:00
orklah
006088d578
don't flag UnusedForeachValue as fixable
2021-08-03 18:24:53 +02:00
Alexandr Zolotukhin
097e88a7cb
Improved in_array assertion extraction
...
Extract non-literal type assertion from in_array
Extract false, true and null assertion
Fix assertion against arrays with union-typed values
Fix assertion against non-sealed arrays
2021-08-03 17:29:32 +03:00
Bruce Weirdan
caaff6e3b4
Merge pull request #6210 from orklah/int-range3
2021-08-01 16:37:15 +03:00
Matthew Brown
00c062267d
Fix space
2021-07-31 21:15:26 -04:00
Matthew Brown
a205a23ccb
Fix #6212 - remove untested code, add test for reasonable behaviour
2021-07-31 19:50:56 -04:00
Bruce Weirdan
2562e37e60
Scan preloaded stubs earlier
...
This should prevent Psalm from sometimes marking user-defined classes as
built-in.
Fixes vimeo/psalm#5126
Fixes vimeo/psalm#5626
2021-08-01 01:36:37 +03:00
orklah
2a9ddab738
replace +/- by >/<
2021-07-31 22:06:36 +02:00
orklah
5f764b9d8f
replace > by @
2021-07-31 21:59:35 +02:00
orklah
059eb5e29d
break the > assertion thing to see what start to fall apart
2021-07-31 21:54:15 +02:00
orklah
a8efe58784
fix isset assertion
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
Bruce Weirdan
4cb9d8ceec
Merge pull request #6205 from orklah/typos
...
fix typos
2021-07-29 22:31:03 +03:00
orklah
d0fe1528b6
fix typos
2021-07-29 20:59:52 +02:00
Bruce Weirdan
7aa5564047
Merge pull request #6192 from orklah/array_replace_not_nullable
...
make array_replace and array_replace_recursive not nullable
2021-07-28 00:20:46 +03:00
orklah
d9df3211c5
make array_replace and array_replace_recursive not nullable
2021-07-27 23:02:41 +02:00
Jack Robertson
f0193f20fa
Consider print, and conditionally exit / die impure
2021-07-27 13:26:54 +01:00
Bruce Weirdan
ae0c8f57fd
Merge pull request #6187 from orklah/wrong-nullable-type
2021-07-27 00:52:20 +03:00
orklah
06af927f12
fix an error I made a few months ago
2021-07-26 23:09:27 +02:00
Bruce Weirdan
4d99fbcce0
Merge pull request #6185 from orklah/typo
...
fix wrong wording from #6083
2021-07-26 23:00:42 +03:00
orklah
2259113727
fix wrong wording
2021-07-26 21:09:12 +02: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
aa23aa5387
Merge pull request #6166 from orklah/StringIncrementOnNumericString
2021-07-24 23:27:17 +03:00
orklah
f63f1b5d2a
use is_numeric for checking if a Literal is numeric
2021-07-24 21:44:12 +02:00
orklah
9189fa1745
add tests and code for handling LiteralString that are Numeric
2021-07-24 21:21:50 +02:00
orklah
b48a42ffab
don't try to handle preinc/postinc
2021-07-24 21:18:11 +02:00
Bruce Weirdan
3caceb7131
Merge pull request #6169 from orklah/numeric-strictBinaryOperands
2021-07-24 15:45:42 +03:00
orklah
1a41ee4dd4
keep wording consistency
2021-07-24 11:18:50 +02:00
orklah
7146c646e3
Trigger InvalidOperand when processing two numeric types in strict operands mode
2021-07-24 11:04:09 +02:00
orklah
4b660aa941
handle every increment/decrement
2021-07-24 10:51:10 +02:00
orklah
c8ee73ce30
Allow increment on numeric-string
2021-07-23 21:10:29 +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
9ff0fceb71
CS changes
2021-07-20 23:41:11 +02:00