Matt Brown
6e259bed03
Always evaluate closures, even when passed as mixed call args
2018-05-08 18:11:10 -04:00
Matt Brown
bc17d23788
Fix mixed empty checks
2018-05-08 16:34:08 -04:00
Matthew Brown
61aeea6375
Fix whole bunches of things
2018-05-07 01:26:06 -04:00
Matthew Brown
21261172a8
Fix #713 - support offsets of known array types
2018-05-05 17:30:18 -04:00
Matthew Brown
1a4ddc7cdd
Support value types ( #707 )
...
* Add first idea
* Add initial count experiments
* Remove false positives
* Fix getId to support changes in conditionals
* Add better tests
* Strip types when not exists
* Fix array offsets
* More fixes
* Add class constant value types
* Clone constants everywhere
* Don’t complain unnecessarily
* Be more lenient with possibly invalid __sets
* Fix mixed issues
* Fix bug concerning orred string equality
* Remove unnecessary casts
2018-05-03 13:56:30 -04:00
Matthew Brown
99da371ac4
Move memoisation after callmap branch
2018-04-28 13:49:27 -04:00
Matthew Brown
da6209276f
Allow ability to memoize empty method calls based on config
2018-04-28 13:05:43 -04:00
Matthew Brown
2fabdf3353
Fix #314 - add a way to indicate @method list is comprehensive
2018-04-22 00:40:30 -04:00
Matthew Brown
1c7568e612
Fix #642 - allow @method to override existing methods
...
behind usePhpDocMethodsWithoutMagicCall="true"
2018-04-21 23:08:08 -04:00
Matthew Brown
8b50cdf315
Fix #632 - add support for @method annotations when method can’t be found
2018-04-21 22:44:54 -04:00
Matthew Brown
d02b148820
Fix #633 - support @method for magic __call methods
2018-04-21 22:13:10 -04:00
Matt Brown
8d7c365e5f
Fix #679 - improve template param type checks
2018-04-20 10:52:23 -04:00
Matt Brown
6afaf5aae9
Make Psalm compatible with PHP Parser 4
2018-04-17 13:06:02 -04:00
Matt Brown
6502eba658
Don’t invalidate object vars after callmap functions
2018-04-13 11:24:59 -04:00
Matthew Brown
5f47374606
Fix indentation
2018-04-09 21:50:38 -04:00
Matt Brown
7640b00635
Only check functionlike arguments match if we know params
2018-04-09 18:49:11 -04:00
Matthew Brown
3fe9a0606e
Fix #654 - warn about MixedArgument when inferredType property does not exist
...
And handle str_replace more leniently when args unknown
2018-04-07 15:16:46 -04:00
Matt Brown
c932ed7764
Fix #651 - allow Psalm to understand assertions on properties of array objects
2018-04-06 16:23:10 -04:00
Matthew Brown
4552e69ef2
Allow classes to be instantiated by their name only
...
Ref #641
2018-04-03 22:20:00 -04:00
Matthew Brown
ef37f0cfe8
Fix #626 - check __invoke methods
2018-03-31 18:57:13 -04:00
Matthew Brown
44cccb5b3d
Fix build
2018-03-27 01:05:11 -04:00
Matthew Brown
fb802540d6
Fix variadic format cc @TysonAndre and allow callable param types
...
Ref #580
2018-03-27 00:12:41 -04:00
Matthew Brown
58115599a1
Add support for callable(...) syntax
...
Ref #580
2018-03-26 22:13:10 -04:00
Matthew Brown
ccbe9980f5
Fix issue with nested trait methods
2018-03-21 17:39:01 -04:00
Matthew Brown
49c4dd8a5d
Fix trait method aliasing
2018-03-21 16:55:31 -04:00
Matthew Brown
452fd2e7c9
Make UndefinedClass an explicit class-related issue
2018-03-21 10:17:57 -04:00
Matthew Brown
5384f193d1
Allow class and method issues to be suppressed by their identifiers
...
Ref #603
2018-03-20 22:36:03 -04:00
Matthew Brown
28522c4f94
Fix #588 - allow anonymous classes to call $this functions
2018-03-18 01:07:14 -04:00
Matthew Brown
eb3750d8f3
Remove unnecessary @var annotations
2018-03-17 00:19:55 -04:00
Matt Brown
6d767de043
Ignore nullable class strings where appropriate
2018-03-06 14:11:32 -05:00
Matt Brown
b664c85642
Add new issue conditional on config flag
2018-03-06 12:19:50 -05:00
Matt Brown
357ad1aa82
Add config flags to allow stricter class invocation checks
2018-03-06 11:20:59 -05:00
Matt Brown
850998ed1a
Add class-string type for enforcing use of ::class constants
2018-03-05 16:06:06 -05:00
Matthew Brown
806b032b13
Downgrade UndefinedMethod to PossiblyUndefinedMethod issue when one type has __call defined
2018-03-04 13:23:40 -05:00
Matthew Brown
d94abc42e8
Fix array location
2018-03-02 08:38:16 -05:00
Matthew Brown
ee6a9b98fb
Allow arrays to be called (ugh)
2018-03-02 00:49:53 -05:00
Matthew Brown
47cb74ddd1
Fix issue where namespaced function could be treated as root
2018-02-25 11:13:00 -05:00
Matt Brown
441506ad6f
Fix #216 - scan assert* functions for assertions, then apply to current context
2018-02-23 15:39:33 -05:00
Matt Brown
09d708981a
Add mixed checks to property __set calls
2018-02-21 19:34:21 -05:00
Matt Brown
e04c4f866c
Fix #524 - prevent fatal error when checking stubbed function from namespace
2018-02-21 11:32:52 -05:00
Tyson Andre
aea3779c96
Fix unused imports in psalm, wrong param order doc comments ( #523 )
...
(Some of the imports appear as strings elsewhere in the same file)
2018-02-18 17:55:11 -05:00
Matthew Brown
59dc239c89
Fix #522 - prevent interface instantiation
2018-02-17 18:53:02 -05:00
Matthew Brown
a0e88cb16f
Fix #518 - improve dead code detection to cover variable method calls
2018-02-17 17:23:57 -05:00
Matthew Brown
b041797cd0
Fix #519 - warn about variable calls on non-objects
2018-02-17 17:16:22 -05:00
Matt Brown
279b0bc16e
Fix #511 - check all class references for missing dependencies
2018-02-14 13:34:16 -05:00
Matt Brown
be75c143d4
Fix #510 - check that constructor parent classes and interfaces exist
2018-02-14 11:21:43 -05:00
Matthew Brown
affcaebc3d
Use classes, not full method ids, for plugin execution
2018-02-11 22:49:19 -05:00
Matthew Brown
f159cd5146
Add declaring/appearing method ids to method check plugin
2018-02-11 21:07:19 -05:00
Matthew Brown
e862e4ddb1
Make all plugin methods static
...
cc @TysonAndre
2018-02-11 20:56:34 -05:00
Matthew Brown
217233472c
Fix #457 - fix objectlike property isset check
2018-02-10 23:30:40 -05:00
Nicky Robinson
8e77ff1ce9
Throw error if magic getter or setter called for undefined property or invalid type specified with annotations ( #500 )
...
* Fix path to psalm
* If a magic getter or setter is used to access a property on a class
that is not defined but a `@property` annotation for the property
exists, throw an error. If no `@property` annotation exists, it's not
an error because you're allowed to make magic getters and setters do
crazy things.
Fixes #480
* Move logic to a better place to avoid duplicate checks
* Move logic into function
* Remove some nesting
* Check psalm-seal-properties and property type correctly
2018-02-09 19:37:09 -05:00
Matthew Brown
40efa9e8aa
Fix #503 - make sure mixed array type is set for MixedMethodCall
2018-02-08 23:22:29 -05:00
Matt Brown
b4281748bc
Remove redundant code found by Psalm
2018-02-07 13:57:45 -05:00
Matt Brown
1d46124bab
Fix issues found by detecting docblock type inconsistencies
2018-02-06 13:40:28 -05:00
Matthew Brown
8e0998e081
Break apart the Codebase class
2018-02-03 18:56:54 -05:00
Matthew Brown
861d907845
Add more information to TooMany/TooFewArguments issues
...
Fixes #481
2018-02-02 11:26:55 -05:00
Matthew Brown
fb300baa6d
Move a bunch of code into Codebase
2018-02-01 00:50:01 -05:00
Matthew Brown
cf8734a480
Add support for generic classes
2018-01-31 23:27:25 -05:00
Matt Brown
fc805a926e
Add code coverage message at the end of a scan
2018-01-31 16:08:52 -05:00
Matt Brown
4099bf24ce
Make sure new $class args are always evaluated
2018-01-29 12:22:50 -05:00
Matthew Brown
e0fa3adb6f
Split up CallChecker to speed up Psalm
2018-01-28 18:29:38 -05:00