1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-10 15:09:04 +01:00
Commit Graph

1097 Commits

Author SHA1 Message Date
deaa6bd2ea Add purity issues to baseline 2022-10-10 12:53:13 +02:00
0155ad7472 Immutable readonly 3 2022-10-03 15:13:47 +02:00
45452c7125 Immutable readonly 2 2022-10-03 14:02:41 +02:00
c2ce7e63da Immutable readonly 1 2022-10-03 11:53:05 +02:00
ef60a0c88c Fix properties-of on generics&intersections 2022-10-03 11:28:01 +02:00
3abd0b961f Immutable Unions 2022-10-03 10:45:36 +02:00
Bruce Weirdan
58e87fa5e0
Applied ArraySpreadInsteadOfArrayMergeRector (take 2) 2022-07-29 18:17:21 -04:00
orklah
7c4228fb56
Merge pull request #8324 from Nicelocal/fix_union_assertions
Fix union assertions
2022-07-28 19:06:14 +02:00
e19589117d
Fix unit test 2022-07-27 17:56:41 +02:00
09fb879428
Fix #8322, #8319 2022-07-27 17:42:48 +02:00
18106af5e5
Refactor 2022-07-27 14:39:34 +02:00
AndrolGenhald
d54eebfe02 Fix various array spread issues.
- Correctly infer `array` and `list` instead of `non-empty-array` and `non-empty-list` (fixes #7296)
 - Add support for spreading string keys (fixes #7297).
 - Show issue when trying to unpack non-iterable
 - Show issue when trying to unpack iterable with non-array-key key
 - Re-added invalid PHP 8.0 tests removed in #6613
 - Unpacked lists with known keys will be inferred as eg `array{0: int, 1: int}<int<0, max>, int>` now but will still be treated as lists
 - Unpacked arrays with known keys will now be inferred as eg `array{a: string, b: string}<int, int>` instead of `array<int|string, int|string>`
2022-07-26 12:00:03 -05:00
AndrolGenhald
ba6270c06a Fix type reconciliation breaking Context::$references_in_scope (fixes #8289). 2022-07-21 14:27:21 -05:00
Oliver Hader
6c5e5f77fa
Avoid cloning undefined array index 2022-07-20 21:36:49 +02:00
AndrolGenhald
66ebf4a55c Rename TKeyOfArray to TKeyOf. 2022-07-18 14:44:29 -05:00
AndrolGenhald
6505d8e6d5 Fix trailing comma for PHP 7.4. 2022-07-18 14:19:34 -05:00
AndrolGenhald
b51b5ac903 Allow value-of to work with backed enums (fixes #7874). 2022-07-18 14:10:06 -05:00
AndrolGenhald
285740a753 Merge branch '4.x' 2022-07-07 15:01:38 -05:00
Maximilian Bösing
df927d076d
qa: drop unnecessary ensure_source_equality check
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-27 18:19:34 +02:00
AndrolGenhald
a804e459b6 PHP 7.1 compatibility. 2022-06-24 19:29:12 -05:00
AndrolGenhald
2559222f67 More interpolation and concatenation improvements. 2022-06-24 19:22:59 -05:00
AndrolGenhald
450409f045 Infer literal string from encapsed (interpolated) string. 2022-06-24 17:24:34 -05:00
Maximilian Bösing
02d4f0c614
feature: add more accurate equals checks for TLiteralFloat, TLiteralInt and TLiteralString
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 03:34:45 +02:00
Maximilian Bösing
4068f5cbb0
feature: add Union#allFloatLiterals as it was missing
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 02:50:48 +02:00
AndrolGenhald
c271b1245e Fix possibly empty array shape appearing non-empty (fixes #8048). 2022-06-02 14:00:52 -05:00
Theodore Brown
6f3ceea7d0 Remove several unused use statements 2022-05-08 23:18:18 -05:00
Aleksandr Zhuravlev
b4fdc3e326 Made most of callbacks static. Reworked some array_map() into foreach() 2022-04-09 21:58:26 +12:00
Jordi Boggiano
bbef5700d9
Without with 2022-03-23 14:50:14 +01:00
Jordi Boggiano
076a916401
Update docs on TIntMaskOf 2022-03-23 12:19:55 +01:00
orklah
d1ce74bc79 fix name 2022-03-14 20:07:03 +01:00
Patrick Remy
51f3b9869b
docs: add properties-of type to plugins type system 2022-02-24 18:50:35 +01:00
Patrick Remy
be49037d70
feat: add template support to properties-of<T> 2022-02-23 21:30:09 +01:00
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
26e238cdc5
Finalize types nodes 2022-02-10 01:44:25 +02:00
orklah
2e01e9b7cd
Merge pull request #7396 from Patrick-Remy/feat/key-of-value-of-improvements
feat: make key-of/value-of usable with non-const arrays
2022-01-31 21:39:01 +01:00
Patrick Remy
51d4bf556a
fix: replace template args in key-of/value-of
Extend TTemplateKeyOf from Atomic instead of Scalar, to ensure it is
only compared in AtomicTypeComparator to reduce duplicate code.
2022-01-31 20:53:36 +01:00
orklah
84d9b5e10c add back empty 2022-01-30 18:43:44 +01:00
Patrick Remy
51cab704c4
fix: key-of/value-of handle nested template params 2022-01-28 00:04:21 +01:00
Patrick Remy
f87e429e58
fix: infer key-of/value-of type if still templated
Not in all cases the TemplateParam gets replaced before type checking,
in these cases, use the defined `as` type.
Refactor to extract key/value type of array union to method.
2022-01-27 22:39:50 +01:00
Patrick Remy
8cd5ccd076
feat: make value-of<T> capable for template types 2022-01-27 22:28:40 +01:00
Patrick Remy
dff8869685
style: remove unused use statement 2022-01-27 22:28:40 +01:00
Patrick Remy
1f28d025c3
feat: allow unions for key-of/value-of
Add tests for TValueOfArray.
2022-01-27 22:28:24 +01:00
Patrick Remy
2880d046ce
feat: make key-of/value-of usable with non-const arrays 2022-01-27 22:22:14 +01:00
AndrolGenhald
e268a05307 Minor fixes after rebasing. 2022-01-26 12:57:19 -06:00
AndrolGenhald
57b99be519 Improve reference support for assertions, array offsets, and properties. 2022-01-26 12:55:47 -06:00
AndrolGenhald
f9450656e1 Add support for references and improve UnusedVariable checks (fixes #7254). 2022-01-26 12:55:47 -06:00
AndrolGenhald
0b81f46bb1 Fixes after rebasing. 2022-01-25 15:31:09 -06:00
AndrolGenhald
0edf260d8b Improve class constant static analysis.
Add class const covariance support (fixes #5589).
Add check for overriding const from interface in PHP < 8.1 (fixes #7108).
Add check for ambiguous const inheritance.
2022-01-25 15:20:17 -06:00
orklah
63b802bff4 remove TPositiveInt 2022-01-23 23:49:23 +01:00