Brown
ca1b29b1dd
Report use of impure closures
2021-01-29 11:38:47 +01:00
Markus Staab
2375a3b2cd
docs: added positive integer ( #4078 )
...
* docs: added positive integer
* added to toc
2021-01-29 11:38:47 +01:00
Brown
9190571cfc
Remove some redundant calls
2021-01-29 11:38:47 +01:00
Brown
02255ae26b
Fix #4077 - always track closure purity
2021-01-29 11:38:47 +01:00
Brown
7beb274671
Fix typo
2021-01-29 11:38:47 +01:00
Brown
5835eec863
Fix #4061 - allow indirect null comparison check
2021-01-29 11:38:46 +01:00
Brown
489cd99752
Allow bare pure-callable in namespace cc @azjezz
2021-01-29 11:38:46 +01:00
Brown
317131b524
Simplify simplification
2021-01-29 11:38:46 +01:00
Saif Eddin G
a0a30c500c
add pure-callable type ( #4066 )
2021-01-29 11:38:46 +01:00
Brown
a716185564
Fix too-long line
2021-01-29 11:38:46 +01:00
Brown
6d43a6696c
Make clause fully immutable
2021-01-29 11:38:46 +01:00
Brown
b09309aa92
Prevent unset on immutable properties
2021-01-29 11:38:46 +01:00
Brown
7623e31829
Use a slightly cleaner fix
2021-01-29 11:38:46 +01:00
Brown
11ee00442d
Refine iterable key after is_array check
...
Ref #4038
2021-01-29 11:38:46 +01:00
Brown
e585955c96
Use immutable data structures for clause calculations
2021-01-29 11:38:45 +01:00
Brown
20139e7473
Fix #4064 - assume most iterators are impure
2021-01-29 11:38:45 +01:00
Brown
ab8d794709
Refine test for windows compat
2021-01-29 11:38:45 +01:00
Brown
4735ca39e2
Fix get_class-inferred templating
2021-01-29 11:38:45 +01:00
Brown
a0a9c9b7bc
Fix #4038 - don’t remove null types unnecessarily in mixed union
2021-01-29 11:38:45 +01:00
Brown
a466feda18
Fix type bug
2021-01-29 11:38:45 +01:00
Brown
bd7f207e31
Preserve intersections when expanding templated types
...
Fixes #4043
2021-01-29 11:38:45 +01:00
Brown
6aa8a492ac
Create empty params by default for SplObjectStorage
...
Fixes #4055
2021-01-29 11:38:45 +01:00
Brown
51bfb3666b
Fix #4052 - foreach over an iterable is impure
2021-01-29 11:38:45 +01:00
Brown
8ca604a533
Expand object-with-properties
...
Fixes #4057
2021-01-29 11:38:45 +01:00
Brown
f9b48163e0
Add a bunch of immutable & pure annotations
2021-01-29 11:38:44 +01:00
Brown
91e1e5f0f6
Fix #4036 - add immutable annotations automatically too
2021-01-29 11:38:44 +01:00
Bruce Weirdan
1ac27d6d22
Fix prophecy warnings ( #4051 )
...
* Use weirdan/prophecy-shim to avoid PHPUnit warnings on prophesize() calls
* Drop vcs repo as the package is already available on packagist
* Bump psalm/plugin-phpunit
Fixes Prophecy-related issues
2021-01-29 11:38:44 +01:00
Tom Klingenberg
fd96419527
Revert config schema, fix b/c break ( #4046 )
...
Previous in d5055ea
the allowCoercionFromStringToClassConst attribute has
been removed from the XML configuration file per its schema.
While technically correct (was removed in 3.0), this breaks b/c between
minor versions, breaks with the release of 3.14.0.
Fix is revert.
Ref: d5055ea1d4
Caused-by: #3982
2021-01-29 11:38:44 +01:00
Matthew Brown
c4074012f8
Fix immutable tests
2021-01-29 11:38:44 +01:00
Brown
596492a95a
Only add pure when not overriding upstream
2021-01-29 11:38:44 +01:00
Brown
fe5fd82a93
Fix ImpureVariable test
2021-01-29 11:38:44 +01:00
Brown
e938e73549
Add a couple more pure annotations
2021-01-29 11:38:44 +01:00
Brown
5513fcdcff
Prevent isset on uknown property in pure function
2021-01-29 11:38:44 +01:00
Brown
1ec0f35011
Only add pure to functions with params
2021-01-29 11:38:43 +01:00
Brown
9100c26439
Prevent use of $this
in pure functions
2021-01-29 11:38:43 +01:00
Brown
e9f07ac4b4
Add another pure annotation
2021-01-29 11:38:43 +01:00
Brown
ee41560590
Allow function manipulators to work in threaded mode
2021-01-29 11:38:43 +01:00
Matthew Brown
07843d4768
Don’t add pure annotation when closure is impure
2021-01-29 11:38:43 +01:00
Matthew Brown
fffa0a72c0
Add another pure annotation
2021-01-29 11:38:43 +01:00
Matthew Brown
2e2f0a2386
Don’t add @psalm-pure for void-returning functions
2021-01-29 11:38:43 +01:00
Matthew Brown
5656591962
Add some pure annotations
2021-01-29 11:38:43 +01:00
Matthew Brown
5dc60d7d6a
Fix docblock removal
2021-01-29 11:38:43 +01:00
Matthew Brown
ae51f40a54
glob is impure
2021-01-29 11:38:43 +01:00
Matthew Brown
68b97591d9
Nest new impure checks
2021-01-29 11:38:42 +01:00
Matthew Brown
601a8fdcb6
Restrict pure annotation addition a little more
2021-01-29 11:38:42 +01:00
Matthew Brown
0c3306b002
Add more impure functions
2021-01-29 11:38:42 +01:00
Matthew Brown
9d6939226e
Static property fetching is bad
2021-01-29 11:38:42 +01:00
Matthew Brown
8589e4af55
Fix docs
2021-01-29 11:38:41 +01:00
Brown
bc945b98bd
Allow modification after clone in pure context
2021-01-29 11:38:04 +01:00
Brown
47faea8ca3
Prohibit property fetches from pure contexts except when they’re on immutable objects
2021-01-29 11:38:04 +01:00