Niclas van Eyk
0261024aa6
Initial proposal for psalm-require-{extends, implements} ( #4361 )
...
* initial implementation of psalm-require-extends
* Added @psalm-require-implements
* Added shortcode for ExtensionRequirementViolation
* Docs & cofig entries for @pasalm-require-{implements,extends}
* Added requirement violations to issues.md
2020-10-19 15:08:18 -04:00
Matt Brown
32787169d7
Fix language server
2020-10-19 13:13:50 -04:00
Matt Brown
1a6b684993
Fix #4366 - possibly-undefined vars in finally block should not error
2020-10-19 09:56:38 -04:00
Matt Brown
fe294a4dc0
Don’t overwrite true flag
2020-10-18 01:24:36 -04:00
Matt Brown
a6c7336c69
Fix bad replacement
2020-10-18 00:54:07 -04:00
Matt Brown
0897abf5cb
Be more explicit about negation
2020-10-18 00:39:43 -04:00
Matt Brown
3c29ffd0b7
Ignore just-coerced vars
2020-10-17 23:35:24 -04:00
Matt Brown
b646414304
Prevent unnecessary assignments
2020-10-17 18:44:42 -04:00
Matt Brown
055fe551c1
Suppress errors from fake statements
2020-10-17 18:35:55 -04:00
Matt Brown
9502e51a08
Fix reversed negation check
2020-10-17 17:46:00 -04:00
Matt Brown
c0f6afbd87
Improve binary op || analysis for chain
2020-10-17 17:16:47 -04:00
Matt Brown
559abb7b6a
Fix style
2020-10-17 14:50:14 -04:00
orklah
ceaaa39ec3
improve phpdoc ( #4352 )
2020-10-17 12:36:44 -04:00
Matt Brown
9f29e77adc
Fix #4354 - allow assignments on RHS of || in if conditional
2020-10-17 12:29:57 -04:00
Matt Brown
be1cd5275e
Fix #4349 - improve types for suggested unions
2020-10-16 17:56:31 -04:00
Matt Brown
234eae6ad0
Fix algebra more
2020-10-16 11:17:52 -04:00
Matt Brown
083cc29c04
Fix #4347 - fix combinatorial expansion when negating if conditions
2020-10-16 10:23:15 -04:00
orklah
ffe7874906
Misc improvements ( #4314 )
...
* extract the operation out of the loop when possible
* remove unnecessary interfaces when already inherited in parent
* simplify expressions
* avoid using alias functions
* redundant phpdoc
* unused imports
2020-10-15 13:23:35 -04:00
Matt Brown
b69e28f26a
Fix default value
2020-10-15 13:20:42 -04:00
Matt Brown
8d2e88ef41
Fix #4333 - don’t get tripped up on try with no catches
2020-10-15 10:15:55 -04:00
Matt Brown
8a2983e5e9
Fix #4336 - don’t merge sources twice for null coalesce
2020-10-15 09:57:37 -04:00
Matt Brown
da257a0fa5
Break apart InstancePropertyFetchAnalyzer and others
2020-10-15 09:21:44 -04:00
Matt Brown
2902a8cc60
Fix #4326 - Prevent later remapping of properties
2020-10-14 21:35:57 -04:00
Matt Brown
4539a2f27e
Fix #4326 - prevent more mapping than necessary
2020-10-14 21:22:51 -04:00
Matt Brown
d8d17a6587
Fix #4327 - make sure loop always returns
2020-10-14 20:19:55 -04:00
Matt Brown
b2382cdf18
Use correct count
2020-10-14 18:56:49 -04:00
Matt Brown
4488d5fb1f
Use more accurate arguments count
2020-10-14 18:51:15 -04:00
Matt Brown
864a7bbb4c
Add better support for get_debug_type
2020-10-14 17:30:08 -04:00
Matt Brown
a0fbac347e
Prevent features pre-php-8
2020-10-14 17:09:56 -04:00
Matt Brown
62c15b2a4f
Avoid crash when callable type is missing
2020-10-14 11:01:46 -04:00
Matt Brown
724b25b918
Change control_flow_graph to data_flow_graph
2020-10-13 17:28:12 -04:00
Matt Brown
516141a380
Rename ControlFlowGraph to more appropriate DataFlowGraph
2020-10-13 16:49:03 -04:00
Matt Brown
1ae9a6127e
Fix #4315 - prevent crash when setting unknown property in finally
2020-10-13 08:32:26 -04:00
Matt Brown
bb7d7132f7
Do arithmetic for preg_split arguments
2020-10-12 20:26:02 -04:00
Matt Brown
b08d70f977
Fix #4252 - fix xml generation
2020-10-12 18:39:26 -04:00
orklah
62e79fb7ea
param types ( #4313 )
2020-10-12 15:46:47 -04:00
Matt Brown
fee3b63122
Fix #4274 - don’t ignore mixed union in array_shift operation
2020-10-12 15:17:22 -04:00
orklah
10f2966dcb
return types ( #4311 )
...
* return types
* remove willReturn for void methods
2020-10-12 15:02:52 -04:00
Matt Brown
fcfa746ba8
Fix #4310 - prevent literal class check on union
2020-10-12 14:45:11 -04:00
Matt Brown
d16c0de872
Add slash
2020-10-12 14:32:44 -04:00
Matt Brown
464795d86c
Fix #4309 - improve reuse of callmap callable inference
2020-10-12 13:46:43 -04:00
Matt Brown
5743471a19
Don’t merge array and Traversable to iterable when there are intersections
2020-10-12 12:45:31 -04:00
Matt Brown
ce90466ad4
Change name to arraylike-object
2020-10-12 12:39:48 -04:00
Matt Brown
8319278ef1
4.x - Add support for array-like-object
...
Ref #4308
2020-10-12 12:32:02 -04:00
Matt Brown
d8a74ca383
4.x - Prevent passing empty array to max or min
2020-10-12 12:09:12 -04:00
Matt Brown
7e65355513
4.x - detect falty !is_resource checks
2020-10-12 09:57:11 -04:00
Matt Brown
b85cbd01a7
4.x - add support for PHP 8 callmap
2020-10-12 09:41:25 -04:00
Matt Brown
f3b05f5ab5
Move static code out of src
2020-10-12 00:59:19 -04:00
Matt Brown
5be7276a17
Fix #4306 - negating positive-numeric is useless, avoid crash
2020-10-11 23:16:43 -04:00
Matt Brown
7195275993
Fix #4299 - only allow unpacking for the zeroeth-indexed element
2020-10-08 09:51:27 -04:00
Matt Brown
e9b520d72d
Ignore precondition issues in loop
2020-10-07 20:24:50 -04:00
Matt Brown
3b19913b44
Unbreak CI
2020-10-07 18:50:30 -04:00
Matt Brown
a9c145a725
Convert numeric literal strings to their int/float equivalents for numeric operations
2020-10-07 18:06:41 -04:00
Matt Brown
443025eab8
Fix addition of int and string type
2020-10-07 18:01:41 -04:00
Matt Brown
8b7657f379
Fix #4297 - use correct property id for each different MissingConstructor error
2020-10-07 17:54:00 -04:00
Matt Brown
1f2d2764ab
Fix #4287 - intersection of regular arrays should not result in crash
2020-10-07 17:47:17 -04:00
Matt Brown
c8d4bafb85
Improve accuracy of messages
2020-10-07 17:26:37 -04:00
Matt Brown
c2108e89db
Warn about impossible/redundant conditions in RHS of ||
2020-10-07 17:04:01 -04:00
Matt Brown
595b8178e0
Improve error message
2020-10-07 15:36:31 -04:00
Matt Brown
54ec83c5ee
Use better locations for errors
2020-10-07 13:53:35 -04:00
Matt Brown
639ae61284
Always check LHS of or condition before applying to RHS
2020-10-07 13:40:09 -04:00
Matt Brown
26a674dcb4
Improve message even more
2020-10-07 12:41:36 -04:00
Matt Brown
8f188877ae
Improve language further
2020-10-07 12:34:28 -04:00
Matt Brown
95ec310807
Clarify names
2020-10-07 12:24:36 -04:00
Matt Brown
f49884a30d
Fix bug
2020-10-07 12:04:54 -04:00
Matt Brown
f655b97330
Simplified even more
2020-10-07 12:00:53 -04:00
Matt Brown
8aaebfc2c4
Simplify more
2020-10-07 11:55:57 -04:00
Matt Brown
21a6f34088
Fix linting
2020-10-07 11:52:02 -04:00
Matt Brown
02e18c0cde
Improve clause-to-string conversion
2020-10-07 11:46:53 -04:00
feek
8d2db4e673
feature: universal object crates ( #3948 )
...
* feature: universal object crates
* docs: document universal object crate config option
Co-authored-by: Matthew Brown <github@muglug.com>
2020-10-07 09:56:21 -04:00
Marco Perone
a12fbb7f90
add some more stubs for array functions ( #4271 )
...
* add some more stubs for array functions
* add function brackets to stubs
* add parameter names
* remove redundant brackets
* remove stubs already defined in return type providers
2020-10-06 09:13:19 -04:00
Matt Brown
377dc8da8f
4.x - change/remove some default config values
2020-10-05 10:08:41 -04:00
Matt Brown
fb604bfacb
4.x - move class constants into their own storage object
2020-10-05 09:50:32 -04:00
Matt Brown
ea47548dd0
4.x - Prevent AfterFunctionCallAnalysisInterface from rewriting return types
2020-10-04 23:39:20 -04:00
Matt Brown
939297484c
4.x - rename TFn to TClosure
2020-10-04 23:32:01 -04:00
Matt Brown
549b200aa7
Remove mixed assignment issue
2020-10-04 17:53:26 -04:00
Matt Brown
ad8bda9eeb
Fix indentation
2020-10-04 00:18:55 -04:00
Matt Brown
d532133325
Add support for Stringable
2020-10-04 00:17:16 -04:00
Matt Brown
ec3501b244
Ensure PHP 8 continuation of 7.4 method signature features
2020-10-03 23:34:29 -04:00
Matt Brown
127e66df65
Elevate trait mismatch issues in PHP 8.0
2020-10-03 22:59:43 -04:00
Matt Brown
1a11897849
4.x - add support for the nullsafe operator
2020-10-03 20:21:52 -04:00
Saif Eddin G
0475f379aa
add support for 'COMPOSER' env variable for alternate name of 'composer.json' ( #4275 )
2020-10-03 02:26:37 -04:00
Matt Brown
6a91c2f70e
Fix @no-named-arguments more
2020-10-02 21:09:37 -04:00
Matt Brown
009b33b17d
Support @no-named-args when calling in PHP 8
2020-10-02 20:58:51 -04:00
Matt Brown
5a94043a7f
Unbreak gettype support
2020-10-02 20:33:35 -04:00
Matt Brown
63a11bae15
4.x - Support named arguments
...
Ref #4089
2020-10-02 20:27:01 -04:00
Matt Brown
2cd306b75c
Promoted properties are always initialized
2020-10-02 19:44:58 -04:00
Matt Brown
5bcd1bbb75
4.x - add support for get_debug_type function
...
Ref #4089
2020-10-02 19:15:47 -04:00
Matt Brown
74934ffdbb
4.x - rename GetClassT to TDependentGetClass
2020-10-02 18:47:23 -04:00
Matt Brown
211553c53f
Support property type promotion ref #4089
2020-10-02 18:31:32 -04:00
Matt Brown
6866e443dc
Small refactor
2020-10-02 18:24:46 -04:00
orklah
17d53974e6
change label ( #4272 )
2020-10-02 15:08:26 -04:00
Matt Brown
c9e47450a7
Fix #4266 - prevent OOM when analysing closure unioned with invokable class
2020-10-02 00:47:42 -04:00
Matt Brown
6ad5e1c013
Fix #4264 - prevent crash when analysing file with duplicate classes
2020-10-01 15:07:25 -04:00
Matt Brown
35081c0d21
Ensure catch variables are marked as used
2020-09-30 13:51:02 -04:00
Matt Brown
fc001cdf65
Treat func_get_args as using function params
2020-09-30 13:08:01 -04:00
Matt Brown
14efde286f
4.x - refactor unused variable detection
...
This turns unused variable detection into an explicit control-flow problem, where before we had a more simplistic mark-and-sweep algorithm
2020-09-30 12:28:13 -04:00
Matt Brown
169b2b7023
Fix analysis when there’s a break in a loop after a reassignment
2020-09-30 00:04:07 -04:00
1eca537209
Add SplStack, SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue stubs ( #4255 )
...
* Add SplStack, SplHeap, SplMinHeap, SplMaxHeap, SplPriorityQueue stubs
* Add SplFixedArray
2020-09-29 11:27:12 -04:00
Brown
19f88a2e31
Add improvements from unused variable checks
2020-09-28 00:45:02 -04:00