1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 12:55:26 +01:00
Commit Graph

8102 Commits

Author SHA1 Message Date
Bruce Weirdan
997bded2e3
Merge branch '4.x' into upstream-master 2022-02-21 01:08:21 +02:00
orklah
b8cda9eb00
Merge pull request #7684 from AndrolGenhald/bugfix/minor-reference-fixes
Fix some minor issues with references.
2022-02-20 23:21:56 +01:00
Bruce Weirdan
d7d846edc8
Merge branch '4.x' into upstream-master 2022-02-20 02:31:15 +02:00
Bruce Weirdan
97bd81cf5e
Merge pull request #7699 from AndrolGenhald/bugfix/int-range-unpacking 2022-02-19 00:04:32 +02:00
AndrolGenhald
9310a4ff5a Fix issues with int range unpacking and with min/max. 2022-02-18 15:55:26 -06:00
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
0476ca7844 Fix trailing commas for PHP < 7.3. 2022-02-18 08:44:51 -06:00
AndrolGenhald
ea2f452c25 Analyze attribute statements instead of constructing virtual statements. 2022-02-18 08:18:34 -06:00
a.dmitryuk
8e1e0d1e5e style-ci 2022-02-18 10:33:35 +07:00
a.dmitryuk
dc8764153e Throw exception if file_put_contents failed 2022-02-18 10:05:23 +07: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
AndrolGenhald
8f710cc37f Fix crash when data_flow_graph is null. 2022-02-17 10:34:34 -06:00
AndrolGenhald
580278d323 Fix some minor issues with references.
References assigned to properties on `$this` should never be unused.
Using a `@var` docblock before a reference should be allowed if it targets a variable instead of the assignment statement.
2022-02-17 09:31:33 -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
eb3df40fbb
Add option to disable @var parsing everywhere except for properties. 2022-02-15 10:04:56 +01: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
52ad607c96
Merge pull request #7661 from weirdan/fix-array_fill_keys 2022-02-13 11:05:05 +02:00
Bruce Weirdan
edddc87002
Merge branch '4.x' into upstream-master 2022-02-13 07:14:23 +02: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
Bruce Weirdan
dc776d3ada
Suppress false-positive 2022-02-13 00:48:58 +02:00
Bruce Weirdan
45a19b3f3c
Honour global function suppressions for UndefinedFunction
Fixes vimeo/psalm#7610
2022-02-13 00:22:55 +02:00
orklah
60feb5fd71 allow collapsing enum cases under named object in combiner 2022-02-12 20:31:39 +01:00
orklah
1d224cebf7
Merge pull request #7651 from orklah/new
remove totallyTyped
2022-02-12 10:29:23 +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
orklah
85fca56850 remove totallyTyped 2022-02-12 10:19:14 +01:00
orklah
6355597250 fix CS 2022-02-12 10:05:53 +01:00
orklah
e6d491a4ab Merge remote-tracking branch 'upstream/master' into upstream-master7 2022-02-12 10:01:08 +01:00
orklah
fac55576ab Merge remote-tracking branch 'upstream/4.x' into upstream-master7 2022-02-12 09:59:55 +01:00
orklah
a3852b8a55
Merge pull request #7650 from orklah/totallytyped
deprecate totallyTyped
2022-02-12 09:56:39 +01:00
orklah
dbf47b16c3 deprecate totallyTyped 2022-02-12 09:30:37 +01:00
orklah
c13a536386
Merge pull request #7614 from kkmuffme/add-phpredis-stubs
add phpredis stubs
2022-02-11 23:15:48 +01:00
sasezaki
c46818ac24 Removed unnecessary var annotation 2022-02-11 22:51:31 +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