Bruce Weirdan
6a68287700
Merge pull request #7696 from AndrolGenhald/improve-bool-to-int-cast
2022-02-18 22:17:29 +02:00
AndrolGenhald
525a86e19d
Improve bool to int casting.
2022-02-18 13:22:17 -06:00
AndrolGenhald
c1077f32d3
Improve documentation for InvalidGlobal to explain that it's sometimes valid.
2022-02-18 11:36:25 -06:00
AndrolGenhald
d09e420939
Add @psalm-check-type
and @psalm-check-type-exact
.
...
I initially added these as part of my TryAnalyzer rewrite to allow testing complicated `finally` types like this:
```
$foo = 1;
try {
$foo = 2;
} catch (Exception $_) {
$foo = 3;
} finally {
$bar = $foo;
/** @psalm-check-type-exact $bar = 1|2|3 */;
}
/** @psalm-check-type-exact $bar = 2|3 */;
```
Using the `'assertions'` in tests doesn't work since the type is different inside the `finally`.
I decided to extract the new annotation from the rest of my changes and do a separate pull request since I think others may find it useful, and it should be much easier to review than the entire TryAnalyzer rewrite.
2022-02-17 10:37:13 -06:00
Matthew Brown
6af3b502df
Remove unnecessary array assignment
2022-02-16 13:04:23 -05:00
Bruce Weirdan
e47752afb4
Merge pull request #7666 from AndrolGenhald/more-class-const-improvements
...
More class const improvements.
2022-02-16 03:43:37 +02:00
AndrolGenhald
cc2334f40d
More class const improvements.
...
Add InvalidClassConstType issue as alternative to LessSpecificClassConstType when type isn't contravariant.
Handle final class consts (#6395 ).
Use double quotes for types in class const issues.
2022-02-13 17:19:25 -06:00
orklah
1142c818c2
Merge remote-tracking branch 'upstream/4.x' into upstream-master9
2022-02-14 00:10:28 +01:00
orklah
b796f4558a
Merge pull request #7665 from orklah/matchcount
...
fix count with match on arrays
2022-02-13 22:49:31 +01:00
orklah
97a6abd823
don't anonymize call to count to allow assertions on count to be retrieved
2022-02-13 22:38:38 +01:00
AndrolGenhald
fd0ecf2528
Rename variable to be consistent with existing convention.
2022-02-13 15:34:21 -06:00
AndrolGenhald
32c389482c
Fix issue with nested try
block and add more tests.
2022-02-13 15:30:06 -06:00
AndrolGenhald
7b1599d783
Fix false positive for unused variable in try ( fixes #7613 ).
2022-02-13 15:14:59 -06:00
orklah
8a49caccac
Merge pull request #7663 from orklah/never2
...
Consistency for empty reconciliations
2022-02-13 20:01:45 +01:00
orklah
093d9b2821
allow use of an empty reconciliation if the type is from docblock
2022-02-13 19:44:12 +01:00
orklah
5f1b796af9
redundant condition
2022-02-13 19:38:44 +01:00
orklah
586c70c8d3
Reconcile IsNotType between EnumCase and NamedObject
2022-02-13 19:38:44 +01:00
orklah
cf25363fa1
empty reconciliation should return never or mixed depending of the source of the type
2022-02-13 19:36:09 +01:00
orklah
59d3d2aa31
Merge pull request #7655 from orklah/enumCollapsing
...
Enum collapsing
2022-02-13 11:01:07 +01:00
orklah
954884eb48
consistency between TernaryAnalyzer and IfElseAnalyzer
2022-02-13 10:52:22 +01:00
Bruce Weirdan
4ee8a80a17
Use array_fill_keys
...
There was a number of calls to `array_map(fn()=>true, array_flip($array))` that got replaced with a simpler (and more performant) `array_fill_keys($array, true)`
2022-02-13 07:09:28 +02:00
orklah
60feb5fd71
allow collapsing enum cases under named object in combiner
2022-02-12 20:31:39 +01:00
orklah
a915ef5853
also remove a from_calculation flag which was scheduled for removal in Psalm 5
2022-02-12 10:19:39 +01:00
sasezaki
d0baffb534
DOMElement instead of DomElement - https://php.net/DOMElement
...
to avoid composer-require-check reports false-positive,
just did - find src/ -type f -exec sed -i -e 's/DomElement/DOMElement/g' {} \;
2022-02-11 22:51:31 +01:00
m1ke
92aedd6f7f
Fix cherry pick issues
2022-02-11 11:27:01 +00:00
m1ke
a688bd6da3
Use config threads if lower than detected threads
2022-02-11 11:23:09 +00:00
m1ke
810880c71b
Alter order of precedence and upated docs to match
2022-02-11 11:12:36 +00:00
Bruce Weirdan
11e60fa261
Merge branch '4.x' into upstream-master
2022-02-11 03:51:48 +02:00
Matthew Brown
6d057669fc
Fix #6683 by improving simplification of CNF ( #7631 )
2022-02-10 19:37:42 -05:00
Matthew Brown
b49b5f1c20
Make error message for truthy/falsy more accurate
2022-02-10 18:46:22 -05:00
Bruce Weirdan
161519883a
Merge pull request #7623 from weirdan/finalize-types
2022-02-11 00:27:10 +02:00
Matthew Brown
c885dbcbe0
Prevent duplicate type comparison errors
2022-02-10 01:04:14 -05:00
Bruce Weirdan
7c344366a3
Fix RedundantCondition
2022-02-10 01:44:50 +02:00
orklah
9984397766
Merge pull request #7622 from orklah/assertions
...
consistency in AssertionFinder
2022-02-09 22:53:28 +01:00
orklah
511177556b
only remove int from array-key if we're dealing with a general Int
2022-02-09 22:46:41 +01:00
orklah
a236aa2a41
only remove int from array-key if we're dealing with a general Int
2022-02-09 22:44:26 +01:00
Matthew Brown
2eca28c912
Remove more unused code from LoopAnalyzer
2022-02-09 16:37:15 -05:00
orklah
1c74774c40
consistency
2022-02-09 21:48:33 +01:00
orklah
0f1efa9079
documentation
2022-02-09 21:15:22 +01:00
Matthew Brown
5575fa1e32
Remove unnecessary method
2022-02-09 12:18:15 -05:00
Matthew Brown
9d8b6d641b
Remove more unused code
2022-02-08 18:20:14 -05:00
Matthew Brown
48b702b76a
Remove some unnecessary code
2022-02-08 17:12:18 -05:00
Matthew Brown
e130dd9b1c
Fix too-long line
2022-02-08 16:28:21 -05:00
Matthew Brown
e35e6fe992
Improve naming of variables
2022-02-08 16:25:33 -05:00
Matthew Brown
457abc6e13
Don’t subtract int from array-key if not equality
2022-02-08 11:24:05 -05:00
Matthew Brown
13824d5a33
Fix awkward workaround for loop assignment map
2022-02-08 10:59:29 -05:00
Matthew Brown
eda8e04a81
Narrow graph arrayfetch dataflow
2022-02-08 10:59:29 -05:00
Tomasz Kusy
124aa22fe9
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix fix :)
2022-02-04 20:27:45 +01:00
Tomasz Kusy
8da45aa7d8
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix fix
2022-02-04 20:26:06 +01:00
Tomasz Kusy
b73f2c96d8
Resolve __DIR__ / __FILE__ when const/variable is used for include CS fix
2022-02-04 19:43:55 +01:00