1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-13 17:57:37 +01:00
Commit Graph

8152 Commits

Author SHA1 Message Date
Bruce Weirdan
26978fcea1
Convert PHP errors / warnings / notices to exceptions (#5260)
* Sort uses

* Add ErrorHandler

* Use new error handler

* Drop old exception handler

* Suppress error-triggered exceptions during external autoload calls
2021-02-22 09:19:34 -05:00
Matt Brown
33c4c50652 Remove tests from CircleCI run 2021-02-22 09:18:11 -05:00
Matt Brown
6ba899e34e Only replace static type once 2021-02-22 00:25:13 -05:00
Bruce Weirdan
1f84fdf110
Fix vimeo/psalm#5255 (#5256) 2021-02-20 20:15:46 -05:00
Matt Brown
3106635953 Fix inference of conditional types when wildcard constant given 2021-02-20 12:21:52 -05:00
Matt Brown
e93e532e4e Fix #5239 - make replacement work in 7.1-7.3 2021-02-17 16:54:11 -05:00
Jérôme Gamez
b5ab0ff38b
Allow installation of netresearch/jsonmapper ^4.0 (#5240) 2021-02-17 16:37:43 -05:00
Jacob Dreesen
38d9234781
Fix some typos in the docs (#5245) 2021-02-17 16:37:19 -05:00
Matt Brown
9d6d3916da Revert "Prevent TypeParseException when dealing with nested template in assertion"
This reverts commit 196f24aac3.
2021-02-17 09:46:54 -05:00
Matt Brown
686f9fcaaa Don’t throw an exceptin when parsing invalid type 2021-02-16 20:24:16 -05:00
Matt Brown
196f24aac3 Prevent TypeParseException when dealing with nested template in assertion 2021-02-16 20:06:15 -05:00
orklah
7b24552534
Fix not always positive bit operations (#5233)
* Fix not always positive bit operations

* Fix not always positive bit operations

* add test
2021-02-15 23:10:42 -05:00
orklah
5191dac3fa
Introduce Virtual Nodes in order to differentiate real nodes in plugins (#5222) 2021-02-15 16:18:41 -05:00
Matt Brown
77feecb370 Apply the partial diff hack earlier 2021-02-15 15:32:35 -05:00
Matt Brown
09281aba25 Specify it’s a snippet 2021-02-15 14:05:54 -05:00
Matt Brown
bc13001533 Put cursor in first param position 2021-02-15 13:21:05 -05:00
Matt Brown
86ba3b02f6 Improve documentation further 2021-02-15 11:40:45 -05:00
Matt Brown
472fbf790b Update comment 2021-02-15 11:33:56 -05:00
Matt Brown
a115d311b6 Fix small things 2021-02-15 11:31:34 -05:00
Matt Brown
bfe8bf523c Add slash 2021-02-15 11:13:50 -05:00
Matt Brown
e60c333f2d Fix completion of Foo:: before an if statement 2021-02-15 11:12:04 -05:00
Matt Brown
b7792ab0b4 Fix static method call completion with variable assignment after 2021-02-15 00:45:39 -05:00
Matt Brown
bd6efd7cf2 Improve completion for namespaced classes
cc @joehoyle - this mainly allows us to get a correct list when the user starts typing Foo (without the new before it) inside a namespace
2021-02-14 23:25:13 -05:00
Matt Brown
6b53e79505 When there’s an irrecoverqable syntax error invalidate all issues in the file 2021-02-14 21:16:12 -05:00
Matt Brown
f738e19b04 Fix dupe keys 2021-02-14 20:23:40 -05:00
Matt Brown
1d5020f59f Only match functions where the first character has the same case as stub
cc @joehoyle - this prevents seeing lots of date_* functions when writing Date
2021-02-14 20:08:31 -05:00
Tarmo Leppänen
ede95105ac
Update CoreImmutableClasses.phpstub (#5218)
Fixes wrong parameter names - https://psalm.dev/r/8cfdb309d9
2021-02-14 12:07:39 -05:00
Matt Brown
8834a54934 Fix #5219 - invalidate cache for changed params 2021-02-14 12:07:15 -05:00
Vincent Langlet
a80d5b736b
Rename stub to avoid phpstorm conflict (#5213) 2021-02-13 18:42:34 -05:00
Matthew Brown
15a9eece13
Fix tagger 2021-02-13 16:45:13 -05:00
Matt Brown
00288c14c5 Fix param 2021-02-13 16:23:11 -05:00
Matt Brown
6fb7423c68 Fix #5211 - prevent infinite loop in template inference 2021-02-13 16:16:58 -05:00
Bruce Weirdan
7e61012359
Add linting to prevent embarassing errors (#5209)
* Added linting to prevent embarassing errors

Refs vimeo/psalm#5201

* Ignore unused requirements
2021-02-12 17:03:03 -05:00
Leighton Thomas
e476625c1e
Allow @psalm-type and @psalm-import-type to be used in extends/implements (#5205)
* Fix #4240 - allow type aliases to be used as type parameters

* Fix issues that phpcs found

* Fix #4240 - stop type aliases being everywhere in the same file

* Fix #4240- re-add stuff that was deleted unnecessarily
2021-02-12 17:02:24 -05:00
Alexandru Pătrănescu
8c0a5b7059
Remove the trailing comma for function call as minimum support version is 7.1 (#5201) 2021-02-12 17:00:58 -05:00
Alberto Piai
144bb37f76
Fix array_key_exists() with all int literal keys (#5197)
When checking code like the following:

```
<?php

function checkNegated(string $key): void {
    $arr = [
        0 => "foo",
        1 => "bar",
    ];

    if (!array_key_exists($key, $arr)) {
        printf("not found\n");
    }
}

function check(string $key): void {
    $arr = [
        0 => "foo",
        1 => "bar",
    ];

    if (array_key_exists($key, $arr)) {
        printf("found\n");
    }
}
```

the `if` in `checkNegated` would cause:

```
ERROR: RedundantCondition - 9:10 - Type string for $key is never =int(0)
```

This happens when the array keys are all int literals, but the "needle"
is a string.

`array_key_exists()` uses a loose equality comparison, but the generated
assertions for this specific case
(`AssertionFinder::getArrayKeyExistsAssertions`) was generating strict
equality clauses. This commit fixes it by changing the generated clause
from `=` to `~`.
2021-02-12 17:00:38 -05:00
Joe Hoyle
4077de2c93
Add completions for functions (#5128)
* Add completions for functions

Provide autocompletions in the LSP for all global functions and functions from namespaces used in the current context.

* Uncomment code

* PHPCS

* Simplify functions map

Co-authored-by: Matthew Brown <github@muglug.com>

* Switch to storing lowercase function string in array key

* Fix spacing

Co-authored-by: Matthew Brown <github@muglug.com>
2021-02-12 16:59:47 -05:00
Matt Brown
fa337375ae Fix #5198 - allow is_array check on templated 2021-02-12 12:32:24 -05:00
Matt Brown
c9ff1eee63 Fix syntax issue in PHP 7.2
Fixes #5206
2021-02-12 11:09:41 -05:00
Matt Brown
257a1ca672 Fix #5194 - don’t warn when redefining core class properties 2021-02-11 14:12:25 -05:00
Matthew Brown
ff689ccb0b
Don't push master 2021-02-11 14:06:10 -05:00
Matthew Brown
6ff2ddf46c
Add explicit env 2021-02-11 13:59:52 -05:00
Matthew Brown
33de34f0d5
Run action on every master push 2021-02-11 13:52:10 -05:00
Matthew Brown
e8bc05fe6c
Fix path 2021-02-11 13:47:19 -05:00
Matthew Brown
6e1df9c5cf
Add psalm/phar deployment 2021-02-11 13:46:45 -05:00
Matthew Brown
d6cdfbbe2b
Rename travis-deploy-phar.sh to github-deploy-phar.sh 2021-02-11 13:45:22 -05:00
Matthew Brown
423c83072f
Update Phar deployment to work with GitHub Actions 2021-02-11 13:45:04 -05:00
Matt Brown
044602a244 Fix #5196 - fix type before assigning default property values 2021-02-11 09:38:04 -05:00
Matt Brown
a45b5e2ae0 Add detail about non-empty-string 2021-02-10 12:20:36 -05:00
Matt Brown
ccdb29abfa Improve handling of property-mutating calls 2021-02-10 12:09:21 -05:00