1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-04 18:48:03 +01:00
Commit Graph

7454 Commits

Author SHA1 Message Date
Brown
88e0811cdd Fix #4136 - allow union type properly 2020-09-07 14:08:56 -04:00
Brown
d174fc6f3f Improve fix 2020-09-07 13:19:37 -04:00
Brown
afce416bfb Fix #4136 - allow inference of callabe type param in union of callables 2020-09-07 12:56:47 -04:00
Brown
f78fbbe4c9 Fix #4146 - allow null checks on Iterator::current output 2020-09-07 11:40:36 -04:00
Brown
02a58f787b Fix #4148 - add Closure to scanned classes when arrow function is seen 2020-09-07 11:11:01 -04:00
Wouter Sioen
f3d3ef9074
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.
2020-09-07 10:54:29 -04:00
Alfred Bez
d9d8d28c2e
Document cacheDirectory behaviour (#4149) 2020-09-07 10:53:51 -04:00
orklah
8c7423505a
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
2020-09-06 19:36:47 -04:00
Matthijs Kooijman
3335b26cb4
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.
2020-09-06 19:31:49 -04:00
Matthew Brown
422271b2cf Prevent variables named "haystack" from receiving literal strings
cc @staabm
2020-09-05 00:35:48 -04:00
Matthew Brown
00df5cf875 Fix unnecessary var 2020-09-04 21:57:53 -04:00
Matthew Brown
3605eeee04 Support analysing preg_match_all args in reverse to infer matches type 2020-09-04 20:33:02 -04:00
Brown
681eff6dd4 Fix type 2020-09-04 18:35:19 -04:00
Brown
2895402269 Add asterisks 2020-09-04 18:32:51 -04:00
Brown
d3d8c4ed87 Hard code possible bit-shift values 2020-09-04 18:31:50 -04:00
Brown
4d82d3ddad Fix #4128 - improve understanding of preg_match_all 2020-09-04 18:10:14 -04:00
Brown
22fe7458d8 Break up large method 2020-09-04 17:45:22 -04:00
Brown
cf3e92410c Prevent crash when suppressing UndefinedTrait
Fixes #4130
2020-09-04 16:50:10 -04:00
Brown
f4c2edf40b Fix #4132 - ignore purity of $this when checking for initialisation 2020-09-04 16:46:20 -04:00
Hans-Helge Buerger
8203150a5f
Fix link to template annotations (#4125) 2020-09-04 16:26:52 -04:00
orklah
f66d57f19d
add native return types (#4116)
* add native return types

* remove redundant phpdoc
2020-09-04 16:26:33 -04:00
the-toster
e296abbabf
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
2020-09-04 16:24:14 -04:00
Brown
66251d8d59 Improve tests a little 2020-09-03 16:51:43 -04:00
Brown
68ebef2a2e Clean up immutable fix 2020-09-03 15:32:14 -04:00
Brown
8505ca2a23 Allow passing mutable object into immutable class to store reference 2020-09-03 15:28:09 -04:00
Brown
a4d6a845f8 Fix #4111 - ensure Closure::__invoke doesn’t break things 2020-09-03 00:13:55 -04:00
Brown
bd27e8b17b Fix #4109 - detect duplicate match condition 2020-09-02 20:08:09 -04:00
Brown
28a107e620 Fix #4112 - allow slashes in docblock tag names 2020-09-02 19:39:59 -04:00
orklah
73f6fcde48
Short list syntax (#4102)
* Short list syntax

* revert unrelated CS
2020-09-02 00:17:41 -04:00
Brown
6f92846fd6 Make reportInfo="false" flag better 2020-09-01 18:09:57 -04:00
Brown
8d790256e0 Revert trim changes 2020-09-01 17:42:11 -04:00
Brown
0804141d56 Fix type coercion 2020-09-01 17:23:43 -04:00
Brown
f105f6aca9 Fix Psalm errors 2020-09-01 13:21:24 -04:00
Brown
c2f492a4ca Add more accomodations for TPositiveInt 2020-09-01 13:03:57 -04:00
Brown
b5279cd7d4 Fix erroneous Closure::__invoke return type 2020-09-01 12:33:25 -04:00
orklah
c6ea274180
Config reportInfo to speed up analysis for big projects (#4095) 2020-09-01 09:22:05 -04:00
lhchavez
817779274e
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.
2020-09-01 09:21:32 -04:00
Bruce Weirdan
ffb316a9e6
Converted MissingPropertyType to property issue (#4099)
Fixes vimeo/psalm#2200
2020-09-01 09:21:03 -04:00
Bruce Weirdan
aa09a1c780
Use per-user cache folder (#4098)
Fixes vimeo/psalm#3869
2020-09-01 09:20:24 -04:00
orklah
6d36f8f5cc
Nullable strings (#4096) 2020-09-01 09:19:50 -04:00
Markus Staab
0280757b4a
Added more fine grained strpos stub (#4101)
* Added strpos stub

* Update CoreGenericFunctions.phpstub

* Update CoreGenericFunctions.phpstub
2020-09-01 09:17:57 -04:00
Brown
548ac1129c Fix crash with @var over echo 2020-09-01 00:12:12 -04:00
Brown
4f578b42b8 Fix exhaustiveness checks for const value 2020-08-31 23:23:24 -04:00
Brown
ab063e80d7 Keep going 2020-08-31 23:11:16 -04:00
Brown
3cdb13f7ab Fix issues 2020-08-31 23:03:36 -04:00
Brown
940459787a Catch unmatched matches 2020-08-31 22:59:47 -04:00
Brown
9935f647ab Fix some magic method calls when a return type provider exists 2020-08-31 18:56:45 -04:00
Brown
5905171b79 Fix api 2020-08-31 16:40:46 -04:00
Brown
e8148980ff Remove unused variable 2020-08-31 10:49:37 -04:00
Joe Hoyle
674392737d
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.
2020-08-31 10:05:22 -04:00