1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-16 11:26:55 +01:00
Commit Graph

128 Commits

Author SHA1 Message Date
Matt Brown
3075f16308 Ignore static, self and parent in callable class names 2017-08-18 17:02:15 -04:00
Matt Brown
c626b7d68a Fix #200 - allow mapping of more callable strings, and callable arrays 2017-08-14 19:30:11 -04:00
Matt Brown
d6e2e786db Ignore self calls as well 2017-08-11 19:09:15 -04:00
Matt Brown
a7baa7e928 Support callable checks on inline-defined functions 2017-08-11 19:05:04 -04:00
Matt Brown
13d98b803d Check that callable string class exists first 2017-08-11 18:48:58 -04:00
Matt Brown
17a900ab54 Add ability to detect invalid callable functions 2017-08-11 18:30:58 -04:00
Matthew Brown
4175295113 Isolate where we load static storage objects (#195)
* Move FileChecker::$storage calls to provider

* Add ClassLikeStorageProvider

* Use ClassLikeStorageProvider everywhere

* Move storage arrays into providers
2017-07-29 15:05:06 -04:00
Matthew Brown
e29dd140e3 Refactor scanning and analysis, introducing multithreading (#191)
* Add failing test

* Add visitor to soup up classlike references

* Move a whole bunch of code into the visitor

* Move some methods back, move onto analysis stage

* Use the getAliases method everywhere

* Fix refs

* Fix more refs

* Fix some tests

* Fix more tests

* Fix include tests

* Shift config class finding to project checker and fix bugs

* Fix a few more tests

* transition test to new syntax

* Remove var_dump

* Delete a bunch of code and fix mutation test

* Remove unnecessary visitation

* Transition to better mocked out file provider, breaking some cached statement loading

* Use different scheme for naming anonymous classes

* Fix anonymous class issues

* Refactor file/statement loading

* Add specific property types

* Fix mapped property assignment

* Improve how we deal with traits

* Fix trait checking

* Pass Psalm checks

* Add multi-process support

* Delay console output until the end

* Remove PHP 7 syntax

* Update file storage with classes

* Fix scanning individual files and add reflection return types

* Always turn XDebug off

* Add quicker method of getting method mutations

* Queue return types for crawling

* Interpret all strings as possible classes once we see a `get_class` call

* Check invalid return types again

* Fix template namespacing issues

* Default to class-insensitive file names for includes

* Don’t overwrite existing issues data

* Add var docblocks for scanning

* Add null check

* Fix loading of external classes in templates

* Only try to populate class when we haven’t yet seen it’s not a class

* Fix trait property accessibility

* Only ever improve docblock param type

* Make param replacement more robust

* Fix static const missing inferred type

* Fix a few more tests

* Register constant definitions

* Fix trait aliasing

* Skip constant type tests for now

* Fix linting issues

* Make sure caching is off for tests

* Remove unnecessary return

* Use emulative parser if on PHP 5.6

* Cache parser for faster first-time parse

* Fix constant resolution when scanning classes

* Remove test that’s beyond a practical scope

* Add back --diff support

* Add --help for --threads

* Remove unused vars
2017-07-25 16:11:02 -04:00
Matthew Brown
d8654b8389 Slow down Psalm by checking parent initialisations too 2017-06-30 01:24:45 -04:00
Matthew Brown
bc35f88859 Fix issue with $this instanceof checks in traits 2017-06-23 00:39:37 -04:00
Matthew Brown
93e7486d5e Reduce line length 2017-05-26 20:17:56 -04:00
Matthew Brown
22a716f4da Improve formatting of phpdocs 2017-05-26 20:16:18 -04:00
Matthew Brown
d6909193ea Add additional formatting changes 2017-05-26 20:05:57 -04:00
Matthew Brown
0fdf281896 Add support for @deprecated classes 2017-05-25 00:34:39 -04:00
Matthew Brown
44b4d04e0a Fix #95 - emit issue on private constructor calls 2017-05-24 23:55:54 -04:00
Matthew Brown
8f317cd8a2 Fix #133 - emit issue when calling no-constructor class with args 2017-05-24 23:11:40 -04:00
Matthew Brown
4fd46e1752 Improve formatting 2017-05-24 22:07:49 -04:00
Matthew Brown
7532e32b9d Fixed spacing and use statement formatting 2017-05-19 00:48:26 -04:00
github@muglug.com
9ff8736e53 Add the means to ignore PossiblyNull* errors from the type itself 2017-05-09 16:38:58 -04:00
Matthew Brown
c9b9b29cf4 Fix all phpcs issues 2017-05-04 21:57:26 -04:00
Jon Ursenbach
f65c618b2e PSR-2 adjustments and adding PHPCS checks into the Travis config. (#149)
* PSR-2 adjustments and adding PHPCS checks into the Travis config.

* Reverting some CallChecker changes and no longer casting vars to null.
2017-04-28 00:31:55 -04:00
Matthew Brown
007442fdd0 Fix possibly-private error 2017-04-15 21:10:49 -04:00
Matthew Brown
f67e92023b Add support for intersection types
Fixes #140
2017-04-15 20:36:40 -04:00
Matthew Brown
ce6ca58291 Fix #114 - add optional Hack-like checks calls 2017-04-14 21:32:14 -04:00
Matthew Brown
32efdfd0f7 Fix #129 - emit PossiblyNullFuntionCall when encountering such a thing 2017-04-08 11:38:06 -04:00
Matthew Brown
2d454d6e10 Fix #130 - check class exists before checking for __invoke 2017-04-08 11:15:17 -04:00
Matthew Brown
a985fd9324 Add PossiblyInvalidArgument for closure param type checks 2017-04-08 09:47:03 -04:00
Matthew Brown
64361ad2c3 Add more descriptive message to PossiblyInvalidArgument issue 2017-04-08 09:43:58 -04:00
Matthew Brown
c663062816 Add PossiblyUndefinedArgument issue to cope with #126 2017-04-08 09:28:02 -04:00
Matthew Brown
b3a454cf5b Create new InvalidMethodCall issue for calling methods on non-objects 2017-04-08 09:20:32 -04:00
Matt Brown
f011197090 Fix #124 - don’t check array_filter closures when >2 args passed 2017-04-07 18:30:15 -04:00
Matt Brown
14bb967c7d Warn when doing === comparisons on incompatible types 2017-04-06 14:53:45 -04:00
Matt Brown
fe43c4e37f Fix #122 - allow multiple types of filtering 2017-04-03 12:36:49 -04:00
Matthew Brown
c33e66813a Move type algebra functionality to separate checker 2017-03-18 13:37:00 -04:00
Matt Brown
ae0ca9553f Remove training wheels 2017-03-13 12:02:28 -04:00
Matt Brown
f9f38f283e Emit issue when property type is not defined 2017-03-02 12:19:18 -05:00
Matthew Brown
18b5617443 Prevent duplicate lookup of functionstorage 2017-03-02 00:00:31 -05:00
Matthew Brown
5cd1b6735f Add even more references in docblocks 2017-03-01 22:27:52 -05:00
Matt Brown
864d242f13 Improve labelling of referencing expressions 2017-03-01 11:56:36 -05:00
Matt Brown
518184f388 Don’t do a full class check where not necessary 2017-02-28 11:00:32 -05:00
Matt Brown
4f597a4068 Fix references 2017-02-27 16:38:43 -05:00
github@muglug.com
07c9cfb848 Check template typeof class references 2017-02-27 16:35:24 -05:00
Matt Brown
729954573b Allow generics to work even if variables not checked 2017-02-27 11:07:44 -05:00
Matt Brown
ac1a45f129 Fix erroneous error message 2017-02-27 10:53:32 -05:00
Matt Brown
7baf942eaa Prevent false positives after extract call 2017-02-27 10:52:43 -05:00
Matthew Brown
d9433c9491 Add way to find all references to a given class or method in the codebase 2017-02-27 01:30:44 -05:00
Matthew Brown
cd5f727d2e Collect explicit references to classes/methods 2017-02-26 23:09:18 -05:00
Matthew Brown
12cb72ae4b Prevent recursion when checking for initialisations 2017-02-22 00:51:34 -05:00
Matthew Brown
9579460c59 Fix #97 - is_callable shouldn’t prevent evaluation of calls to existing functions 2017-02-16 20:51:53 -05:00
Matthew Brown
32dd5d5512 Be better about dealing with byref args when not checking functions 2017-02-15 01:47:03 -05:00