Brown
b148221e18
Always detect return type mismatches from docblock parents
2021-01-29 11:38:56 +01:00
Brown
539bc13cb3
Fix some signatures
2021-01-29 11:38:55 +01:00
Brown
8ae7c27244
Fix real projects bug
2021-01-29 11:38:55 +01:00
Brown
2facbe55dc
Fix #4136 - allow union type properly
2021-01-29 11:38:55 +01:00
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