1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-16 03:17:02 +01:00
Commit Graph

352 Commits

Author SHA1 Message Date
Matt Brown
445b128a50 Fix recursion in static calls too 2018-01-24 13:26:24 -05:00
Matt Brown
72a4f148ff Prevent infinite loops when analysing private functions that call each other 2018-01-24 13:11:23 -05:00
Matthew Brown
78e34c0548 Ignore nonexistent static class constants 2018-01-24 00:17:20 -05:00
Matt Brown
dea5d92e9b Add support for static::class 2018-01-23 15:46:14 -05:00
Matt Brown
c0fda0ef1e Allow instanceof static checks 2018-01-23 14:46:46 -05:00
Matt Brown
e58e824af3 Make sure replacements only happen when called for 2018-01-22 13:54:32 -05:00
Matthew Brown
68b00ea49a Add automatic fix for PossiblyUndefinedVariable 2018-01-21 16:24:20 -05:00
Matthew Brown
bc9761f6c9 Create Codebase out from ProjectChecker 2018-01-21 13:45:33 -05:00
Matthew Brown
e05a7c00cc Break FileScanner out from FileChecker 2018-01-21 12:44:46 -05:00
Matthew Brown
67ef894ecc Add extra trait test 2018-01-21 00:32:45 -05:00
Matthew Brown
5200ffa214 Do not crash on intersection type method lookup 2018-01-20 01:04:15 -05:00
Matt Brown
4b4e09277c Fix #450 - add checks for duplicate array keys
And fix the embarassing errors in tests
2018-01-18 17:16:50 -05:00
Matt Brown
2212d7c032 Reinstate $this type after parent call
Fixes #444
2018-01-17 11:00:58 -05:00
Matthew Brown
bd6e4a09bd Refactor to break up too-large-files 2018-01-14 12:09:40 -05:00
Matthew Brown
e402ae978a Fix Array_ items nullability 2018-01-13 18:33:32 -05:00
Matthew Brown
f3bfb089ad Don’t investigate property mutations if they’re not visible 2018-01-13 01:52:46 -05:00
Matthew Brown
95553ffc0e Fix by ref method location 2018-01-13 01:25:13 -05:00
Matthew Brown
5b45909d6f Use better method for determining by-reference status of functions 2018-01-13 01:15:00 -05:00
Matthew Brown
5d9ebd06d6 Don’t check classes after extension_loaded call 2018-01-12 23:47:36 -05:00
Matthew Brown
573260b16d Don’t warn about null array access if we’re ignoring null issues 2018-01-12 18:04:11 -05:00
Matthew Brown
7fa541e39b Allow reference-returning functions to be passed as arguments of byref functions 2018-01-11 23:18:13 -05:00
Matt Brown
4ea1eb3e2c Fix #436 - get the right location for stubbed functions before analysing their calls 2018-01-11 17:39:12 -05:00
Matthew Brown
fb9f20f4b8 Find unused properties with dead code checks
Fixes #424
2018-01-10 23:29:18 -05:00
Matt Brown
72848477c2 Add all Possibly* issues to more lenient config
And add granularity to InvalidPropertyAssignment* issues
2018-01-10 10:56:43 -05:00
Matt Brown
27e47365e3 Fix #422 - be better about checking isset call variables 2018-01-09 19:33:39 -05:00
Matt Brown
edde8930af Speed up Psalm by caching result of Union::getId 2018-01-09 15:05:48 -05:00
Matt Brown
916ae930e2 Use properly-cased version of class name 2018-01-09 10:49:29 -05:00
Matthew Brown
3f3c1380ee Fix erroneous error about no parent when analysing trait call 2018-01-09 09:22:23 -05:00
Matthew Brown
de269f969b Void return types shouldn’t magically become null ones 2018-01-09 00:29:43 -05:00
Matt Brown
45eaea1ed9 Flesh out callmap type 2018-01-05 11:50:27 -05:00
Matthew Brown
8a8253ac4c Fix indentation 2018-01-02 21:23:48 -05:00
Matt Brown
e6aae2f2e2 Fix issue assigning string-typed properties without a string cast 2018-01-02 18:01:59 -05:00
Matthew Brown
81cfe09fae Improve reporting of classlike locations in docblocks 2018-01-01 20:04:03 -05:00
Matthew Brown
a1247aeb60 Remove unused var 2018-01-01 12:13:32 -05:00
Matthew Brown
7418d6685f Add PossibyInvalidFunctionCall, emitted when function call may not be valid 2018-01-01 12:00:02 -05:00
Matthew Brown
290cf396d4 Remove unnecessary suppression 2017-12-31 13:12:19 -05:00
Matthew Brown
8efc939a5f Move Psalm execution code into PHP file that Psalm can analyse 2017-12-29 17:02:56 -05:00
Matthew Brown
c38cf9b672 Migrate type reconciliation code to its own class 2017-12-29 10:55:53 -05:00
Matthew Brown
58c7aa74b4 Prevent recursion when analysing constructor property assignments 2017-12-23 01:01:59 +01:00
Matthew Brown
84260c5edc Prohibit array pass by ref 2017-12-22 15:21:23 +01:00
Matthew Brown
53d887d356 Make sure nested lists get some sort of assignments 2017-12-18 23:13:18 -05:00
Matthew Brown
45fc9fd5d9 Check LHS of property when RHS is variable 2017-12-18 22:35:03 -05:00
Matthew Brown
17edb2bbe6
Add better understanding of arrays with keyed integer offsets (#400)
* Add tests for keyed integer assignemnt

* First pass to get keyed integer assignment working

* Fix array assignment to object-like with different key type

* Improve treatment of objectlikes for callable and iterable comparisons

* Fix array assignment to strings and addition

* Convert expression to CNF

* Do better at merging property types

* Fix array_rand key type
2017-12-18 18:47:17 -05:00
Matt Brown
72da8f655a Don’t stop analysis after mixed method call 2017-12-18 11:05:53 -05:00
Matthew Brown
2ec09b26d2 Clone all types on assignment 2017-12-17 23:22:26 -05:00
Matthew Brown
3b7c84f484 Detect instances where loop invariants are invalidated
Fixes #389
2017-12-17 10:58:03 -05:00
Matthew Brown
c1ce543e81 Make sure to clear previously inferred types when rechecking trait statements
Fixes #399
2017-12-17 01:06:12 -05:00
Matthew Brown
2011b8fb8f Remove dead code 2017-12-16 10:51:04 -05:00
Matt Brown
3b4a7a97bc Don’t treat callmap scalar types as any sort of filtering mechanism
Fixes #393 and fixes #394
2017-12-15 16:48:06 -05:00
Matt Brown
d440e4bbb1 Keep going after seeing a type coercion 2017-12-14 11:33:18 -05:00