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
Paweł Tomulik
a7b9a241f3
attempt to fix #6937
2021-11-22 23:24:20 +01:00
orklah
eca56c0c1a
Merge pull request #6972 from orklah/unused-throws
...
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 22:00:55 +01:00
orklah
1c1e352e5f
prevent Psalm from considering throwing methods as unused just because they're immutable
2021-11-22 21:29:57 +01:00
orklah
0d47722195
fix counting array properties when some are Never
2021-11-22 21:13:25 +01:00
orklah
79fa7f5993
Merge pull request #6953 from orklah/callstatic-pure
...
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 23:02:07 +01:00
orklah
3e56e859a9
fix inheritance
2021-11-21 21:53:24 +01:00
orklah
41fd460db5
check __callStatic purity instead of the pseudoMethod purity
2021-11-21 13:51:19 +01:00
ralila
fe8f919495
Fix some CS issues
2021-11-15 04:00:38 +01:00
ralila
0d0a06e78f
Avoid empty variable names instead of filtering them later
2021-11-15 03:00:08 +01:00
ralila
4fd87f2d77
Allow a comma as separator
2021-11-15 02:59:16 +01:00
ralila
7326f3b125
Remove useless brackets
2021-11-14 23:55:32 +01:00
Bruce Weirdan
45e1a1c69a
Merge pull request #6850 from gharlan/hyperlink
2021-11-14 23:20:09 +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
Ricardo Boss
4a58739e00
Fix typos in message about Attribute usage
2021-11-12 23:11:59 +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
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
8d22676627
fix errors
2021-11-09 22:31:40 +01:00
orklah
21591b0f2a
fix errors
2021-11-09 21:14:55 +01:00
orklah
db05dfeb4c
fix never combination
2021-11-09 20:59:49 +01:00
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
Gregor Harlan
ab0049d0ff
ConsoleReport: Add links to open file in editor
2021-11-07 15:04:14 +01:00
sasezaki
5a01c8d601
Added phpcs SelfMemberReference rule, and applied
2021-11-07 15:47:39 +09:00
Bruce Weirdan
68495be147
Forbid declaring enums as attributes
...
This is in line with current Psalm behavior. We forbid non-instantiable
classlikes as attributes, including abstract classes and classes with
non-public constructors.
Refs vimeo/psalm#6841
2021-11-07 01:47:11 +02:00
Bruce Weirdan
9210bbcdd4
Forbid enum instantiation
...
Fixes vimeo/psalm#6837
2021-11-07 00:14:37 +02:00
orklah
b08d39e567
Merge pull request #6834 from orklah/unused-in-assert
...
don't consider calls to methods with assertions as Unused
2021-11-06 22:05:34 +01:00
orklah
e28659eb6c
Merge pull request #6838 from orklah/value_and_name_enum
...
better understands value and name properties for enum
2021-11-06 22:05:04 +01:00
orklah
18677bb108
better understands value and name properties for enum
2021-11-06 21:49:42 +01:00
Bruce Weirdan
0f8ef45110
Forbid properties on enums
...
Fixes vimeo/psalm#6472
2021-11-06 21:57:49 +02:00
orklah
9c9669ea44
don't consider calls to methods with assertions as Unused
2021-11-06 19:54:17 +01:00
orklah
ad57516765
create a temporary var for coalescing ternaries
2021-11-05 20:07:35 +01:00
orklah
b7834689e5
Merge pull request #6824 from orklah/session
...
Makes $_SESSION possibly undefined at the source
2021-11-05 20:07:24 +01:00
orklah
33aab6cc40
allow declaring functions and classLikes after a never-returning call
2021-11-05 18:09:40 +01:00
orklah
6e5f3db06c
makes $_SESSION possibly undefined
2021-11-04 22:45:46 +01:00
orklah
fffef80ec1
makes $_SESSION possibly undefined
2021-11-04 22:38:31 +01:00
orklah
915278e253
Merge pull request #6823 from orklah/variable_class
...
allow assertion to work on $var::class
2021-11-04 20:54:59 +01:00
orklah
834d831915
allow assertion to work on $var::class
2021-11-04 20:44:42 +01:00
orklah
5282e4728b
allow assertion to work on $var::class
2021-11-04 20:33:30 +01:00
orklah
cd74f665dc
Merge pull request #6813 from orklah/intTaint
...
don't register taints for numeric variables
2021-11-04 15:30:52 +01:00
orklah
e6dccaa07c
Merge pull request #6809 from orklah/binaryOpTaint
...
don't taint the result of most binary operations
2021-11-04 13:18:07 +01:00
orklah
bf993452a8
Merge pull request #6810 from orklah/castArrayTaints
...
Array cast pass taints
2021-11-04 13:17:20 +01:00
orklah
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