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

7288 Commits

Author SHA1 Message Date
Brown
f20fae3950
Improve fix 2021-01-29 11:38:55 +01:00
Brown
fc0e3eee43
Fix #4136 - allow inference of callabe type param in union of callables 2021-01-29 11:38:55 +01:00
Brown
cbb97c42a8
Fix #4146 - allow null checks on Iterator::current output 2021-01-29 11:38:55 +01:00
Brown
e7730c2b34
Fix #4148 - add Closure to scanned classes when arrow function is seen 2021-01-29 11:38:55 +01:00
Wouter Sioen
6db268b56a
Add consistent array type for predefined constants (#4151)
When running psalm through https://github.com/Roave/infection-static-analysis-plugin, you get a lot of warnings

```
Warning: array_key_exists() expects parameter 2 to be array, null given in /Users/woutersioen/Sites/madewithlove/htaccess/vendor/vimeo/psalm/src/Psalm/Internal/Analyzer/Sta
tements/Expression/Fetch/ConstFetchAnalyzer.php on line 124
```

This is because the config is instantiated without calling the collectPredefinedConstants method, thus making this a null value.
By adding a default value, we make it not required to call this method before running psalm.
2021-01-29 11:38:55 +01:00
Alfred Bez
1d4bd84ce4
Document cacheDirectory behaviour (#4149) 2021-01-29 11:38:54 +01:00
orklah
1348e61afb
add native param types (#4137)
* add native param types

* redundant phpdoc

* add more param types and adds "?" to nullable types

* remove redundant phpdoc

* add more param types and remove redundant phpdoc

* add more param types and remove redundant phpdoc
2021-01-29 11:38:54 +01:00
Matthijs Kooijman
ab5850364d
Fixes to LSP protocol (#4143)
* Fix missing parameter in LSP textDocument.didChange

This parameter was accepted, but not documented. Since the JSON-RPC
Dispatcher looks at the comments for type information, it would fail
to find info and produce:

    PHP Notice: Undefined offset: 1 in vendor/felixfbecker/advanced-json-rpc/lib/Dispatcher.php on line 141

Combined with issue #4142, this ended up violating the protocol.

* Ignore out-of-project files in textDocument.completion

Other methods, such as didOpen and didChange already checked for this,
but completion did not. This would lead to funny behaviour, where
triggering completion would cause the file to be analyzed, but only
using the on-disk state. And any changes to the file would never be
analyzed.

This ignores out-of-project files for completion, too.
2021-01-29 11:38:54 +01:00
Matthew Brown
274d19c649
Prevent variables named "haystack" from receiving literal strings
cc @staabm
2021-01-29 11:38:54 +01:00
Matthew Brown
3912d31365
Fix unnecessary var 2021-01-29 11:38:54 +01:00
Matthew Brown
4dc045f30d
Support analysing preg_match_all args in reverse to infer matches type 2021-01-29 11:38:54 +01:00
Brown
72f64692ae
Fix type 2021-01-29 11:38:54 +01:00
Brown
9c92df5a58
Add asterisks 2021-01-29 11:38:54 +01:00
Brown
f7474faff2
Hard code possible bit-shift values 2021-01-29 11:38:54 +01:00
Brown
4583467325
Fix #4128 - improve understanding of preg_match_all 2021-01-29 11:38:53 +01:00
Brown
f253e00989
Break up large method 2021-01-29 11:38:53 +01:00
Brown
866bf583c4
Prevent crash when suppressing UndefinedTrait
Fixes #4130
2021-01-29 11:38:53 +01:00
Brown
be3d130965
Fix #4132 - ignore purity of $this when checking for initialisation 2021-01-29 11:38:53 +01:00
Hans-Helge Buerger
7e6a3c7b55
Fix link to template annotations (#4125) 2021-01-29 11:38:53 +01:00
orklah
61512da144
add native return types (#4116)
* add native return types

* remove redundant phpdoc
2021-01-29 11:38:53 +01:00
the-toster
3ff4d0fa3d
Add option to show link to source in console output (#4085)
* add option to change console output for PhpStorm suitable format, so filenames become links, closes #3271

* fix code style

* rename option to php-storm-format

* replace flag with new report format

* fix code style
2021-01-29 11:38:53 +01:00
Brown
f9d6b9d7c1
Improve tests a little 2021-01-29 11:38:53 +01:00
Brown
06a9ae9c6c
Clean up immutable fix 2021-01-29 11:38:52 +01:00
Brown
4d0b91fcd2
Allow passing mutable object into immutable class to store reference 2021-01-29 11:38:52 +01:00
Brown
5ad69e48ba
Fix #4111 - ensure Closure::__invoke doesn’t break things 2021-01-29 11:38:52 +01:00
Brown
e3d7d0315a
Fix #4109 - detect duplicate match condition 2021-01-29 11:38:52 +01:00
Brown
58cda0a003
Fix #4112 - allow slashes in docblock tag names 2021-01-29 11:38:52 +01:00
orklah
becac547fb
Short list syntax (#4102)
* Short list syntax

* revert unrelated CS
2021-01-29 11:38:52 +01:00
Brown
400ac0f759
Make reportInfo="false" flag better 2021-01-29 11:38:52 +01:00
Brown
bc040945ca
Revert trim changes 2021-01-29 11:38:52 +01:00
Brown
3fcc28618e
Fix type coercion 2021-01-29 11:38:52 +01:00
Brown
fb456d2e85
Fix Psalm errors 2021-01-29 11:38:51 +01:00
Brown
b94de0c8b8
Add more accomodations for TPositiveInt 2021-01-29 11:38:51 +01:00
Brown
73770f4268
Fix erroneous Closure::__invoke return type 2021-01-29 11:38:51 +01:00
orklah
cf590d13b0
Config reportInfo to speed up analysis for big projects (#4095) 2021-01-29 11:38:51 +01:00
lhchavez
d1a42f6c69
Add null as a possible type parameter to strval (#4100)
https://www.php.net/manual/en/language.types.string.php#language.types.string.casting mentions

> `NULL` is always converted to an empty string.

Which seems to indicate that it is a valid argument for it.

As opposed to stringifying other types (like arrays), `strval(null)` does not cause a warning in PHP.
2021-01-29 11:38:51 +01:00
Bruce Weirdan
ee029a646b
Converted MissingPropertyType to property issue (#4099)
Fixes vimeo/psalm#2200
2021-01-29 11:38:51 +01:00
Bruce Weirdan
529a19db11
Use per-user cache folder (#4098)
Fixes vimeo/psalm#3869
2021-01-29 11:38:51 +01:00
orklah
7023c592be
Nullable strings (#4096) 2021-01-29 11:38:51 +01:00
Markus Staab
c2ee9700b0
Added more fine grained strpos stub (#4101)
* Added strpos stub

* Update CoreGenericFunctions.phpstub

* Update CoreGenericFunctions.phpstub
2021-01-29 11:38:51 +01:00
Brown
472c2839ad
Fix crash with @var over echo 2021-01-29 11:38:51 +01:00
Brown
8611f99e09
Fix exhaustiveness checks for const value 2021-01-29 11:38:50 +01:00
Brown
47c1d15afd
Keep going 2021-01-29 11:38:50 +01:00
Brown
d7cc68cb09
Fix issues 2021-01-29 11:38:50 +01:00
Brown
a0a7f8a98b
Catch unmatched matches 2021-01-29 11:38:50 +01:00
Brown
b62719c9c8
Fix some magic method calls when a return type provider exists 2021-01-29 11:38:50 +01:00
Brown
e34c9ab812
Fix api 2021-01-29 11:38:50 +01:00
Brown
a09e23d118
Remove unused variable 2021-01-29 11:38:50 +01:00
Joe Hoyle
0dbd7f97f0
Include variadic and pass-by-ref params in generated stubs (#4091)
When generating stubs, params that are passed by ref or variadic don't get added to the generated code stub output.
2021-01-29 11:38:50 +01:00
Alfred Bez
6db3f45114
InvalidClass is also reported if the casing in the namespace is wrong (#4090) 2021-01-29 11:38:50 +01:00