Matthew Brown
4052e6dfac
Allow isset to check for property initialisation
...
Ref #2382
2019-11-28 09:12:17 -05:00
Valentin Udaltsov
4a742f9940
Added array_key_first and array_key_last stubs ( #2381 )
2019-11-27 10:59:12 -05:00
Matthew Brown
113bf921f6
Add support for arrow function inference
2019-11-27 10:12:59 -05:00
Matthew Brown
a154191922
Fix #2380 - prevent string docblock for callable param
2019-11-27 09:18:47 -05:00
Matthew Brown
3f2d57c7a3
Fix #2379 - support spread array RFC
2019-11-27 02:07:17 -05:00
Matthew Brown
c75f7dc4d5
Fix #2339 - add support for null coalescing operator
2019-11-27 00:34:23 -05:00
Matthew Brown
d1c4c85f97
Support covariant return types & contravariant param types
...
Fixes #2102 and #2264
2019-11-27 00:19:36 -05:00
Matthew Brown
d1fbd1fa26
Add working arrow-functions implementation
2019-11-26 23:52:26 -05:00
Brown
f97a8f0d5b
Use more accurate way to determine list size
2019-11-26 16:34:19 -05:00
Pavel Batečko
4e594e0a65
Improve array function list handling ( #2377 )
...
* array_column() returns a list unless the 3rd arg is passed
* array_pad() return type provider
* array_chunk() return type provider
* array_map() preserve list types
2019-11-26 14:48:49 -05:00
Brown
842b2a53df
Refine lists with object-like array types
...
Fixes #2357
2019-11-26 12:22:28 -05:00
Brown
532e2d64be
Allow using covariant template in mutation-free context
2019-11-26 11:35:03 -05:00
Brown
a91d2ef572
Add space
2019-11-25 16:55:44 -05:00
Brown
736ccd84cd
Allow more generic iterable when yielding
...
Fixes #2353
2019-11-25 16:12:44 -05:00
Brown
0f94bebe4c
Fix dupe key
2019-11-25 16:00:16 -05:00
Brown
5626058eff
Fix #2374 - refine error-suppressed output a little better
2019-11-25 15:38:54 -05:00
Brown
0bcb7863f3
Use better system for storing inferred types and assertions
2019-11-25 11:44:54 -05:00
Brown
cff354ef28
Fix test
2019-11-21 16:51:23 -05:00
Brown
78a3894403
Fix Psalm errors
2019-11-21 11:03:18 -05:00
Brown
06653f6322
Fix #2362 - support single value type in docblocks
2019-11-21 10:44:24 -05:00
Matthew Brown
3d9c94e29a
Fix #2363 - catch possible class not found errors when getting method
2019-11-21 08:56:47 -05:00
Bruce Weirdan
c50a17d415
Scan shape properties ( #2359 )
...
This prevents crashes when built-in classes are referenced by shape
properties.
Fixes vimeo/psalm#2331
2019-11-18 19:01:12 -05:00
Brown
81f513bb4c
Fix #2358 - always analyse new XXX(...) in unknown method calls
2019-11-18 16:14:21 -05:00
Matthew Brown
2369bac943
Preserve self refs where possible
2019-11-16 19:59:08 -05:00
Brown
55bf6a2db3
Migrate static return types
2019-11-15 16:50:43 -05:00
Brown
4747ba709a
Migrate more things
2019-11-15 15:34:25 -05:00
Brown
5e17a9af10
Fix #2348 - ensure all functions and methods return some type
2019-11-14 14:44:29 -05:00
Brown
d5b90f6887
Fix #2333 - don’t create array after empty check
2019-11-14 14:23:33 -05:00
Brown
8777c952c8
Fix #2330 - allow empty checks against numeric
2019-11-14 13:31:50 -05:00
Brown
b693b726c7
Improve handling of default extended params
2019-11-14 12:12:09 -05:00
Brown
70b8df268d
Fix template covariance calculation, use container covariance not inputs
2019-11-14 11:43:49 -05:00
Brown
23c37f829d
Move covariant tests into their own place
2019-11-14 11:42:16 -05:00
Matthew Brown
0b1f83ff98
Fix #2346 - map covariance of templated return types when extending with more params
2019-11-14 07:45:20 -05:00
Brown
fe5e675881
Improve unvariable removal
2019-11-13 15:05:21 -05:00
Brown
c9e7dcfa92
Fix false positive UnusedVariable
2019-11-13 14:32:27 -05:00
Brown
7516b7b0cf
Fix #2336 - detect used variable in mixed array offset
2019-11-13 13:38:34 -05:00
Matthew Brown
975ff9250b
Fix #2328 - don’t crash on unexpected divider
2019-11-13 01:13:29 -05:00
Brown
7f5af741f7
Improve assertion calculation on mixed vars
2019-11-12 10:12:07 -05:00
Matthew Brown
7012bedf4e
Fix #2326 - substitute static more responsibly in generic objects
2019-11-12 08:01:22 -05:00
Matthew Brown
b1aae0d1a5
Fix more try/catch stuff
2019-11-12 00:52:10 -05:00
Brown
51557c44ea
Evaluate finally blocks at the end of every catch
2019-11-11 18:38:33 -05:00
Brown
da03902f76
Fix handling of do... while vars defined in try
2019-11-11 18:24:43 -05:00
Brown
f22266b2ff
Improve reasoning around try/catch possibly-undefined vars
2019-11-11 17:42:46 -05:00
Brown
935bad9d2c
Fix erroneous unused variable
2019-11-11 16:52:55 -05:00
Brown
d15989c975
Allow catch to assume no try statements completed
2019-11-11 15:17:53 -05:00
Brown
658f86c277
Fix #2324 - avoid fatal error on self string in callable
2019-11-11 14:59:05 -05:00
Brown
fbd1cf0a71
Fix #2322 - don’t update outer context if elseif has no leaving statements
2019-11-11 11:46:27 -05:00
Brown
589ab5400a
Fix ArrayAccess test
2019-11-11 10:48:14 -05:00
Brown
96586f16c0
Fix phpcs issues
2019-11-11 10:11:42 -05:00
Brown
af5f83602e
Break out more specific possibly defined offset errors
2019-11-11 09:59:56 -05:00