Bruce Weirdan
398f5f9970
Allow Attribute::IS_REPEATABLE ( #4971 )
...
This allows Attribute::IS_REPEATABLE to be specified as attribute flag.
Fixes vimeo/psalm#4892 , vimeo/psalm#4970
2021-01-29 11:47:29 +01:00
Matt Brown
c6e09db4ff
Add non-emptiness check
2021-01-29 11:47:29 +01:00
Matt Brown
99da1daae5
Fix #4958 - honour template as inheritance when comparing template types
2021-01-29 11:47:29 +01:00
Matt Brown
387abc1cb6
Fix #4943
...
Prevent input types becoming part of the inferred generic params when a match is found
2021-01-29 11:47:29 +01:00
Adrien LUCAS
fe71e8d16b
Trigger dispatch even when only legacy hooks ( #4962 )
2021-01-29 11:47:28 +01:00
Adrien LUCAS
f9cbc07fb7
Avoid false positives for taint specialized calls even when not using a variable ( #4948 )
2021-01-29 11:47:28 +01:00
Matt Brown
4c5c32bc93
Fix #4945 - use assertion string for scalar templated assertions
2021-01-29 11:47:28 +01:00
orklah
31be6212b7
add stubs for standard iterators ( #4725 )
...
* add stubs for standard iterators
* Apply suggestions from code review cc @weirdan
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
* complete stub + delete code made redundant by stubs + fix some syntax in stubs
* fix parse error
Co-authored-by: Bruce Weirdan <weirdan@gmail.com>
2021-01-29 11:47:28 +01:00
Adrien LUCAS
63ddceaf8e
Taint specialized calls even when not using a variable ( #4940 )
2021-01-29 11:47:27 +01:00
Matt Brown
e67315424f
Fix #4917 - allow array_reduce to be called with a single arg
2021-01-29 11:47:27 +01:00
orklah
c2c25ada84
add ArrayAccess to SimpleXmlElement ( #4934 )
...
* add ArrayAccess to SimpleXmlElement
* add test
2021-01-29 11:47:27 +01:00
orklah
d8fea8aabb
implement DTO for plugins ( #4881 )
...
* implement DTO for plugins
* introduce EventHandler + reintroduce legacy API for plugins
2021-01-29 11:47:27 +01:00
orklah
a17e403270
handle concatenation with int parts ( #4938 )
2021-01-29 11:47:27 +01:00
Matthew Brown
8696873cb9
Break out parent and implemented class checks
2021-01-29 11:47:26 +01:00
orklah
e949ed68ac
Infer result of modulo 1 operation statically ( #4926 )
2021-01-29 11:47:25 +01:00
Lukas Bestle
c58f5603c3
SARIF report: Include help links ( #4924 )
2021-01-29 11:47:25 +01:00
Lukas Bestle
0355465b38
Full support for $this
in @var
annotations ( #4922 )
...
Fixes #4916 .
2021-01-29 11:47:25 +01:00
Matthew Brown
7142c53f18
Fix test
2021-01-29 11:47:24 +01:00
Matthew Brown
3322ffb3f0
Fix #4912 - detect mismatching property type
2021-01-29 11:47:24 +01:00
Matthew Brown
ba823602ea
Fix #4901 - simplify mapping of template types within class
2021-01-29 11:47:23 +01:00
orklah
a475b23f0b
fix phpdoc ( #4905 )
2021-01-29 11:47:23 +01:00
orklah
bc900b2dd6
Document lowercase-string when possible ( #4904 )
...
* document lowercase-string
* fix missing strtolower
2021-01-29 11:47:22 +01:00
orklah
25e022e77e
Illegal offset ( #4865 )
...
* Illegal offset access
* add tests
* fix tests
2021-01-29 11:47:22 +01:00
Fran Moreno
7ddec46e76
Allow by reference parameters in method docblock ( #4873 )
2021-01-29 11:47:22 +01:00
Bruce Weirdan
0b2081b621
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
2021-01-29 11:47:21 +01:00
Matt Brown
8f192801c1
Prevent mixed array offset in array creation
...
Fixes #4846
2021-01-29 11:47:21 +01:00
Matt Brown
cbf7e596f7
Fix #4827 - don’t eradicate double after int check
2021-01-29 11:47:20 +01:00
Matt Brown
4416da85e7
Fix #4837 - bind correct static class when checking mixin types
2021-01-29 11:47:20 +01:00
Matt Brown
cc06cb53f5
Fix #4839 - undefined possibly set in by-reference should be treated as such
2021-01-29 11:47:20 +01:00
Matt Brown
1f295e4597
Fix psl inheritance stuff cc @azjezz
2021-01-29 11:47:20 +01:00
2e3s
fadb3a76e7
Memoize private inferred mutation-free methods ( #4832 )
2021-01-29 11:47:20 +01:00
Matt Brown
1db76bd737
Fix #4829 – don’t crash when yielding non-existent class
2021-01-29 11:47:19 +01:00
Matt Brown
972738b772
Add test for #4825
2021-01-29 11:47:19 +01:00
Matt Brown
4b0fe42a05
Union types if stmt already has one
2021-01-29 11:47:19 +01:00
Matt Brown
e1e0c20861
Fix get magic property checks
2021-01-29 11:47:19 +01:00
Matt Brown
c33ea06ffa
Improve accuracy of optional example
2021-01-29 11:47:19 +01:00
Matt Brown
d64c49be92
Be smarter when choosing inherited param types
...
Ref #4803
2021-01-29 11:47:19 +01:00
Matt Brown
3e2d998cfe
Fix #4817 - allow optional inference
2021-01-29 11:47:19 +01:00
Matt Brown
cfe2e81629
Fix #4791 - only generate special has-array-key assertions for unknown key types
2021-01-29 11:47:18 +01:00
Matt Brown
b15384bbff
Tighten up rules arouund when mutation-free methods get memoised
2021-01-29 11:47:18 +01:00
Matt Brown
35ed9d4d8d
Fix #4812 - reconcile array assertion on template as type correctly
2021-01-29 11:47:18 +01:00
Matt Brown
2ff3f867c5
Fix #4803 - always derive method params the same way
2021-01-29 11:47:18 +01:00
Matt Brown
91115d651f
Use better stubs for Serializable and SoapClient
2021-01-29 11:47:18 +01:00
2e3s
df8d2e2296
Overwrite memoized return type after sum-type candidate is calculated ( #4805 )
...
* Overwrite memoized return type after sum-type candidate is calculated
* Fix mismatched types
* Fix code style
2021-01-29 11:47:18 +01:00
Matt Brown
7825a71351
Fix #4797 - sanitise assertion output of template result
2021-01-29 11:47:18 +01:00
Matt Brown
50611d5b91
Fix #4798 - improve conversion from type back to PhpParser node
2021-01-29 11:47:18 +01:00
Matt Brown
5e4bece7d3
Fix #4802 - don’t clone context when analysing coalesce
2021-01-29 11:47:17 +01:00
Matt Brown
ae8aaaf1d8
Support simple list assignment in foreach
...
Ref #4741
2021-01-29 11:47:17 +01:00
Matt Brown
ce9d100908
Fix #4794 - invvalidate dependent types when their variables change
2021-01-29 11:47:17 +01:00
Matt Brown
c4b1c63dd1
Taint all when conditional return is used
...
Ref #4792
2021-01-29 11:47:16 +01:00