Brown
314db95cee
Add support for sort param
2020-01-02 10:27:13 -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
033b610770
Fix composer checks once more
2020-01-01 17:29:30 -05:00
Matthew Brown
872365f444
Fix #2539 - use unaliased parent class name
2020-01-01 17:23:13 -05:00
Matthew Brown
a69903cd92
Fix dumb
2020-01-01 15:22:37 -05:00
Matthew Brown
690209d8e5
Add sort function stub
2020-01-01 15:07:41 -05:00
Matthew Brown
086d141f5c
Fix #2537 - allow complex intersection templates to be preserved
2020-01-01 13:51:54 -05:00
Matthew Brown
d175abe0f0
Improve templating for intersections
2020-01-01 13:31:41 -05:00
Matthew Brown
4630d19d45
Fix psalm running
2020-01-01 12:49:12 -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
f79088a955
Fix undefined var
2019-12-31 09:13:18 -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
79be178146
Add associative-array as an alias of array
2019-12-30 17:01:10 -05:00
Matthew Brown
bc8952c793
Add Phan updates
2019-12-30 16:58:34 -05:00
Matthew Brown
8f504f9664
Fix style
2019-12-30 16:42:34 -05:00
Matthew Brown
ec292f58dc
Move explode handling into its own file
2019-12-30 16:39:37 -05:00
Matthew Brown
b7fa15f89d
Port over updates from PHPStan
2019-12-30 15:55:15 -05:00
Matthew Brown
c14d1f7d7e
Fix order
2019-12-30 15:55:15 -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
44441042f0
Fix style things
2019-12-30 11:07:04 -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
c79ba0b09e
Include non-empty-string type in more places
2019-12-30 07:25:36 -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
508c2e268a
Process phpstan-template in class docblocks
2019-12-29 16:08:09 -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
6a6a6ab2d7
Fix dumb
2019-12-27 16:51:49 -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
1d2fefd647
Preserve more information after removing types
2019-12-27 15:26:01 -05:00
Matthew Brown
9a04d93cf9
Fix #2352 - treat hexdec return type a bit better
2019-12-27 14:14:49 -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
6b81f8c64a
Fix #2506 - use correct flag when checking classes after analysis
2019-12-24 01:02:34 +00:00
Matthew Brown
ee35db5a3b
Refine assignment somewhat
2019-12-22 12:43:57 +00:00
Matthew Brown
141bfd313f
Improve handling of assignments in arrays
2019-12-22 12:36:16 +00:00
Matthew Brown
8bd68608fa
Fix message
2019-12-22 11:08:47 +00:00
Matthew Brown
8fc3c3b8cd
Improve removing types from callable
2019-12-22 10:29:00 +00:00
Matthew Brown
3be8e4c6ba
Improve string comparison negation
2019-12-22 02:09:22 +00:00
Matthew Brown
4c8730c5a3
Improve handling of unset array, ensuring that keys don’t persevere
2019-12-22 01:42:39 +00:00
Bruce Weirdan
ede1076039
Dropped unused use ( #2495 )
2019-12-21 00:58:05 +00:00
Matthew Brown
946b4f73e6
Fix #2493 - don’t crash when provided function doesn’t exist
2019-12-21 00:34:31 +00:00
Bruce Weirdan
7e8268fe94
Drop non-existent param from docblock ( #2492 )
...
I wonder why psalm didn't catch it.
2019-12-21 00:14:22 +00:00
Matthew Brown
59aeb6b6c3
Fix #2490 - allow overriding renamed trait methods in subclass
2019-12-20 20:11:27 +00:00
Matthew Brown
8c1638efc5
Fix tests once more
2019-12-20 19:37:36 +00:00
Matthew Brown
3d03da271d
Fix tests to give more accurate locations
2019-12-20 18:18:26 +00:00
Matthew Brown
395cac0e0b
Add specific exception
2019-12-20 18:08:53 +00:00
Matthew Brown
e475a1826c
Issues with non-abstract methods should always be MethodSignatureMismatches
2019-12-20 18:08:35 +00:00
Matthew Brown
a5434aabfe
Fix #2491 - report trait issues at the most local place
2019-12-20 17:57:31 +00:00
Matthew Brown
1b54d058aa
Fix #2488 - add support for @phpstan- annotations
2019-12-20 10:49:10 +00:00
Matthew Brown
a4191171bf
Fix #2483 - treat intersecting PHPDocs from interfaces better
2019-12-20 01:42:57 +00:00
Matthew Brown
d7b99148be
Add support for JUnit report type
...
Fixes #2485
2019-12-19 20:18:09 +00:00
Matthew Brown
15cd62d332
Fix #2484 - add support for spaces in assert-if-true types
2019-12-19 19:24:26 +00:00
Matthew Brown
ab03ac06f4
Add support for spread operator before type as well
...
Ref #2429
2019-12-19 00:29:01 +00:00
Matthew Brown
cc3df7d6be
Remove errant comma
2019-12-18 23:50:57 +00:00
Matthew Brown
af28d650f3
Fix #2408 - existing offsets checked with isset should be valid
2019-12-18 23:48:25 +00:00
Matthew Brown
456aa1c569
Fix #2468 - add support for zipping arrays
2019-12-18 18:14:02 +00:00
Matthew Brown
734ad02203
Fix #2476 - flesh out iterable params
2019-12-18 17:19:54 +00:00
Matthew Brown
9d8ca08fb9
Fix #2479 - analyse undefined function arguments too
2019-12-18 16:37:48 +00:00
Matthew Brown
11433dc9d0
Fix references
2019-12-18 14:43:15 +00:00
Matthew Brown
cb797c6159
Fix inherited class methods as well
...
Ref #2478
2019-12-18 14:39:37 +00:00
Matthew Brown
49a3f89526
Fix #2478 - process trait template inheritance sensibly
2019-12-18 13:58:37 +00:00
Brown
e551b24843
Classes that just reference themselves aren’t used
2019-12-16 11:46:10 -05:00
Matthew Brown
bf67c036aa
Fix #2474 - treat free-standing binaryops as ifs instead
2019-12-16 08:32:00 -05:00
Matthew Brown
bdbc758ddc
Fix #2475 - allow iterable covariance
2019-12-16 07:16:35 -05:00
Matthew Brown
529efaa29c
Fix #2473 - allow array_map to work with callables returning static
2019-12-15 19:55:20 -05:00
Matthew Brown
7cb021a268
Fix the fix
2019-12-15 14:11:24 -05:00
Matthew Brown
1d0ac3df29
Fix #2472 - array_map should retain non-emptiness when passed string callables
2019-12-15 14:06:12 -05:00
Matthew Brown
3ef93fd795
Add slash
2019-12-15 13:34:12 -05:00
Matthew Brown
090ad90de3
Fix build issues
2019-12-15 13:28:38 -05:00
Matthew Brown
72f3c306d7
Fix #2471 - don’t erroneously template class-strings
2019-12-15 13:23:04 -05:00
Matthew Brown
1a92e98dd3
Warn about more generic callables
2019-12-14 11:55:26 -05:00
Matthew Brown
ce2e5b27c0
Fix #2470 - only parameterise constructors according to inherited params
2019-12-14 11:38:09 -05:00
Matthew Brown
c7a3ba9e4a
Refine callable type
2019-12-14 10:47:20 -05:00
Matthew Brown
c3d8315ab9
Don’t inherit parameter covariance
2019-12-14 10:06:40 -05:00
Matthew Brown
797a059a84
Prevent static methods using class instance template types
2019-12-14 09:40:09 -05:00
Matthew Brown
b48021dbfd
Allow null return on template with null as type
...
Ref #2466
2019-12-13 21:56:43 -05:00
Matthew Brown
f40b6625eb
Fix #2431 - allow null in template defaults
2019-12-13 21:40:09 -05:00
Brown
2469f04715
Improve reconciliation of arrays with constant offsets
2019-12-13 17:17:14 -05:00
Brown
6d02aa86e8
Reconcile string emptiness a bit better
2019-12-13 15:51:54 -05:00
Matthew Brown
c9b5e96b0f
Fix ref
2019-12-13 08:11:04 -05:00
Matthew Brown
ca5f8fabdc
Fix #2464 - null coalesce shouldn’t allow undefined vars
2019-12-13 08:06:40 -05:00
Matthew Brown
6ff312fe13
Fix test
2019-12-12 11:43:03 -05:00
Matthew Brown
1df77a9f43
Only mark vars as reconcilable if they can be memoized
2019-12-12 11:24:47 -05:00
Matthew Brown
f45014d403
Fix #2460 - allow assertions on immutable method calls
2019-12-12 09:32:33 -05:00
Matthew Brown
8f25183784
Fix #2459 - don’t add assertions to parent context unnecessarily
2019-12-12 00:37:00 -05:00
Brown
05783eb616
Find issues with impossible property values
2019-12-11 17:08:02 -05:00
Brown
612f74f481
Clean up static property reconciliation
2019-12-11 15:05:09 -05:00
Brown
6b56a0239d
Improve handling of assertions on static properties
2019-12-11 14:06:09 -05:00
Brown
d2b99cbe77
Add possibly defined vars in binary op analysis
2019-12-11 13:09:27 -05:00
Brown
e476eed111
Fix issue where inside_conditional is forgotten
2019-12-11 12:06:10 -05:00
Brown
2f9b1ff665
Fix too-long line
2019-12-11 11:40:47 -05:00
Brown
e564d67214
Add support for simple default arrays in @method docblocks
...
Fixes #2455
2019-12-11 11:29:00 -05:00
Brown
79f3a5d371
Allow empty string parsing
2019-12-11 10:52:46 -05:00
Brown
3a7dd61889
Fix #2457 - allow psalm-type aliases to be used above return type
2019-12-11 10:30:40 -05:00
Brown
4b715cdbff
Fix #2456 - ignore UnusedFunctionCall when function asserts
2019-12-11 10:13:22 -05:00
Matthew Brown
c27d0d953b
Add null check
2019-12-11 00:38:28 -05:00
Matthew Brown
848cbbb487
Fix #2454 - build up template map to better understand passed-through data
2019-12-11 00:34:54 -05:00
Brown
2e322ee214
Don’t try to fix missing trait method params
...
Fixes #2427
2019-12-10 17:32:39 -05:00
Brown
b3cf9d3958
Catch circular references in constants
...
Fixes #2453
2019-12-10 16:16:44 -05:00
Brown
20049eb0b5
Fix #2437 - don’t worry about mixed templated param types
2019-12-10 14:58:26 -05:00
Brown
9d22f56560
Fix #2443 - templates are not valid PHPDoc
2019-12-10 14:03:51 -05:00
Brown
423288d2fe
Fix negations of templated numeric
2019-12-10 10:55:24 -05:00
Matthew Brown
a3ab8e8973
Fix dumb
2019-12-10 09:47:17 -05:00
Matthew Brown
3faf1f8bc2
Improve int assertions
2019-12-10 09:44:38 -05:00
Matthew Brown
750d4b4f4f
Be more accurate when assertion is incorrect
...
Ref #2452
2019-12-10 09:26:46 -05:00
Matthew Brown
8494f02008
Fix template handling when templating inside templated class
2019-12-10 00:50:36 -05:00
Brown
af63f87689
Fix dumb;
2019-12-09 17:42:22 -05:00
Brown
c8d8244e73
Fix copy/paste snafu
2019-12-09 17:35:50 -05:00
Brown
74de32fefe
Allow multiple @psalm-assert annotations for a given variable
2019-12-09 17:21:58 -05:00
Brown
aaffdbc79f
Add support for non-empty scalar
...
Ref #2449
2019-12-09 17:06:10 -05:00
Teemu Koskinen
447e3539af
ssh2-functions can return false on error, added missing parameters ( #2447 )
...
Source: http://git.php.net/?p=pecl/networking/ssh2.git;a=tree
2019-12-09 14:50:55 -05:00
Brown
b78acf796f
Fix #2445 - only generalise param when it’s generic
2019-12-09 10:58:09 -05:00
Brown
40bdc219ff
Add more info for too many params error
2019-12-09 10:31:00 -05:00
Matthew Brown
517aaac851
Fix #2432 - narrow template type after is_object check
2019-12-08 21:40:15 -05:00
Matthew Brown
432c291dd7
Fix #2440 - add support for uasort
2019-12-08 21:30:19 -05:00
Matthew Brown
d6a731be73
Fix #2441 - add error when @template type is missing
2019-12-08 21:19:29 -05:00
Matthew Brown
e3d108ebd9
Fix #2439 - fix templating of class-string<T>::returnsStatic
2019-12-08 21:12:25 -05:00
Matthew Brown
69e6624b16
Fix #2436 - fix templating of property types inside templated functions
2019-12-08 19:25:40 -05:00
Matthew Brown
02fbf12337
Only warn about clauses in the currently-scanned conditional
2019-12-08 16:35:56 -05:00
Matthew Brown
6236a30bf5
Add broken test
2019-12-08 13:02:38 -05:00
Matthew Brown
c9f43782fd
Fix mixed method issues after defining new type
2019-12-08 10:17:40 -05:00
Matthew Brown
83b10bb9af
Fix #2426 , or at least some of it
2019-12-08 00:49:34 -05:00
Matthew Brown
2e00ad2240
Treat more things as assignments
2019-12-07 15:58:05 -05:00
Matthew Brown
f0cd7eab04
Remove redundant calls
2019-12-07 14:05:43 -05:00
Philip Hofstetter
528180998e
fix return type of stream_bucket_new ( #2434 )
...
the function returns `object` since 2003 in
php/php-src@c4a491e12c and
`stream_bucket_append()` is type hinted to take `object` too.
This fixes #2430
2019-12-07 14:04:18 -05:00
Matthew Brown
3c52102388
Fix #2438 - improve handling of get_class calls
2019-12-07 14:03:20 -05:00
Matthew Brown
2b6831ba10
Fix too-long line
2019-12-07 01:38:24 -05:00
Matthew Brown
df395944f8
Change how $changed_var_ids is communicated
2019-12-07 01:23:35 -05:00
Brown
ef44bd104e
Consolidate some fixes from the binaryop branch
2019-12-06 12:47:27 -05:00
Brown
19838fc7f5
Fix #2423 - pass by ref variable status after byref assignment
2019-12-05 13:37:03 -05:00
Brown
8ff33ee64d
Fix #1943 - give up analysing really complicated conditionals
2019-12-05 10:26:53 -05:00
Tyson Andre
b713066d32
Add an exception handler that prints full exception trace ( #2418 )
...
By default, php will only print the first few thousand bytes of the
exception, for an uncaught exception
(I think that's the default, and not just my configuration)
Instead, print all of the parts of the exception.
For #1083 (this PR does not cover set_error_handler)
2019-12-04 23:17:08 -05:00
Tyson Andre
6b2c1401c8
Workaround for uncaught InvalidArgumentException ( #2420 )
...
Fixes #2419
2019-12-04 23:16:51 -05:00
Tyson Andre
4548fb87f7
Add space for 'can automatically fix Nissues' ( #2416 )
2019-12-04 16:16:37 -05:00