Matthew Brown
6f5a214365
Allow param redefinition, but complain if it differs to parent class
2018-01-05 00:19:35 -05:00
Matthew Brown
c9173c7da3
Add more specific issues for falsable/nullable invalid return types
2018-01-04 21:36:16 -05:00
Matthew Brown
6cff92d813
Don’t worry about invalid closure docblocks
2018-01-04 20:35:43 -05:00
Matthew Brown
a8ac9d4fdc
Flesh out return types before comparing
2018-01-04 20:13:09 -05:00
Matthew Brown
5995de0c9f
Fix possible nullref
2018-01-04 19:31:12 -05:00
Matthew Brown
6e7bab58c4
Be better about inherited core method arg types
2018-01-04 18:58:03 -05:00
Matthew Brown
db7abc2b90
Add more debug output when using reflection/composer classmap
2018-01-04 14:13:54 -05:00
Matthew Brown
12aef22f05
Fix issue where byref differences would not be highlighted
2018-01-04 14:01:17 -05:00
Matthew Brown
8a8253ac4c
Fix indentation
2018-01-02 21:23:48 -05:00
Matt Brown
13931766ce
Add PHP 7.2-compatibility for Psalm development
2018-01-02 19:55:07 -05:00
Matt Brown
e6aae2f2e2
Fix issue assigning string-typed properties without a string cast
2018-01-02 18:01:59 -05:00
Matt Brown
310f91ea81
Warn when methods with typehints don’t return for all codepaths
2018-01-02 16:57:40 -05:00
Matt Brown
fdff250c4a
Preserve keys when merging arrays
2018-01-02 12:59:22 -05:00
Matthew Brown
cc81d78dfd
Add code replacement api to allow Psalm to update arbitrary parts of the codebase
...
Fixes #264
2018-01-02 09:46:50 -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
5afe3b10fa
Scan compoer autoload files before any sweep of code
2018-01-01 11:47:03 -05:00
Matthew Brown
290cf396d4
Remove unnecessary suppression
2017-12-31 13:12:19 -05:00
Matthew Brown
2d24f9e99d
Don’t complain about unused variables when they’re passed by reference
2017-12-30 09:30:02 -05:00
Matthew Brown
752e99ad2e
Reduce PossiblyUnusedParam false positives
2017-12-30 08:47:00 -05:00
Matthew Brown
f81642c1eb
Fix location of function param vars
2017-12-29 21:28:21 -05:00
Matthew Brown
37a3c0a81e
Avoid checking classes named Null, because PHP will complain
...
Ref #415
2017-12-29 19:45:32 -05:00
Matthew Brown
086b314df8
Cut down on interface PossiblyUnusedMethod reports
2017-12-29 19:38:01 -05:00
Matthew Brown
875bb8c072
Improve dead code detection, reducing false positives for params
2017-12-29 17:27:16 -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
0b58ee425d
Fix trait method evaluation order
2017-12-29 11:26:28 -05:00
Matthew Brown
c38cf9b672
Migrate type reconciliation code to its own class
2017-12-29 10:55:53 -05:00
Matthew Brown
81efe28f79
Fix #403 by complaining about return values in void functions
2017-12-28 21:49:03 +01:00
Matthew Brown
b96ab18d4b
Improve throw issue message
2017-12-28 21:35:25 +01:00
Matthew Brown
b8c349166e
Add InvalidCatch and InvalidThrow to prevent erroneous exceptions
...
Fix #411 and fix #412
2017-12-28 20:40:28 +01:00
Matthew Brown
dd0f046aee
Fix #410 - make sure anything inside a catch statement is treated as Throwable ( #413 )
2017-12-28 01:49:36 +01:00
Matthew Brown
becce4ae36
Use composer classmap where available to remove need for reflection of vendor classes
2017-12-28 00:56:10 +01:00
Matthew Brown
57592aca41
Fix #409 - PropertyNotSetInConstructor can be suppressed at the property level
2017-12-27 12:27:59 +01:00
Matthew Brown
e2e1094ec6
Fix #407 - improve treatment of array_merge unpacked args
2017-12-23 02:09:58 +01:00
Matthew Brown
ec92b40ed3
If class checking fails for storage reasons, don’t quit analysis
2017-12-23 01:26:08 +01:00
Matthew Brown
58c7aa74b4
Prevent recursion when analysing constructor property assignments
2017-12-23 01:01:59 +01:00
Matthew Brown
2f5b05887b
Promote CircularReference from exception to issue
2017-12-22 18:56:59 +01:00
Matthew Brown
c5ea5178e1
Remove unnecessary issue type
2017-12-22 16:09:56 +01:00
Matthew Brown
84260c5edc
Prohibit array pass by ref
2017-12-22 15:21:23 +01:00
Matthew Brown
714d0678b1
Fix file analysis after realpath fix
2017-12-19 13:08:47 -05:00
Matthew Brown
abc9c051a9
Improve analysis of constant arrays
2017-12-19 09:48:01 -05: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
ab3b8a0cf2
Make array{a:string} a subtype of array<string, string>
...
cc @weirdan
2017-12-18 20:08:45 -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
Matt Brown
597ed0ed12
Fix #401 - don’t panic when checking generator against other types
2017-12-18 10:58:46 -05:00
Matthew Brown
4b0cee6142
Only complain about redundant conditions if there’s one negated clause
2017-12-18 00:47:36 -05:00
Matthew Brown
4ff26cdd8f
Fix RedundantCondition complaint when examining CNF queries
2017-12-18 00:39:00 -05:00