1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 18:36:58 +01:00
Commit Graph

7569 Commits

Author SHA1 Message Date
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
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
abebe4f7b4 add comments and suppress ComplexMethod 2021-10-11 13:36:56 +02:00
orklah
12a53345b5 allow filtering TKeyedArray using an iterable 2021-10-11 13:36:29 +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
5134a92e2a
Merge pull request #6623 from orklah/templated-array-key
Templated array key
2021-10-10 10:43:12 +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
da4a0fe9a9 return null when expression can't be stored as unresolved 2021-10-10 09:28:19 +02:00
orklah
e7a86148b0 Allow Psalm to store unresolved Unary Ops 2021-10-10 09:24:25 +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
ded92ef83c forbid intersection types for now 2021-10-09 23:48:32 +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
2b963242d7 array-key is included is contained by a template with array-key as upper bound 2021-10-09 20:02:09 +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
d44d00fb6d fix two more cases 2021-10-09 18:10:49 +02:00
orklah
a2f415e2e0 fix @return 0 2021-10-09 17:58:06 +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
49abfcb71b
Merge pull request #6617 from orklah/nonspecific-literal-int
allow any integer range to be satisfied by TNonspecificLiteralInt
2021-10-09 01:12:46 +02:00
orklah
874a67a1b0 allow any integer range to be satisfied by TNonspecificLiteralInt 2021-10-09 01:04:31 +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
87a5df6043 only put offset to 0 when there's only one argument 2021-10-07 20:38:10 +02:00
orklah
49bb065dc7
Merge pull request #6608 from orklah/foreach-on-list
foreach on list gives a positive|0 offset
2021-10-07 20:16:11 +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
973da0a91a allow considering a NonEmptyArray where the only offset value is 0 to be contained in a NonEmptyList 2021-10-07 11:04:46 +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
4ca171001c
Merge pull request #6598 from orklah/fix-error
fix error
2021-10-05 20:50:47 +02:00
orklah
ad6229fe67 fix error 2021-10-05 20:27:13 +02:00
orklah
77c70c0ad2 allow |false in unions as long as it's not alone and not with null 2021-10-05 19:49:05 +02:00
orklah
433474260c revert confusing change 2021-10-05 19:27:07 +02:00
orklah
7321eed89d don't add return type if it's the same than signature unless there is a description 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
295622088f
Merge pull request #6585 from orklah/truthy
fix isAlwaysTruthy: TNonEmptyString can be falsy (with '0')
2021-10-05 12:49:09 +02:00
orklah
96ed2526e8
Merge pull request #6589 from orklah/strict-callable
Better understanding of Templates in lhs of callable TKeyedArray
2021-10-05 12:48:53 +02:00
orklah
3cf5dc5e89 makes Psalm understand templates in lhs 2021-10-05 11:34:17 +02:00
orklah
12ecaaa84d makes Psalm understand templates in lhs 2021-10-05 11:30:29 +02:00
orklah
20bb5f196b fix isAlwaysTruthy: TNonEmptyString can be falsy (with '0') 2021-10-04 23:02:01 +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
c7fd665fba
Merge pull request #6576 from orklah/wrong_priority
fix wrong operator priority
2021-10-04 14:36:47 +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
942b3b619b
Merge pull request #6522 from MorrisJobke/fix/show-file-and-line-in-exception-message
Show file and line in case of an exception in a forked worker
2021-10-04 09:19:38 +02:00
orklah
aba9541451 Psalter add psalm-param modifying 2021-10-04 01:01:57 +02:00
orklah
1e70be9888 fix wrong operator priority 2021-10-04 00:24:58 +02:00
orklah
430fd619ec cleanup 2021-10-04 00:23:53 +02:00
orklah
53c0a4e63a cleanup 2021-10-04 00:03:06 +02:00
orklah
5efd49f38d fix redundant condition 2021-10-02 10:09:40 +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
b14fccb654 refine types in Always methods 2021-10-02 10:01:05 +02:00
orklah
2df1f9d42e add resource to truthy types 2021-10-02 10:01:05 +02:00
orklah
f8628ef68c fix errors 2021-10-02 10:01:05 +02:00
orklah
0f6d271dde possibly undefined unions can't be truthy 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
dd5c2904d8 fix error on continue 2021-10-02 10:01:04 +02:00
orklah
f8c2a89f23 use Int ranges to describe offset after array_fill when both args are known ints 2021-10-02 09:54:02 +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
7e1c66d837 add limit to the number of clauses simplifyCNF can handle 2021-10-02 09:52:19 +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
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
NikolayZhebet
843f14d069 fix 'Undefined offset: 1' in CodeBase::getTypeContextAtPosition issue (#6559) 2021-09-30 20:09:15 +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
5a99c9be94 offset the starting position of the function in case of attributes 2021-09-29 21:19:04 +02: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
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
db395d5605 unnecessary cast 2021-09-26 23:34:32 +02:00
orklah
5d6d3df4cf unnecessary identical child method 2021-09-26 23:34:32 +02:00
orklah
4577a11a2f imports 2021-09-26 23:34:32 +02:00
orklah
c91bdfb689 old casts 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
f788fec540 static::class 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
a95cb15056 no need for parent 2021-09-26 22:39:37 +02:00
orklah
53e4719c19 boolean cast 2021-09-26 22:39:01 +02:00
orklah
ddf74919f6 if with common parts 2021-09-26 22:37:17 +02:00
orklah
c11b32d414 redundant variable check 2021-09-26 22:37:17 +02:00
orklah
998f91aa65 variable with single value 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
dae29c8cee missing visibility 2021-09-26 22:37:17 +02:00
orklah
6dd1e19254 unnecessary ref 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
5777d02fed missing types 2021-09-26 22:37:16 +02:00
orklah
5b684309fd unnecessary ternary 2021-09-26 22:37:16 +02:00
orklah
c45e9bfc5f useless switch 2021-09-26 22:37:16 +02:00
orklah
fce60a018a param defaults 2021-09-26 22:37:16 +02:00
orklah
b65af9bf2f static in final class 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
a03e55a110 array_push misused 2021-09-26 22:36:16 +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
a214b14388 CS fix 2021-09-25 18:38:01 +02:00
orklah
f4fa1f7a1b CS fix 2021-09-25 18:35:18 +02:00
orklah
f1e5ecf876 CS fix 2021-09-25 18:28:25 +02:00
orklah
41ea541084 unset instead of reassign 2021-09-25 18:11:54 +02:00
orklah
06da96843a interface compat 2021-09-25 18:09:49 +02:00
orklah
7447489133 better types 2021-09-25 17:57:18 +02:00
orklah
6c892125c3 interface compat 2021-09-25 17:33:12 +02:00
orklah
bff08670f5 put int instead of float 2021-09-25 17:32:04 +02:00
orklah
146d02e3e1 unset instead of reassign 2021-09-25 17:28:51 +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