1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-05 20:48:45 +01:00
Commit Graph

4993 Commits

Author SHA1 Message Date
Brown
d868710b2b Fix handling of built arrays 2020-04-08 16:11:11 -04:00
Brown
43287812ce Suppress issue 2020-04-08 14:49:23 -04:00
Brown
b2e010b431 Fix #3102 - identify issues with possibly-mixed output 2020-04-08 14:07:09 -04:00
Brown
a117c48bb2 Add back nuance to error messages for conflicting type bounds 2020-04-08 12:37:46 -04:00
lhchavez
be87bb7300
Support intersection types for object-like arrays (#3064)
This change allows expressing the intersection of multiple object-like
arrays. The resulting type will contain the (merged via intersection)
properties of all the object-like arrays involved in the intersection.

This should allow to express the resulting type of an `array_merge()`
operation, which is tricky to do in the context of a templated type.
2020-04-08 09:35:53 -04:00
Marco Pivetta
0d1e893151
Added ReflectionProperty#getType() to psalm type stubs for PHP 7.4+ (#3093) 2020-04-08 09:04:49 -04:00
Bruce Weirdan
0161f25ef6
Bump callmap version to 7.4 (#3094)
The content of the callmap corresponds to 7.4, but internally the
version was set to 7.3. This caused 7.4 delta to be ignored, and 7.4
types to be used for 7.3.
2020-04-08 01:04:34 -04:00
Brown
2d4381eb4e Fix #3096 - forget clauses in context after call 2020-04-08 01:03:37 -04:00
Brown
5db9f0e8c0 Fix #2722 - change behaviour to inherit params to match just on position
And not name + position
2020-04-08 00:54:17 -04:00
Brown
a79122256c Use conditional return type for range 2020-04-07 19:59:20 -04:00
Brown
69045daea9 Convert a bunch of custom-handled functions to conditional stubbed ones 2020-04-07 16:48:29 -04:00
Brown
550ba0a4c9 Compare to real outer context, not if one
Fixes #3091
2020-04-07 15:13:17 -04:00
Brown
61c979136f Fix #3091 - simplify elseif negated clauses where possible 2020-04-07 13:04:24 -04:00
Brown
41b165c096 Remove stray comma 2020-04-07 11:17:52 -04:00
Brown
067104e170 Fix #3084 - keep track of upper and lower bounds of inferred template types 2020-04-07 00:13:56 -04:00
m0003r
11edb22c72
Implement @psalm-trace annotation, fixes #3079 (#3080) 2020-04-06 12:42:22 -04:00
Brown
26fcde10fa Fix #3081 - use correct property type for ownerDocument 2020-04-06 12:41:18 -04:00
Brown
387bc02e71 Fix #3082 - merge intersection types when replacing template types 2020-04-06 10:19:36 -04:00
Brown
27032e875f Ensure Generator return types are enforced for a function using yield from 2020-04-06 09:23:13 -04:00
Brown
aca84e6f96 Fix inconsistency in partial template matching 2020-04-05 18:40:25 -04:00
Bruce Weirdan
5be4cc2582
Expose queueClassLikeForScanning (#3070) 2020-04-05 17:25:47 -04:00
Mikko Pesari
166b4d04a5
ZipArchive::open() does not return resource (#3067) 2020-04-05 14:28:01 -04:00
m0003r
c8e7e43bb0
Type::getString already respects maxStringLength config, there is no need to additional checks (#3069) 2020-04-05 14:27:02 -04:00
Matthew Brown
e34a3a9281 Fix handling of old amp 2020-04-05 01:14:26 -04:00
Matthew Brown
4191f7a259 Remove unnecessary annotation 2020-04-05 00:54:31 -04:00
Matthew Brown
f0b4533ba4 Use same sort order regardless of OS 2020-04-05 00:37:46 -04:00
Matthew Brown
05f7c9757a Write debug to stdout 2020-04-05 00:28:55 -04:00
Matthew Brown
6cea065bca Attempt to export file order in Linux CI 2020-04-05 00:10:50 -04:00
Matthew Brown
4c52032491 Use mixed if yield type not known 2020-04-04 23:54:41 -04:00
Matthew Brown
120595f480 Clone a little earlier 2020-04-04 23:45:38 -04:00
Brown
c6afa0fef6 Be more explicit about references 2020-04-04 21:48:14 -04:00
Brown
003212fa15 Make sure to record class references even when we don’t know whether the class exists 2020-04-04 21:47:35 -04:00
Brown
81534bbe18 Fix possibly null issue 2020-04-04 18:57:33 -04:00
Brown
2930eb3f99 Prevent storing references to classes from within those classes 2020-04-04 18:42:14 -04:00
Brown
690b29762e ZipArchive::open can return true cc @LeSuisse 2020-04-04 17:45:26 -04:00
Brown
6b25b33d81 Revert "Stub out str_replace types"
This reverts commit 94fefde376.
2020-04-04 17:38:34 -04:00
Brown
649a33b27b Remove json_decode stub, because it introduces too many false-positives 2020-04-04 17:23:15 -04:00
Brown
1bf1a6e46b Accept partial match of template type 2020-04-04 17:14:33 -04:00
Brown
c82834ebe4 Also add back MixedAssignment suppression 2020-04-04 12:15:53 -04:00
Brown
eacb3d7aa0 Add back possibly undefined docblock class suppression 2020-04-04 12:14:53 -04:00
Brown
4b36c4e4bf Add stub for json_encode 2020-04-04 11:18:24 -04:00
Brown
4aae4fc631 Add slash 2020-04-04 11:16:26 -04:00
Brown
fca6585f6e Be more lenient when inside isset 2020-04-04 11:15:13 -04:00
Brown
94fefde376 Stub out str_replace types 2020-04-04 11:05:13 -04:00
Brown
b73b75f1a1 Allow newlines in shortcut version of return type provider 2020-04-04 11:04:00 -04:00
Brown
f3d278609e Remove blank line 2020-04-04 10:14:32 -04:00
Brown
989269a6f6 Ignore issue 2020-04-04 09:39:39 -04:00
Brown
56cc5fb611 Allow shortcut for specifying conditional template types 2020-04-04 09:31:12 -04:00
Brown
eef4feea0b Throw TypeParseTreeException if template type not recognised 2020-04-04 09:26:19 -04:00
Brown
c0e573ab6a Try harder to understand templated array_map callable array
Fixes #3039
2020-04-03 16:53:56 -04:00
Brown
4f07a8fc5d Fix false positive in trait comparison in 7.4
Fixes #3042
2020-04-03 15:11:37 -04:00
Brown
3c9ec90919 Fix deprecated call 2020-04-03 14:56:11 -04:00
Brown
08594cf712 Always be cloning 2020-04-03 13:56:03 -04:00
Matthew Brown
ecac9d56c0 Fix #3061 - prevent array_key_exists from completely changing type 2020-04-03 08:05:21 -04:00
Brown
af4a7cabe9 Fix #3057 and add support for @psalm-yield annotation 2020-04-02 22:38:10 -04:00
Brown
63b35fc889 Fix #3058 - use value for generator inference 2020-04-02 20:37:09 -04:00
Brown
72104a52ad Improve file invalidation when using --diff mode 2020-04-02 17:18:04 -04:00
LeSuisse
3ecd6bbd00
Fix return type of \zip_open() (#3046)
This function can return an int [0] or false [1] in case of error.

The return value of ZipArchive has also been fixed, it returns either a
boolean or an int [2][3].

Close vimeo/psalm#3209.

[0] https://github.com/php/php-src/blob/php-7.4.4/ext/zip/php_zip.c#L1176
[1] https://github.com/php/php-src/blob/php-7.4.4/ext/zip/php_zip.c#L1160
[3] https://github.com/php/php-src/blob/php-7.4.4/ext/zip/php_zip.c#L1483
[4] https://github.com/php/php-src/blob/php-7.4.4/ext/zip/php_zip.c#L1478
2020-04-01 17:12:45 -04:00
Brown
fa43d3a8ff Don’t check stub files for non-unused-code checks 2020-04-01 16:31:28 -04:00
Brown
ba8e5e8209 Fix diff file load order 2020-04-01 15:57:25 -04:00
Brown
943d10854d Clear existing issues before re-adding 2020-04-01 15:30:35 -04:00
Brown
04a49102ec Small test improvements 2020-04-01 12:56:32 -04:00
Brown
fa28d767fc Prevent a templated type from hitting covariance checks 2020-04-01 10:53:40 -04:00
Brown
5876635d6d Always be clonin 2020-04-01 00:45:29 -04:00
Brown
001f064bd4 Don’t modify contents of IssueBuffer in baseline before caching 2020-03-31 23:38:58 -04:00
Brown
1a678068b7 Consolidate conditionals 2020-03-31 23:05:20 -04:00
Brown
fc06250678 Add number_format slash 2020-03-31 22:52:39 -04:00
Brown
8328c1d3aa Fix build 2020-03-31 22:32:48 -04:00
Matthew Brown
66dd794101 Add return function 2020-03-31 22:26:48 -04:00
Brown
4ef7cb50a5 Make Psalm faster when there aren’t any changes whatsoever 2020-03-31 22:22:34 -04:00
Brown
d5f43e52e7 Fix coercion 2020-03-31 16:57:08 -04:00
Brown
191a3febac Return all cached errors not in analyzed files 2020-03-31 16:56:22 -04:00
Brown
cc38f25ed7 Don’t remove non-method issues 2020-03-31 16:33:05 -04:00
Brown
da729cfbc6 Don’t check params when mutations are being collected 2020-03-31 15:49:43 -04:00
Brown
ddc8c50d2a Prevent some inheritance issues 2020-03-31 11:28:36 -04:00
Brown
687ce87995 Ensure issues from unused classes & params is always saved to cache 2020-03-31 09:56:27 -04:00
Matthew Brown
b46e147735 Add some limits on switch case assertion calculation
Ref #2728
2020-03-30 00:20:00 -04:00
Matthew Brown
4fe36a21a4 Use array_pop, not array_shift, because it’s a bit faster 2020-03-29 19:47:40 -04:00
Matthew Brown
1b88316c51 Convert method from recursive to inline 2020-03-29 19:42:22 -04:00
Matthew Brown
d84c5db7ae Prevent complexity explosion a little earlier 2020-03-29 17:12:10 -04:00
Matthew Brown
82197f1761 Add many slashes 2020-03-29 15:56:45 -04:00
Matthew Brown
ce3532490c Add profiling for analysing slow methods 2020-03-29 15:42:00 -04:00
Matthew Brown
194f02507d Allow conditional types to reference class constants 2020-03-29 13:37:37 -04:00
Matthew Brown
1b2017e4f4 Add slash 2020-03-29 10:44:38 -04:00
Matthew Brown
5ad55ae693 Fix type inference on simple conditional function calls 2020-03-29 10:42:57 -04:00
Matthew Brown
0e919a0696 Allow arithmetic on simple templated types 2020-03-29 10:34:46 -04:00
Matthew Brown
f097b9ae6c Add better reconciliation of ints from array keys 2020-03-29 10:22:22 -04:00
Matthew Brown
788da0680e Allow var_export userland implementation 2020-03-29 10:19:09 -04:00
Matthew Brown
1439c90789 Add support for conditional checks on literal ints & strings 2020-03-29 10:02:24 -04:00
Matthew Brown
7fdccc0439 Fix #3014 - change constant class access rules 2020-03-29 09:47:29 -04:00
Matthew Brown
39f7296670 Fix #2191 - allow inheritance from stub-only files 2020-03-29 00:13:01 -04:00
Matthew Brown
e85d22f004 Fix #3033 - allow __invoke on unions with non-objects 2020-03-28 23:41:05 -04:00
Matthew Brown
5395183837 Use more accurate means of determining whether function did return 2020-03-28 23:37:42 -04:00
Matthew Brown
7195ea6842 Fix #3030 - don’t suggest return types can do more 2020-03-28 23:15:54 -04:00
Brown
1c8581f4db Add more fields to API existence checks 2020-03-28 21:39:44 -04:00
Matthew Brown
93735712f0 Fix #3032 - always replay docblock issues when analysing files 2020-03-28 19:54:55 -04:00
Matthew Brown
86a89b2d27 Fix #3034 - expand out while expressions for more accurate variable initialisation 2020-03-28 18:22:08 -04:00
Matthew Brown
de6aee32d1 Fix #3035 - improve templating for property assignments 2020-03-28 17:18:21 -04:00
Matthew Brown
47c1470e3b Refactor reference checks to use more appropriate properties 2020-03-28 16:30:56 -04:00
Brown
cc548a45fa Improve detection of unused classes 2020-03-28 14:45:58 -04:00