Patrick Remy
9c6deacc69
feat: expand properties-of to keyed array
2022-02-21 23:02:27 +01:00
Patrick Remy
30fac906c6
feat(types): add properties-of<T> type
2022-02-21 21:15:02 +01:00
Bruce Weirdan
997bded2e3
Merge branch '4.x' into upstream-master
2022-02-21 01:08:21 +02:00
Bruce Weirdan
6cc3da861e
Merge pull request #7596 from azjezz/chore/enable-psl
2022-02-21 00:24:03 +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
azjezz
d47c0140ed
chore: enable psl tests again
...
Signed-off-by: azjezz <azjezz@protonmail.com>
2022-02-21 00:08:15 +02:00
orklah
ad91df5ee1
Merge pull request #7692 from AndrolGenhald/bugfix/7685-attribute-analysis
...
Analyze attribute statements instead of constructing virtual statements.
2022-02-20 18:57:11 +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
Bruce Weirdan
2d83a4bdd3
Merge pull request #7693 from AndrolGenhald/improve-invalid-global-documentation
2022-02-18 20:15:02 +02: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
Bruce Weirdan
d8bec4c7aa
Merge pull request #7690 from dmitryuk/fix-enable-error
2022-02-18 06:34:15 +02: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
orklah
2e2099ebe7
Merge pull request #7687 from AndrolGenhald/bugfix/documentation-issue-links
...
Fix issue documentation links.
2022-02-17 20:12:21 +01:00
AndrolGenhald
bd963e4baa
Fix issue documentation links.
2022-02-17 13:04:25 -06:00
orklah
ec95244504
Merge pull request #7686 from AndrolGenhald/feature/type-check-annotations
...
Add `@psalm-check-type` and `@psalm-check-type-exact`.
2022-02-17 18:51:02 +01: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
Bruce Weirdan
1ee764894a
Merge pull request #7683 from weirdan/fix-psr4-warnings
2022-02-17 04:00:03 +02:00
Bruce Weirdan
e517295f7e
Fixed PSR-4 warnings
...
Fixes the following warnings that were emitted by `composer install`:
```
Generating optimized autoload files
Class Psalm\Tests\KeyOfTemplateTest located in ./tests/Template/KeyOfTemplateTest.php does not comply with psr-4 autoloading standard. Skipping.
Class Psalm\Tests\ValueOfTemplateTest located in ./tests/Template/ValueOfTemplateTest.php does not comply with psr-4 autoloading standard. Skipping.
```
2022-02-17 03:52:07 +02: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
Bruce Weirdan
28c5f9c9d3
Merge pull request #7677 from mmcev106/master
2022-02-15 22:26:56 +02:00
Mark McEver
828b093964
Prevent unnecessary filter_var() warnings on primitive types
2022-02-15 14:13:44 -06:00
orklah
f72f2f6fbe
Merge pull request #7434 from zoonru/disable_var_parsing
...
Add configuration option to disable @var parsing everywhere except for properties.
2022-02-15 13:29:26 +01: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
5aa06ae64e
fix merge issues
2022-02-14 00:12:31 +01: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
06ce3adba5
Merge pull request #7664 from AndrolGenhald/bugfix/7613-unused-variable-in-try
...
Fix false positive for unused variable in try (fixes #7613 ).
2022-02-13 22:39:47 +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
56504b834a
Merge pull request #7662 from orklah/enumAssertions
...
Enum assertions
2022-02-13 20:01:30 +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
aaf34d7573
add test
2022-02-13 19:38:45 +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