1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-30 04:39:00 +01:00
Commit Graph

3799 Commits

Author SHA1 Message Date
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
Matt Brown
a5408aafc9
Fix #4778 - remove already-initialized properties when checking initialisation 2021-01-29 11:47:16 +01:00
Matt Brown
8bfb0412e7
Fix #4782 - don’t replace closure types with upper bounds when replacing class param types 2021-01-29 11:47:16 +01:00
Matt Brown
b21e138cc7
Allow nested specialisation 2021-01-29 11:47:15 +01:00
Matt Brown
309c13700d
Fix #4769 – don’t use unique ids for new generated nodes 2021-01-29 11:47:15 +01:00
Bruce Weirdan
5bce554cbb
Fix windows builds (#4775)
* Choco now offers PHP 8 only

* Bump build deps to allow PHP 8 builds

* Bump slevomat

* Disable coverage to allow paratest

* Bump dummy project version to allow testing on PHP 8
2021-01-29 11:47:15 +01:00
Matt Brown
326c47ef75
Fix implicit void closure not getting recognised 2021-01-29 11:47:14 +01:00
Matt Brown
73fc7d9491
Fix #4767 - rescan directly-affected class-interface relationships 2021-01-29 11:47:14 +01:00
orklah
48f55f3c3b
Allow int casts if the type comes from calculation (#4768) 2021-01-29 11:47:14 +01:00
Matt Brown
6f598464a9
Mixed array access should mark vars as used just in case 2021-01-29 11:47:14 +01:00
Matt Brown
dd20e838ce
Make more try vars potentially undefined
Fixes #4764
2021-01-29 11:47:14 +01:00
Matt Brown
ba1a076059
Fix interface property regression 2021-01-29 11:47:13 +01:00
Matt Brown
eba91f741b
Fix #4760 - prevent unpacked vars from breaking call when checking unitialised properties 2021-01-29 11:47:13 +01:00
Matt Brown
9c5cc02f90
Fix #4759 – don’t generate assertion when assigning to same-named variable 2021-01-29 11:47:13 +01:00
Matt Brown
1780541501
Ref #4753 - allow int literals to inform key type 2021-01-29 11:47:12 +01:00
Matt Brown
a20db1ce34
Fix #4751 - allow MethodSignatureMismatch to be overridable when info comes from docblock 2021-01-29 11:47:12 +01:00
Matt Brown
c54416090f
Don’t suggest a potential value that’s undefined
Fixes #4754
2021-01-29 11:47:12 +01:00
Matt Brown
f8e22ab7ac
Break out array_key_exists tests 2021-01-29 11:47:12 +01:00
Matt Brown
ace372bfb4
Fix #4752 - add property base assertions too 2021-01-29 11:47:12 +01:00
Matt Brown
7cc0f65f11
Don’t do new isset conversion on try-set vars 2021-01-29 11:47:11 +01:00