Matthew Brown
5d9ebd06d6
Don’t check classes after extension_loaded call
2018-01-12 23:47:36 -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
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
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
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
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
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
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
c1ce543e81
Make sure to clear previously inferred types when rechecking trait statements
...
Fixes #399
2017-12-17 01:06:12 -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
Matthew Brown
146cb12277
Refine function arguments if they match non-docblock equivalents
2017-12-10 21:14:30 -05:00
Matthew Brown
13f290038a
Improve RedundantCondition checks and add true type
...
Fixes #383
2017-12-09 14:53:39 -05:00
Matt Brown
eca7351472
Add return-level issues as well as function-level ones
...
Fixes #379
2017-12-07 15:50:25 -05:00
Matthew Brown
52fc81e4ab
Remove need for a __toString return type
...
Fixes #364
2017-12-05 23:47:50 -05:00
Matthew Brown
f5ca4b1c52
Also remove var from clauses when updating
2017-12-03 17:36:50 -05:00
Matthew Brown
6843dfb7fc
Remove from_docblock status if we make a successful method call
2017-12-03 17:21:20 -05:00
Matthew Brown
cb4691fb44
Always set templated types as being from docblocks
2017-12-03 13:22:06 -05:00
Matthew Brown
cb9079ca88
Improve generic param replacement
2017-12-03 11:23:40 -05:00
Matthew Brown
d20b8d3034
Improve loop analysis ( #365 )
2017-12-02 18:28:18 -05:00
Matt Brown
062d46c132
Update to latest php-cs-fixer
2017-11-30 19:00:09 -05:00
Matthew Brown
0ea6540018
Fix #358 , don’t emit PropertyNotSetInConstructor on public final classes/methods
2017-11-29 23:46:56 -05:00
Matthew Brown
f27bd50abe
Add RedundantCondition issue, replacing FailedTypeResolution ( #344 )
...
* Group changes
* Don’t worry about vars defined before exiting
* Fix issues with vars defined in conditionals
* Add failing test
* Only add failed reconciliation flag if nothing could be salvaged
* Avoid notice when removing clauses
* Improve handling of loops
* Fix evaluation of binary op expressions
* Remove unset vars from outer context after loop
* Ignore RedundantCondition in some more configs
2017-11-28 00:46:41 -05:00
Matthew Brown
4312ef380b
Fix issues found by improved Psalm checks
...
cc @TysonAndre, found with RedundantCondition checks
2017-11-24 12:10:30 -05:00
Matt Brown
60c9f1ca96
Ignore socket_select when assigning byref params
2017-11-20 17:34:32 -05:00
Matthew Brown
957600623c
Fix issue with byref template params leaking
2017-11-20 00:12:17 -05:00
Matthew Brown
ccc0583bf8
Fix issue with bad assign after array_pop/array_shift
2017-11-19 23:46:32 -05:00
Matthew Brown
90bcd99eab
Fix issue where array_shift/array_pop didn’t mark array as modified
2017-11-19 21:36:09 -05:00
Matthew Brown
942bc0a663
Add new MixedTypeCoercion issue, fixes #320
2017-11-19 13:42:48 -05:00
Matthew Brown
abe7c003ab
Fix #309 - borrowing fix from @TysonAndre
2017-11-15 20:45:53 -05:00
Matt Brown
c5faa2d06a
Fix #299 - add PossiblyInvalidMethodCall
2017-11-15 11:34:40 -05:00
Matthew Brown
3ade4b9559
Fix #293 , be case invariant to self & static
2017-11-14 21:56:29 -05:00
Tyson Andre
d9a142ac7d
Fix incorrect strpos argument order ( #287 )
...
Detected via static analysis
2017-11-11 21:48:43 -05:00
Matthew Brown
4f2a200b45
Fix #283 - add more refined PossiblyUndefinedMethod check
2017-11-11 14:53:35 -05:00
Matt Brown
59265ef2bf
Fix #276 - fix false positive in magic call
2017-11-10 18:08:26 -05:00
Matthew Brown
765d82548d
Remove more dead code
2017-11-08 23:27:51 -05:00
Tyson Andre
b3505cfbef
Get rid of unused variables in psalm's codebase ( #272 )
...
* Remove unused variables
* Fix more unused variables
* Fix remaining detected undefined variables
Other 20 detected undefined variable warnings were false positives.
2017-11-08 23:14:27 -05:00
Matt Brown
490e78e136
Add isset check for safety
2017-11-06 15:42:39 -05:00
Matt Brown
97de8f7684
Allow Psalm to check static call LHS vars
2017-11-06 15:37:49 -05:00
Matt Brown
b163c296ff
Fix templated return types in traits
2017-11-02 15:07:39 -04:00