Brown
0e23fab5d2
Detect bugs similar to that which caused #2832
2020-02-18 12:53:54 -05:00
Brown
6e8088776d
Use better return type for SimpleXMLElement::offsetGet
2020-02-18 10:58:56 -05:00
Matthew Brown
320f3ec863
Update level config name
2020-02-17 22:43:13 -05:00
Matthew Brown
ced092874a
Make config generation smarter
2020-02-17 22:05:58 -05:00
Matthew Brown
00afcda5e0
Fix #2824 - allow unpacking of non-arrays with template params
2020-02-17 19:54:11 -05:00
Matthew Brown
cf977c3542
Don’t convert constant descriptions to lowercase
2020-02-17 18:19:33 -05:00
Matthew Brown
8dd49b1cbf
Fix lowercase-string to constant string coercion
2020-02-17 17:58:36 -05:00
Matthew Brown
6a4e7931e6
Fix tests to add new property
2020-02-17 16:43:50 -05:00
Matthew Brown
6d088f2396
Even more commas
2020-02-16 18:43:54 -05:00
Matthew Brown
dea02d9985
Fix even more commas
2020-02-16 18:40:59 -05:00
Matthew Brown
77fbbe4c11
Fix commas
2020-02-16 18:30:05 -05:00
Matthew Brown
196a0a5c4e
Replace issue data array with object
2020-02-16 18:24:40 -05:00
Matthew Brown
d3bfb96431
Fix #2808 - improve yield type discernment
2020-02-15 10:47:07 -05:00
Matthew Brown
653353709a
Use MethodIdentifier object instead of string
2020-02-14 20:54:26 -05:00
Matthew Brown
fb5a0c39cb
Fix #2819 - improve negated assertions on templates
2020-02-14 11:18:47 -05:00
Brown
b87161785d
Be even more permissive
2020-02-13 17:58:15 -05:00
Brown
8989737e51
Fix #2775 - use lowercase strings in a couple more places
2020-02-13 17:44:16 -05:00
Brown
1c42875179
Support lowercase-string and warn about unnecessary calls to strtolower
2020-02-13 16:38:58 -05:00
Brown
e934343d7f
Fix #2765 - properly fix namespaced @throws self
2020-02-13 13:01:53 -05:00
Philip Hofstetter
395cf587d3
add plugin hook to be called after every function call
...
compared to AfterFunctionCallAnalysisInterface which gets only called
after a call to a function declared within the project, a plugin
implementing AfterEveryFunctionCallAnalysisInterface will get called for
every function call, including calls of PHP builtins.
On the other hand, this interface doesn't allow modification of the code
nor tweaking the return type, but it's still useful for accounting
purposes and for depreacting calls to PHP builtins
this fixes #2804
2020-02-13 09:10:24 -05:00
Matthew Brown
f64cdd2ca2
Fix #2798 - strip out trailing commas in object-like @return types
2020-02-12 09:18:43 -05:00
Matthew Brown
07a53f6b81
Fix #2789 - Numeric should not be a reserved class name
2020-02-11 22:34:34 -05:00
Bruce Weirdan
a23dd9f97d
Fixed vimeo/psalm#2792
2020-02-11 22:21:54 -05:00
Brown
2abe76d3c2
Fix assertion generation
2020-02-10 17:27:46 -05:00
Brown
d8f5ad190b
Improve invalidation of inherited properties
2020-02-10 17:03:51 -05:00
Brown
41af71556d
Fix #2785 - parse wildcards in variables better
2020-02-10 15:30:06 -05:00
Brown
89a0b101e4
Fix #2784 - no crash when get_class arg is mixed
2020-02-10 14:44:33 -05:00
Matthew Brown
47ffb59241
Fix #2764 - iterate through all possible template types where necessary
2020-02-09 18:11:50 -05:00
Matthew Brown
3559fdd6b3
Fix #2742 - prevent paradoxes in assert calls
2020-02-09 11:42:41 -05:00
Matthew Brown
4de6f5c4ec
Fix #2442 - using asserting after a MixedAssignment
removes that error
2020-02-08 23:01:45 -05:00
Matthew Brown
5f4d797fe1
Fix #2772 - add support for multiple array_map function param inference
2020-02-08 12:17:57 -05:00
Matthew Brown
b439a573ce
Empty is also the bottom type
2020-02-08 11:40:22 -05:00
Matthew Brown
b26deb434d
Fix #2771 - replace empty params with generic equivalents
...
Ref #2755
2020-02-08 11:17:24 -05:00
Brown
dcc855de95
Fix #2739 - specify wildcards in constants
2020-02-07 10:54:57 -05:00
Brown
cecc5ed798
Move constant tests
2020-02-07 10:47:42 -05:00
Matthew Brown
966336a475
Improve byref array handling
2020-02-06 23:52:27 -05:00
Matthew Brown
da541dbb51
Remove some unnecessary errors
2020-02-06 23:10:18 -05:00
Brown
e567f8c728
Fix #2752 - string casts can be implicit method calls, don’t remove automatically
2020-02-06 21:05:16 -05:00
Brown
23f8967fb5
Fix conditional class-string template replacement
2020-02-06 19:40:18 -05:00
Brown
7bad2042f8
Skip failing test
2020-02-06 18:45:03 -05:00
Brown
d5f71bf529
Localise template checks to class being tested
2020-02-06 16:38:45 -05:00
Brown
54efbbe831
Fix bad assertion
2020-02-06 16:32:26 -05:00
Brown
0fd0d01d2b
Improve class-string templating
2020-02-06 14:35:36 -05:00
Brown
a16e03d992
Fix #2756 - narrow assertion templated type
2020-02-06 11:49:15 -05:00
Brown
50fc50fab0
Fix #2751 - allow static methods to inherit class templates
2020-02-05 11:19:40 -05:00
Brown
4c83ca75b3
Fix #2738 - clear out property issues when modifying constructors
2020-02-03 16:43:25 -05:00
Matthew Brown
b3f6b56f9c
Add support for @psalm-readonly-allow-private-mutation
2020-02-02 15:56:08 -05:00
Matthew Brown
ba8eb264d4
Fix test
2020-02-02 15:37:37 -05:00
Matthew Brown
93fc1b1cc7
Fix #2729 - allow mutation of otherwise-readonly properties
2020-02-02 15:35:12 -05:00
Matthew Brown
8d7fb2b415
Add config flag to support properties without a magic getter
2020-02-02 14:23:38 -05:00
Matthew Brown
43c7b00cd0
Fix #2734 - allow is_a to operate on templated class-strings
2020-02-02 12:26:28 -05:00
Matthew Brown
8db4bc7691
Improve formatting of intersection error messages
...
Also reduce false positives on intersections of templates
2020-02-02 12:25:24 -05:00
Matthew Brown
b67f661604
Fix #2735 - interpret template check in context of class-string generation
2020-02-02 10:51:18 -05:00
Matthew Brown
d0b87b6cb0
Fix #2723 - use magic method return type where necessary
2020-02-01 18:21:32 -05:00
Matthew Brown
6dbb911da1
Fix templating class-string unions
2020-02-01 15:02:44 -05:00
Matthew Brown
292f6e797f
Only make directly-assertable things possibly-undefined
...
Ref #2724
2020-02-01 10:58:13 -05:00
Matthew Brown
f2347303c9
Skip correct test
2020-02-01 01:43:26 -05:00
Matthew Brown
255ffa05ea
Skip another failing test
2020-01-31 17:59:29 -05:00
Matthew Brown
6f75903948
Fix dupe key
2020-01-31 17:47:11 -05:00
Brown
a40bfbd2b2
Add back skipped tests for the moment
2020-01-31 17:27:39 -05:00
Brown
3b6f53a356
Revert "Fix #2724 - make sure behaviour is not dependent on array type"
...
This reverts commit 1df03b0ff2
.
2020-01-31 17:25:15 -05:00
Brown
1df03b0ff2
Fix #2724 - make sure behaviour is not dependent on array type
2020-01-31 16:46:05 -05:00
Brown
adbe44d7bb
Revert countable checks
2020-01-31 15:24:44 -05:00
Brown
66227f9b7f
Fix #2727 - callable arg checks should obey ignore_falsable_return
2020-01-31 13:58:56 -05:00
Brown
3d6c63bc08
Break apart FunctionCallTest
2020-01-31 13:58:02 -05:00
Brown
34408a892c
Support has-at-least type in negation
2020-01-31 13:13:50 -05:00
Brown
37765098e9
Fix #2725 - allow empty checks on objects that implement countable
2020-01-31 12:55:33 -05:00
Brown
8f95c5679e
Fix #2720 - allow throwing self
2020-01-30 18:00:31 -05:00
Brown
216d9256a1
Allow templated array_map callable inference
...
Fixes #2719
2020-01-30 17:13:46 -05:00
Philip Hofstetter
f6983fd883
allow setting php version from config or composer.json
...
if a composer.json is present and a PHP version requirement is
configured, we set the php version to the minimal PHP version that
satisfies the composer requirement.
Additionally, this adds a `phpVersion` attribute to the <psalm> tag. If
that's set, it takes precedence over what has been detected in
composer.json.
And finally, the --php-version command line flag continues to work and
takes precedence over the setting in the <psalm> tag
this fixes #2628
2020-01-30 08:48:53 -05:00
Matthew Brown
365236a6bb
Replace assertion with type
2020-01-29 23:55:27 -05:00
Matthew Brown
5eb2ebc508
Add more type-system protections for bad array args
2020-01-29 23:41:17 -05:00
Matthew Brown
2829530ea6
Fix #2713 - allow interface with __invoke to be called
2020-01-29 22:33:28 -05:00
Matthew Brown
933dff9e20
Fix #2712 - allow __toString to have more specific type
2020-01-29 22:28:40 -05:00
Matthew Brown
2aebc522f1
Fix #2705 - mark by-ref args as used if not variables already
2020-01-29 21:46:30 -05:00
Matthew Brown
e92656c4cb
Fix #2707 - reconcile object equality properly
2020-01-29 21:25:44 -05:00
Matthew Brown
ce0298acc4
Fix #2704 - array_merge should ignore possibly-false issues where applicable
2020-01-29 21:09:33 -05:00
Philip Hofstetter
8f8672dd6b
do not corrupt internal state when a baseline is present ( #2710 )
...
this fixes #2709
2020-01-29 08:53:58 -05:00
Pavel Batečko
ecf85aef12
Add generic definition of DOMNamedNodeMap ( #2703 )
...
* Fix #2638 - propagate phantom classes to recursive calls to Scanner::queueClassLikeForScanning()
* Add generic definition of DOMNamedNodeMap
2020-01-29 08:39:07 -05:00
Matthew Brown
10221f474f
Fix test
2020-01-27 23:52:06 -05:00
Matthew Brown
82bb3b90f0
Add @return to test
2020-01-27 23:38:31 -05:00
Matthew Brown
ff01f41b44
Allow strings in assert annotation
2020-01-27 23:15:50 -05:00
Matthew Brown
5c3ec7a531
Fix #2696 - make sure static property references are prevented in pure functions
2020-01-27 22:55:20 -05:00
Brown
15808458cc
Better understand nesting loops and switches
...
Fixes #2700
2020-01-27 12:17:12 -05:00
Matthew Brown
8c89760ff3
Use more accurate type for large arraya
...
Fixes #2690
2020-01-25 10:38:23 -05:00
Brown
9f077f5aec
Fix formatting
2020-01-24 14:08:01 -05:00
Brown
53b0650c6c
Fix #2688 - foreach loop evaluation should allow changing loop var
2020-01-24 13:55:30 -05:00
Brown
faf6afdce8
Support call_user_func evaluation
...
Fixes #726
2020-01-24 13:34:50 -05:00
Brown
dbdf7473f4
Fix abstract trait method implementation errors when using self
2020-01-24 11:15:35 -05:00
Brown
34d73e7243
Fix #2685 - always evaluate $a++ in unknown call
2020-01-24 10:32:28 -05:00
Matthew Brown
c87b19eeb0
Fix #2681 - no error after empty check on literal value
2020-01-23 22:26:49 -05:00
Brown
0ffb833bf3
Fix #2677 - use better assertion for null coalesce
2020-01-23 14:52:35 -05:00
Brown
da43b8188f
Fix #2632 - detect invalid by-ref assignments in pure functions
2020-01-23 14:21:34 -05:00
Brown
0ac20e76c4
Fix #2631 - evaluate purity of uasort closure
2020-01-23 13:49:15 -05:00
Brown
e68ca6a20b
Fix #2661 - catch invalid array_push on property
2020-01-22 09:57:59 -05:00
Matthew Brown
d4ceabc174
Fix error baseline test
2020-01-21 21:22:38 -05:00
Matthew Brown
8202af957d
Index issues by file to reduce some lookups
2020-01-21 21:07:44 -05:00
Brown
0132b3789b
Fix #2665 - warn about abstract class interface inheritance issues
2020-01-21 11:46:51 -05:00
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
8ccd4860e3
fclose should treat resource as passed-by-reference
2020-01-17 13:12:00 -05:00
Matthew Brown
c9d88b6e62
Remove lines
2020-01-17 12:13:29 -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
2c48d42904
Allow destructuring of callable array
...
Fixes #2653
2020-01-17 10:02:58 -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
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
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
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
Brown
0f6b61d62d
Clone isset type before contradicting
2020-01-14 18:28:32 -05:00
Brown
adc658901a
Improve inference of constant() calls
2020-01-14 16:56:09 -05:00
Brown
1ccababcb7
Track list-ness of constant arrays
...
Fixes #2621
2020-01-14 12:13:41 -05:00
Brown
c77f2cd7a2
Treat array key int literals same way we treat string literals
2020-01-14 10:40:16 -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
eb7c3dcc11
Fix #2611 - fix combination of inferred closure return types
2020-01-13 10:23:58 -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
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
Matthew Brown
131fb97663
Fix #2594 - forbid isset check on null
2020-01-11 15:58:40 -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
146dd461ef
Fix #2569 - improve template return type checks
2020-01-07 21:08:13 -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
1f777bec0e
Capture non-empty-string from concat more effectively
2020-01-07 01:44:12 -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
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
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
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
SignpostMarv
fbf66ba7f6
Typecast bool to int ( #2550 )
...
* adding specific checks for typecasting booleans, re: vimeo/psalm#2548
* satisfying phpcs
* amend check to use psalm types rather than php-parser types
* implementing tests for typecasting bools to int
* satisfying phpcs
2020-01-04 16:36:19 -05:00
Matthew Brown
26a89562cd
Add return type
2020-01-04 16:35:06 -05:00
Matthew Brown
37810b5a44
Fix #2552 - add parse error when encountering empty array values
2020-01-04 16:33:02 -05:00
Matthew Brown
8cbc26c2f1
Add range checks to identify for loops that always enter
2020-01-04 13:05:23 -05:00
Matthew Brown
9fa2db1b6c
Move Union::getTypes to Union::getAtomicTypes
2020-01-04 12:20:26 -05:00
Matthew Brown
ba6d0df048
Fix #2546 properly
2020-01-04 11:16:53 -05:00
Brown
996053cca6
Fix #2545 - fix bug when coming back after analysing method call in constructor
2020-01-03 11:29:45 -05:00
Brown
4263417ac3
Fix #2546 - ignore vars set inside loop
2020-01-03 10:33:32 -05:00
Matthew Brown
b6d5021251
Fix line number
2020-01-03 08:50:27 -05:00
Matthew Brown
df33405635
Seal properties and methods whenever @method/@property is used
2020-01-03 08:44:52 -05:00
Matthew Brown
d5d4a1826d
Add initial support for @mixin Foo
2020-01-02 23:50:19 -05:00
Brown
9177b410cb
Fix reconciliation of callable
2020-01-02 16:59:19 -05:00
Brown
5f5a942a32
Improve handling of interface-implementing edge-case
2020-01-02 15:24:03 -05:00
Brown
de0fad2197
Fix #2541 - check variable var assignment
2020-01-02 14:07:02 -05:00
Matthew Brown
71cdaf6345
Fix tests
2020-01-02 08:37:54 -05:00
Matthew Brown
e68fd02e80
Refine class string after callable array check
2020-01-02 08:31:19 -05:00
Matthew Brown
25e7039f02
The current method is used
...
Fixes #2540
2020-01-01 18:33:12 -05:00
Matthew Brown
872365f444
Fix #2539 - use unaliased parent class name
2020-01-01 17:23:13 -05:00
Matthew Brown
086d141f5c
Fix #2537 - allow complex intersection templates to be preserved
2020-01-01 13:51:54 -05:00
Matthew Brown
4021d673bd
Fix #2536 - grab binary op left assertions after analysis
2020-01-01 12:45:24 -05:00
Matthew Brown
d7fb64bbb7
Fix #2349 - use function suppressed issues
2019-12-31 09:16:49 -05:00
Matthew Brown
16b8edd583
Fix #2409 - use more robust assertion parsing
2019-12-31 09:10:14 -05:00
Matthew Brown
5bd9b988fb
Fix #2494 - don’t use extended name for anonymous classes
2019-12-31 08:46:52 -05:00
Matthew Brown
87fec3e6fe
Fix #2505 - don’t attempt to analyse classes that weren‘t properly scanned
2019-12-31 08:04:51 -05:00
Matthew Brown
02fd1659ef
Ignore serialize/unserialize methods
...
Fixes #2511
2019-12-31 07:56:35 -05:00
Matthew Brown
53a2f77d00
Add better return type provider for PDO statement
...
Fixes #2529
2019-12-30 11:34:24 -05:00
Matthew Brown
366e2d30a3
Improve assertions support a bit more
2019-12-30 10:48:50 -05:00
Matthew Brown
19faa31865
Allow assertions on nested properties
2019-12-30 10:01:31 -05:00
Matthew Brown
023c4bcef0
Fix #2532 - fix templating inside class method when calling templated method
2019-12-30 07:25:36 -05:00
Matthew Brown
2b88261ecd
Fix templated assertion cc @vasily-kartashov
...
This is a good reason for you to skip 3.8.1
2019-12-29 11:57:54 -05:00
Bruce Weirdan
7d3dd47efa
Added support for preg_grep ( #2523 )
2019-12-29 11:05:08 -05:00
Matthew Brown
b375ebf06f
Fix test
2019-12-29 10:29:03 -05:00
Matthew Brown
26876b9a13
array_push shouldn’t change list type
2019-12-29 10:20:44 -05:00
Matthew Brown
d3fb0181cb
Fix #2527 - no crash when template cannot be resolved
2019-12-29 08:45:42 -05:00
Matthew Brown
0c7851ae21
Fix #2526 - always check for array assignment in assignop
2019-12-29 08:36:46 -05:00
Matthew Brown
55c2f7faa2
Fix #2508 - don’t replace templated types with generic ones inside own function
2019-12-28 18:38:02 -05:00
Matthew Brown
ce9435da19
Fix #2521 - use correct context class when analysing trait
2019-12-28 15:56:26 -05:00
Bruce Weirdan
4110ec351b
Make travis green again ( #2518 )
...
* Bumped phpspec/prophecy version to prevent 7.4 deprecations
* Fix DOMDocument::$config type
This property was documented as containing DOMConfiguration object, but
in fact always returned `null` (see [php source](ee80567a83/ext/dom/document.c (L542)
)).
DOMConfiguration class is removed in PHP 8.
* Dropped unused use
* Allow to set PHP 8.0 as current version
* Fix CallMap issues for PHP 8.0
- Use both major and minor version to load deltas
- Don't load non-existent deltas
- Stop at lowest possible delta
2019-12-27 19:06:09 -05:00
Matthew Brown
982fe627e0
Fix #2515 - allow chained assertions on @psalm-mutation-free methods
2019-12-27 16:44:55 -05:00
Matthew Brown
4a28525275
Fix removal of traversable from iterable
...
Fixes #2509
2019-12-27 13:01:44 -05:00
Matthew Brown
068afa09d3
Add very basic implementation for class-string-map
...
Fixes #1969
2019-12-27 12:49:28 -05:00
Matthew Brown
b78f273ccf
Improve handling of template params a smidge
2019-12-27 11:49:44 -05:00
Matthew Brown
2f2cd85a6a
Identify invalid static property array assignment
2019-12-27 10:34:51 -05:00
Valentin Udaltsov
006f788d6a
Added array_fill_keys support ( #2512 )
...
* Added array_fill_keys support
* Removed unnecessary array_fill_keys phpdoc
2019-12-27 13:30:42 +00:00
Matthew Brown
141bfd313f
Improve handling of assignments in arrays
2019-12-22 12:36:16 +00:00
Matthew Brown
8fc3c3b8cd
Improve removing types from callable
2019-12-22 10:29:00 +00:00
Matthew Brown
4c8730c5a3
Improve handling of unset array, ensuring that keys don’t persevere
2019-12-22 01:42:39 +00:00
Matthew Brown
59aeb6b6c3
Fix #2490 - allow overriding renamed trait methods in subclass
2019-12-20 20:11:27 +00:00