Brown
a2e1dfd64e
Fix #2667 - don’t check inherited signature return types for accuracy
2020-01-21 11:07:44 -05:00
Brown
36f5c51f01
Allow unpacking of list args with known elements
2020-01-21 10:13:37 -05:00
Matthew Brown
504de0a9ce
Catch more UnanalyzedFileExceptions to prevent LSP crash
...
Fixes #2633
2020-01-20 23:27:56 -05:00
orklah
f2802b6862
fix typo ( #2663 )
2020-01-20 23:19:48 -05:00
Matthew Brown
db7b537bd1
Fix missing class
2020-01-17 13:19:57 -05:00
Matthew Brown
8ccd4860e3
fclose should treat resource as passed-by-reference
2020-01-17 13:12:00 -05:00
Matthew Brown
1c8af2fdc7
Fix #2658 - catch exceptions thrown inside catch
2020-01-17 12:05:37 -05:00
Matthew Brown
7f093ca8ed
Fix #2626 - allow assertions on resource types
...
Also fixes #2266
2020-01-17 11:55:16 -05:00
Matthew Brown
1697115861
Only set from docblock if not mixed
2020-01-17 10:34:13 -05:00
Matthew Brown
a840743015
Fix #2625 - set template as type from docblock
2020-01-17 10:27:00 -05:00
Matthew Brown
b582c49f51
Fix #2645 - add workarounds for some edgecases
2020-01-17 10:25:05 -05:00
Matthew Brown
2c48d42904
Allow destructuring of callable array
...
Fixes #2653
2020-01-17 10:02:58 -05:00
Matthew Brown
471d7610f0
Fix #2644 - improve type inference of autoloaded constants
2020-01-17 09:52:43 -05:00
Matthew Brown
24e1d5446c
Fix #2642 - merging two explicit lists is still a list
2020-01-17 09:31:08 -05:00
Matthew Brown
adf230e873
Fix #2636 - allow non-empty-list in assert annotation
2020-01-17 09:06:34 -05:00
Alexander Wühr
f9560009ca
Allow false
as \PDO::fetch return type ( #2647 )
2020-01-17 08:48:08 -05:00
Matthew Brown
c50fa27025
Identify trait method access level violations as less serious
2020-01-17 00:28:08 -05:00
Matthew Brown
be6cd0f8c6
Fix generation of files in non-psr directory
2020-01-16 23:24:53 -05:00
Matthew Brown
257ebfd205
Improve trait method mismatch failure rules
2020-01-16 22:36:30 -05:00
Bruce Weirdan
17857163fc
Modular config files ( #2635 )
...
This change introduces an option to have the configuration split across
several files using standard XInclude tags. This may be useful for more
complex configs, or to include auto-generated parts into a manually
written config file.
2020-01-16 15:57:52 -05:00
Tyson Andre
6612bb74a1
Use floor() instead of round() for long progress percentage ( #2634 )
...
PHPUnit and many other applications use floor.
Otherwise, the second-last lines would show 100% despite not being
complete.
```
\sprintf(
' %' . $this->numTestsWidth . 'd / %' .
$this->numTestsWidth . 'd (%3s%%)',
$this->numTestsRun,
$this->numTests,
\floor(($this->numTestsRun / $this->numTests) * 100)
)
```
2020-01-16 15:57:09 -05:00
Alfred Bez
619ced135b
fixed RarArchive signatures ( #2641 )
2020-01-16 11:01:14 -05:00
Pavel Batečko
1b0eba74fd
Allow NULL $contextnode in DOMXPath::query() (again) ( #2637 )
2020-01-16 08:35:36 -05:00
Brown
d434f7fb9d
Add list identification for late-resolved constants
...
Fixes #2624
2020-01-15 11:54:01 -05:00
Brown
1b551b805b
Fix #2627 - infer arrow function effects for array_filter
2020-01-15 11:40:49 -05:00
Brown
c07fd13f2b
Fix #2623 - prevent crash when combining class strings in constants
2020-01-15 11:26:58 -05:00
Matthew Brown
389af1bfc7
Fix #2618 setting list param from docblock
2020-01-14 22:46:19 -05:00
Matthew Brown
4a03c4aedd
Fix impossible isset checks
2020-01-14 21:54:02 -05:00
Matthew Brown
c3edbdbc19
Allow checking $_SESSION for null without altering type
2020-01-14 21:51:04 -05:00
Matthew Brown
1202ba45ef
Fix blank line
2020-01-14 18:51:46 -05:00
Brown
df8f2085f0
Change constant type to be more forgiving
2020-01-14 18:39:15 -05:00
Brown
de7a870509
Add better mixed check
2020-01-14 18:38:02 -05:00
Brown
0f6b61d62d
Clone isset type before contradicting
2020-01-14 18:28:32 -05:00
Brown
3fd70a9c88
Only set if non-null
2020-01-14 17:03:58 -05:00
Brown
adc658901a
Improve inference of constant() calls
2020-01-14 16:56:09 -05:00
orklah
b09869b7c6
callmap changes ( #2612 )
...
* set_error_handler return the same type as its param
* a constant can only have scalars, array of scalars or null
* a constant can only have scalars, array of scalars or null
2020-01-14 16:55:25 -05:00
Brown
1ccababcb7
Track list-ness of constant arrays
...
Fixes #2621
2020-01-14 12:13:41 -05:00
Brown
c79a8ecbc2
Fix dumb
2020-01-14 10:55:07 -05:00
Brown
fcc7d896a0
Commit actual fix
2020-01-14 10:53:54 -05:00
Matthew Brown
42073a800a
Remove unevaluated code
2020-01-14 00:55:56 -05:00
Matthew Brown
e1daf26202
Improve support for null coalesce checks
2020-01-14 00:53:38 -05:00
Matthew Brown
b0073d4558
Fix #2614 - prevent isset($string)
2020-01-13 21:27:09 -05:00
Matthew Brown
ef3c2d30c9
Fix #2613 - allow docblock-defined object-like as non-empty-array
2020-01-13 21:05:30 -05:00
Brown
5d15ef062e
Fix phpcs
2020-01-13 17:28:00 -05:00
Brown
6c771e5dd3
Prevent crashes under PHP 7.3 on macs in Language server mode
2020-01-13 16:50:09 -05:00
Brown
eb7c3dcc11
Fix #2611 - fix combination of inferred closure return types
2020-01-13 10:23:58 -05:00
Tyson Andre
7a65eb1da9
Fix required parameter after optional in Psalm ( #2609 )
...
Psalm supports php 7.1 at minimum, so this is no longer necessary.
2020-01-12 12:46:08 -05:00
Тальгат Хайруллов
39a822759d
#2579 TooManyArguments was triggered if the variadic function declared at the autoloader file. Fixed. ( #2580 )
2020-01-12 11:33:38 -05:00
Mark A. Hershberger
fbc2c21c9b
bug: #2103 -- throw error if directories are given instead of file ( #2605 )
...
* bug: #2103 -- throw error if directories are given instead of file
* use global is_dir
2020-01-12 10:53:12 -05:00
Pavel Batečko
87debfe954
Support suppressing all issues with @psalm-suppress all ( #2584 )
...
* Support suppressing all issues using @psalm-suppress all
* Document @psalm-suppress all
2020-01-12 10:38:32 -05:00
SignpostMarv
9b2ceba2db
removing trailing comma in function call, not detectable by php-cs-fixer re: FriendsOfPHP/PHP-CS-Fixer#4135 ( #2597 )
2020-01-11 16:00:38 -05:00
Matthew Brown
39f0def7bf
Add null check
2020-01-11 15:59:28 -05:00
Matthew Brown
131fb97663
Fix #2594 - forbid isset check on null
2020-01-11 15:58:40 -05:00
Matthew Brown
7b887efc2c
Fix #2547 - use better conditional check
2020-01-11 12:33:58 -05:00
Matthew Brown
bd846123ce
Fix #2560 - handle special case of array_filter on single-element array
2020-01-11 11:54:29 -05:00
Matthew Brown
40406c7ff0
Fix #2576 - remove literal key values if array_filter has no args
2020-01-11 11:48:22 -05:00
Matthew Brown
85966d8a21
Fix #2577 - fix list cast to array
2020-01-11 11:42:09 -05:00
Matthew Brown
2ae85f7c8b
Fix #2593 - don’t crash with bad @param-out annotation
2020-01-11 10:47:31 -05:00
Matthew Brown
1b7b71f2ca
Fix #2591 - always remove changed var from parent clauses
...
Even when there are no child clauses due to an assertion
2020-01-10 23:46:45 -05:00
Brown
5ddcab1003
Fix subtraction of string from numeric
2020-01-10 18:05:45 -05:00
Brown
df8e3845e5
Fix #2590 - allow null argument for DateTime when no second arg passed
2020-01-10 15:53:15 -05:00
Brown
03030d4887
Fix #2583 - don’t convert scalar terms in @method annotations
2020-01-10 11:29:18 -05:00
Brown
2c7197ab4b
Fix #2578 - improve inference of functions beginning with assert
2020-01-09 15:45:17 -05:00
Brown
bd9142f131
Fix #2574 - remove assertions after increment
2020-01-09 11:51:56 -05:00
Matthew Brown
bd7f342491
Add constant definitions
2020-01-08 23:48:42 -05:00
Brown
55bf6333af
Fix addition of Psalm classes
2020-01-08 17:47:30 -05:00
Brown
eb7a8ae8d2
Fix sorting
2020-01-08 17:43:49 -05:00
Brown
6b43c41ea3
Add file-defined functions
2020-01-08 17:40:50 -05:00
Brown
7482b9e56f
Emit all stubs discovered by Psalm during analysis
...
Fixes #827
2020-01-08 17:23:40 -05:00
Matthew Brown
146dd461ef
Fix #2569 - improve template return type checks
2020-01-07 21:08:13 -05:00
Brown
adfb488986
Fix #2565 - prevent infinite recursion when analysing file with @mixin annotations that reference each other
2020-01-07 17:06:44 -05:00
Brown
55aceb2b6d
Add if
2020-01-07 13:18:24 -05:00
Brown
024ec38aa1
Fix #2567 - still remap params in some circumstances
2020-01-07 13:01:16 -05:00
Pavel Batečko
702ca34c41
Improve array function types ( #2566 )
...
* Improve sorting function out types
* Improve return types of array_diff_assoc(), array_intersect_assoc()
* Fix versionCompareAsCallable test
2020-01-07 11:40:23 -05:00
Matthew Brown
90d6b73fd8
Fix taint analysis of binary operations
2020-01-07 08:50:31 -05:00
Matthew Brown
8f3d325bbc
Fix comparison
2020-01-07 02:24:21 -05:00
Matthew Brown
1f777bec0e
Capture non-empty-string from concat more effectively
2020-01-07 01:44:12 -05:00
Matthew Brown
ce5917c6fb
Add better string detection
2020-01-07 01:21:29 -05:00
Matthew Brown
b351df0483
Fix typo
2020-01-07 01:06:51 -05:00
Matthew Brown
2cd7f74efb
Fix #2554 - treat templated class string as proper subtype of class string
2020-01-07 00:39:16 -05:00
Matthew Brown
eaae84c7f8
Fix concat emptiness
2020-01-06 21:30:19 -05:00
Matthew Brown
cc9e0fab67
Prevent string being used in non-empty-string location
2020-01-06 20:57:57 -05:00
Brown
07aaa3f99d
Don’t complain about method mismatches for @mixin
2020-01-06 18:04:28 -05:00
Dusk
63dea52e76
Add support for most PDOStatement fetch modes ( #2553 )
...
Flags like PDO::FETCH_CLASSTYPE and PDO::FETCH_PROPS_LATE aren't
supported yet.
(in re. #2529 )
2020-01-06 16:41:52 -05:00
Brown
5c45221bdc
Improve reconciliation of ||
...
Ref #2426
2020-01-06 16:37:44 -05:00
Brown
578b90c2da
Improve naming of variables
2020-01-06 16:03:17 -05:00
Brown
49d9dd12b6
Change $op_ to $right in a few more places
2020-01-06 15:44:48 -05:00
Brown
9149f468e6
Change var name
2020-01-06 15:42:06 -05:00
Brown
bd2cbf28e3
Add parent issue type for UndefinedMagicMethod
2020-01-06 14:24:20 -05:00
Brown
083fbc55e1
Add more specific UndefinedMagicMethod issue
2020-01-06 14:23:33 -05:00
Brown
8e786a17dd
Deal with a reconciled var more accurately
...
Ref #2426
2020-01-06 11:09:07 -05:00
Brown
cd0d118463
Fix count
2020-01-06 10:40:46 -05:00
Matthew Brown
8c71da75af
Add fix to more places
2020-01-06 09:47:14 -05:00
Matthew Brown
a212375343
Fix possibly bad property fetch
2020-01-06 09:21:42 -05:00
Matthew Brown
137650fe6f
Fix #2556 - don’t remap params if they’ve already been remapped once
2020-01-06 09:18:16 -05:00
Matthew Brown
4888ae67a6
Fix #2558 - remove wedge clauses when they’re the only thing left
2020-01-06 08:56:50 -05:00
Matthew Brown
4e85967184
Fix tests
2020-01-05 21:58:18 -05:00
Matthew Brown
867511d7fd
Use more specific error magic properties
2020-01-05 21:07:26 -05:00
Matthew Brown
f48ecda295
Fix ref
2020-01-05 18:53:24 -05:00
Matthew Brown
2fb5a9d326
Few small improvements
2020-01-05 18:37:07 -05:00