1986c8b4a8
Add support for strict arrays, fix type alias intersection, fix array_is_list assertion on non-lists ( #8395 )
...
* Immutable CodeLocation
* Remove excess clones
* Remove external clones
* Remove leftover clones
* Fix final clone issue
* Immutable storages
* Refactoring
* Fixes
* Fixes
* Fix
* Fix
* Fixes
* Simplify
* Fixes
* Fix
* Fixes
* Update
* Fix
* Cache global types
* Fix
* Update
* Update
* Fixes
* Fixes
* Refactor
* Fixes
* Fix
* Fix
* More caching
* Fix
* Fix
* Update
* Update
* Fix
* Fixes
* Update
* Refactor
* Update
* Fixes
* Break one more test
* Fix
* FIx
* Fix
* Fix
* Fix
* Fix
* Improve performance and readability
* Equivalent logic
* Fixes
* Revert
* Revert "Revert"
This reverts commit f9175100c8452c80559234200663fd4c4f4dd889.
* Fix
* Fix reference bug
* Make default TypeVisitor immutable
* Bugfix
* Remove clones
* Partial refactoring
* Refactoring
* Fixes
* Fix
* Fixes
* Fixes
* cs-fix
* Fix final bugs
* Add test
* Misc fixes
* Update
* Fixes
* Experiment with removing different property
* revert "Experiment with removing different property"
This reverts commit ac1156e077fc4ea633530d51096d27b6e88bfdf9.
* Uniform naming
* Uniform naming
* Hack hotfix
* Clean up $_FILES ref #8621
* Undo hack, try fixing properly
* Helper method
* Remove redundant call
* Partially fix bugs
* Cleanup
* Change defaults
* Fix bug
* Fix (?, hope this doesn't break anything else)
* cs-fix
* Review fixes
* Bugfix
* Bugfix
* Improve logic
* Add support for list{} and callable-list{} types, properly implement array_is_list assertions (fixes #8389 )
* Default to sealed arrays
* Fix array_merge bug
* Fixes
* Fix
* Sealed type checks
* Properly infer properties-of and get_object_vars on final classes
* Fix array_map zipping
* Fix tests
* Fixes
* Fixes
* Fix more stuff
* Recursively resolve type aliases
* Fix typo
* Fixes
* Fix array_is_list assertion on keyed array
* Add BC docs
* Fixes
* fix
* Update
* Update
* Update
* Update
* Seal arrays with count assertions
* Fix #8528
* Fix
* Update
* Improve sealed array foreach logic
* get_object_vars on template properties
* Fix sealed array assertion reconciler logic
* Improved reconciler
* Add tests
* Single source of truth for test types
* Fix tests
* Fixup tests
* Fixup tests
* Fixup tests
* Update
* Fix tests
* Fix tests
* Final fixes
* Fixes
* Use list syntax only when needed
* Fix tests
* Cs-fix
* Update docs
* Update docs
* Update docs
* Update docs
* Update docs
* Document missing types
* Update docs
* Improve class-string-map docs
* Update
* Update
* I love working on psalm :)
* Keep arrays unsealed by default
* Fixup tests
* Fix syntax mistake
* cs-fix
* Fix typo
* Re-import missing types
* Keep strict types only in return types
* argc/argv fixes
* argc/argv fixes
* Fix test
* Comment-out valinor code, pinging @romm pls merge https://github.com/CuyZ/Valinor/pull/246 so we can add valinor to the psalm docs :)
2022-11-05 22:34:42 +01:00
748a74bb2c
Merge remote-tracking branch 'origin/4.x' into HEAD
2022-10-16 13:41:27 +02:00
kkmuffme
b701c7074b
fix tests for detailed $_SERVER
2022-09-15 19:39:02 +02:00
kkmuffme
5c39e66b15
fix tests
2022-09-15 19:38:51 +02:00
e19589117d
Fix unit test
2022-07-27 17:56:41 +02:00
Maximilian Bösing
7e033d8051
bugfix: do not extend the type - only narrow down
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 19:20:38 +02:00
Maximilian Bösing
92b4bf1f01
qa: use dedicated variable for asserting a specific value
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 02:58:08 +02:00
Maximilian Bösing
083da24551
qa: add more specific unit test(s) for the oneOf
detection
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-12 02:53:04 +02:00
Maximilian Bösing
a9daa3ba02
qa: add failing test for one-of assertion
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2022-06-09 00:26:06 +02:00
orklah
b72f0564bc
fix refining lowercase string and non-empty-string together
2022-04-05 21:05:23 +02:00
AndrolGenhald
57b99be519
Improve reference support for assertions, array offsets, and properties.
2022-01-26 12:55:47 -06:00
Matthew Brown
b49682a485
Simplify issue suppression in tests
2022-01-13 14:38:17 -05:00
Matthew Brown
f439d6550b
Ensure that all entries in test arrays have explicit keys ( #7386 )
...
* Transformation that updates assertions
* Simplify transformation
* Ensure that all tests have keys
* Fix a few remaining keys
2022-01-13 13:49:37 -05:00
orklah
18ab5a099f
Merge pull request #7309 from orklah/emptyStringKeyedArray
...
fix empty string not quoted in keyed array offset
2022-01-06 09:37:28 +01:00
orklah
a6a0769402
fix test
2022-01-05 22:39:13 +01:00
orklah
72216f9354
fix test
2022-01-05 22:36:22 +01:00
orklah
e7bc6f273a
don't crash when pushing a template to in_array
2022-01-05 22:33:20 +01:00
orklah
7e2b9d0fab
fix empty string in keyed array offset
2022-01-05 22:26:35 +01:00
AndrolGenhald
1b9f57f214
Fix directory separator cross-platform issue.
2021-12-30 16:29:40 -06:00
AndrolGenhald
dd631c0c85
Skip reference tests, allow assertions on magic properties ( fixes #6770 ).
2021-12-30 16:23:59 -06:00
AndrolGenhald
cb9231b62f
Add failing tests for reference property mutation.
2021-12-30 14:44:03 -06:00
AndrolGenhald
3ac497c811
Allow assertions on mutable object properties.
...
All of the functionality is already there, we just have to not prevent it.
2021-12-30 14:07:55 -06:00
orklah
fb97980bf9
fix test
2021-12-26 19:27:13 +01:00
orklah
f7b6c4e1b6
escape more special chars in keyed array names that won't be read by the parser
2021-12-26 19:27:13 +01:00
orklah
bb687aebba
add test
2021-12-15 00:51:59 +01:00
ralila
8fb2e0f885
Handle some partials
2021-12-04 21:55:53 +01:00
Maximilian Bösing
dac82e95dc
qa: re-enable skipped test for class constant assertions
...
Signed-off-by: Maximilian Bösing <2189546+boesing@users.noreply.github.com>
2021-11-15 18:49:51 +01:00
Aleksandr Zhuravlev
b664850cdc
Added support of asserting properties of objects out of scope
2021-10-17 21:29:25 +13:00
Aleksandr Zhuravlev
657f8e22ed
Made the test marked 7.4
2021-10-14 22:05:40 +13:00
Aleksandr Zhuravlev
cbb67c0672
Stubbed RelfectionNamedType
2021-10-14 11:09:52 +13:00
orklah
2e64854a6c
don't allow getAssertionString to return a part of the Union
2021-10-11 16:07:57 +02:00
orklah
ee4dbafca9
fix test
2021-10-02 10:02:24 +02:00
Fran Moreno
decb397b8e
Add ReflectionProperty::getType() and hasType()
2021-07-10 13:05:57 +02:00
AndrolGenhald
d4590711d6
Fix object-like array keys when combining string and automatic keys ( fixes #5427 ). ( #5428 )
...
* Fix object-like array keys (fixes #5427 ).
* Fix incorrect return types for tests.
* Fix false positive list with literal int key.
2021-03-19 21:44:44 -04:00
Matt Brown
9d979e3467
Fix #5406 - track more changes to assertion type
2021-03-16 16:33:09 -04:00
Matt Brown
c97ee5ccdb
Fix #5258 - allow ReflectionParameeter::hasType() to inform getType() return
2021-03-06 16:54:23 -05:00
Matt Brown
4c65d3b424
Fix #5310 - allow iterable coercion from generic object
2021-03-03 00:13:00 -05:00
Matt Brown
0624098865
Ensure getId() output can always be parsed as a type
...
Ref #5105
2021-01-25 23:41:51 -05:00
Matt Brown
f1107ab4d9
Fix #5049 - assertion of !empty
on bool makes true
2021-01-19 17:19:47 -05:00
Matt Brown
4378bec917
Fix #5025 - prevent crash in assert function during reflection
2021-01-17 12:08:19 -05:00
Bruce Weirdan
89ff4282df
Allow assertions on static class properties ( #4833 )
...
* Minimal implementation for assertions on static properties
* Added inheritance tests
* Add support for `ClassName::$var`
* Import strpos() to keep phpcs happy
* Add support for conditional assertions on static properties
2020-12-21 17:05:44 +00:00
orklah
5222cadfb3
Check from_docblock property to emit the right issue ( #4736 )
2020-11-29 21:40:13 -05:00
Matt Brown
18f3a3721f
Fix #4414 - allow multiple @psalm-assert-if-true on same var
2020-10-25 10:49:39 -04:00
orklah
ead107fa9e
More return types ( #4173 )
...
* add native return types
* redundant phpdoc
2020-09-12 11:24:05 -04:00
Bruce Weirdan
4dcb7183f5
Fix windows tests ( #4040 )
...
* Fix windows tests by not mangling the expectations
* Use platform-dependent directory separator in expected messages
* fix CS
2020-08-22 10:00:36 -04:00
Brown
42c3a703b5
Fix #3741 - detect scalar class constants in if-true assertions
2020-08-12 17:03:41 -04:00
Brown
7367e8e6c2
Allow assertions of non-empty lists on typed lists
...
Fixes #3906
2020-07-29 18:10:43 -04:00
Brown
223b0619c5
Fix #3858 - support @psalm-assert falsy for abort_if expressions
2020-07-21 12:55:11 -04:00
Brown
2399643472
Fix #3811 - allow more complex negations inside boolean expressions
2020-07-13 21:31:58 -04:00
Brown
98622783ec
Allow lists to have their types refined
...
Fixes #3605
2020-06-18 10:01:16 -04:00