Matt Brown
c626b7d68a
Fix #200 - allow mapping of more callable strings, and callable arrays
2017-08-14 19:30:11 -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
Matt Brown
cfbf256593
Add version check for reflected function return type
2017-07-10 10:38:02 -04:00
Matthew Brown
dcb6ecd3fd
Fix reference errors
2017-07-09 23:26:16 -04:00
Matthew Brown
05674ef3bc
Fix #182 by properly registering autoload file functions
2017-07-09 23:24:06 -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
4fd46e1752
Improve formatting
2017-05-24 22:07:49 -04:00
muglug
77a44051c5
Fix issues with @psalm-ignore-nullable-return types
2017-05-22 14:50:03 -04:00
Matthew Brown
7532e32b9d
Fixed spacing and use statement formatting
2017-05-19 00:48:26 -04:00
Matt Brown
77da5ca99e
Fix #156 - allow objectlike arrays to be merged nicely
2017-05-05 18:53:45 -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
Matt Brown
d06a199d25
Fix #121 - simplify all parameter types
2017-03-30 11:44:38 -04:00
Matt Brown
864d242f13
Improve labelling of referencing expressions
2017-03-01 11:56:36 -05:00
Matthew Brown
cd5f727d2e
Collect explicit references to classes/methods
2017-02-26 23:09:18 -05:00
Matt Brown
83a978ea80
Fix array_filter on string-keyed arrays
2017-02-13 19:16:25 -05:00
Matt Brown
32d85e20da
Remove unused vars
2017-02-10 19:10:13 -05:00
Matt Brown
c0a6fc9125
Fix #90 - add genericised stubs for common array functions
2017-02-10 18:12:59 -05:00
Matthew Brown
98b0ed280c
Add support for templating
2017-02-09 20:35:17 -05:00
Matthew Brown
95ebf5178a
Add array_slice call to methods whose return types we can infer
2017-01-30 22:26:31 -05:00
Matthew Brown
6bcc763414
Fix #3 by checking inside __constructor calls for initialisations
2017-01-26 23:23:12 -07:00
Matthew Brown
a14b03c057
Fix issue with array_merge, and then bugs revealed by that
2017-01-19 01:32:35 -05:00
Matt Brown
dae7718ae8
Support array_combine types and introduce a MoreSpecificReturnType issue
2017-01-17 11:17:49 -05:00
Matthew Brown
3cdb1753d5
Update to the more accurate TypeChecker::isContainedBy
2017-01-16 20:00:51 -05:00
Matthew Brown
5315fd15ad
Fix namespaced functions in regular use statements
2017-01-16 00:49:12 -05:00
Matthew Brown
f614944b63
Add predefined functions to avoid throwing errors
2017-01-15 20:11:02 -05:00
Matthew Brown
9b06b672ba
Fix #54 - register function constants when function is invoked
2017-01-15 16:43:49 -05:00
Matthew Brown
03141e41c2
Move string-stored types into named classes
2017-01-15 10:22:05 -05:00
Matthew Brown
e59dba3c70
Allow alt version of callmap variadic syntax
2017-01-13 18:01:07 -05:00
Matthew Brown
c20f31855c
Fix namespaced function calls
2017-01-12 09:42:24 -05:00
Matthew Brown
03c5ea3cef
Store all class keys lowercased
2017-01-09 00:14:39 -05:00
Matthew Brown
6ee69e547f
Do more to separate out processing steps
2017-01-06 01:07:11 -05:00
Matthew Brown
7609ca02c0
Fix #32 by evaluating all class references in files lazily
2017-01-04 23:42:58 -05:00
Matthew Brown
4c3e714253
Add a check for duplicated params
2017-01-02 01:20:47 -05:00
Matthew Brown
ee4a3882a7
Check method defaults to see whether they match
2016-12-30 23:40:32 -05:00
Matthew Brown
a524ca8184
Suppress more notices
2016-12-30 20:39:12 -05:00
Matthew Brown
b068bd7858
Fix many bugs
2016-12-30 20:05:32 -05:00
Matthew Brown
f515327f16
Fix file_name/file_path mixup
2016-12-30 19:06:45 -05:00
Matthew Brown
c65a0bf181
Move function static arrays into FileStorage
2016-12-30 18:08:07 -05:00
Matthew Brown
dac54c41ab
Fix array_filter with no second arg usage
2016-12-26 14:40:32 +00:00
Matthew Brown
b6eea4e812
Fix #20 - emit an issue when param is missing a type or param
2016-12-25 11:32:21 +00:00
Matthew Brown
8ad3ee4f53
Fix for fix
2016-12-25 01:35:13 +00:00
Matthew Brown
6a19aa63d2
Fix array_filter return type
2016-12-25 01:33:14 +00:00
Matthew Brown
c55870e26c
Allow generic TypeChecker::isContainedBy checks
2016-12-24 18:28:43 +00:00
Matthew Brown
c41b0a4679
Tighten getParamsFromCallMap return type
2016-12-23 20:10:20 +00:00
Matthew Brown
e79dded17b
Fix #19 - InvalidDocblock errors have proper casing now
2016-12-19 22:02:00 +00:00
Matt Brown
6755c8724a
Add tests for M* issues, fixing bugs along the way
2016-12-16 18:56:23 -05:00
Matthew Brown
592ee98efc
Fix bugs discovered by adding more tests
2016-12-11 23:40:46 -05:00
Matt Brown
14277201d4
Improve understanding of objectlike types in array_* functions
2016-12-09 18:53:10 -05:00
Matt Brown
55a060b53a
Add support for closure checks
2016-12-07 14:13:39 -05:00
Matthew Brown
7aac9985de
Remove unnecessary suppression
2016-12-07 01:14:47 -05:00
Matthew Brown
cb9fe6e231
Add typehint to property/call maps
2016-12-07 01:12:42 -05:00
Matthew Brown
ef1049224d
Add selection of return types in code preview
2016-12-06 16:33:47 -05:00
Matthew Brown
ffee37a23a
Support nullable return types
2016-12-03 23:03:18 -05:00
Matthew Brown
ae16353f94
Suppress a couple more issues
2016-12-03 20:44:04 -05:00
Matthew Brown
a1acbfec07
Show code snippets when reporting errors
...
This also introduces a new method of identifying specific code locations when creating issues
2016-12-03 19:11:30 -05:00
Matthew Brown
e43fd6af53
Fix invalid phpdoc return type
2016-11-20 23:57:37 -05:00
Matthew Brown
5a9f99c24e
Fix namespacing issues in PHP 5.6
2016-11-20 21:49:06 -05:00
Matthew Brown
5cf95b42f2
--update-docblocks now works
2016-11-12 23:59:31 -05:00
Matthew Brown
264e77addd
Change a few more words
2016-11-07 19:16:51 -05:00
Matthew Brown
36fc49965b
Correct speling
2016-11-07 17:31:02 -05:00
Matthew Brown
622a0794c3
Swap in Fully-Qualified for Absolute terms
2016-11-07 17:29:51 -05:00
Matthew Brown
492269ddd4
Ignore inability to infer when requiring
2016-11-05 18:46:17 -04:00
Matthew Brown
c5591adf10
Add support for global in functions and mixed inferred return errors
2016-11-05 17:54:34 -04:00
Matthew Brown
7df4d74a7b
Fix Psalm errors
2016-11-04 21:14:04 -04:00
Jon Ursenbach
8a6e8e9940
Fixing remaining PSR-2 violations.
2016-11-03 20:51:56 -04:00
Jon Ursenbach
27c2db1d1d
PSR-2
2016-11-02 17:50:54 -04:00
Matthew Brown
70f8947336
Break apart long functions
2016-11-02 09:24:36 -04:00
Matthew Brown
34af24a2b4
Add all the properties
2016-11-01 00:39:41 -04:00
Matthew Brown
604c875d0c
Fix more errors caught by Psalm
2016-10-30 12:46:18 -04:00
Matthew Brown
98437c52db
Check closure params to see if they align with array_map/array_filter args
2016-10-29 22:17:46 -04:00
Matthew Brown
b31ac4a862
Removed object-like type descriptor in favour of array{} syntax
2016-10-28 13:24:06 -04:00
Matthew Brown
b627bdf9c6
Catch bad docblock issue
2016-10-28 10:54:20 -04:00
Matthew Brown
78e183ea0c
Filter null & false if no arg passed to array_filter
2016-10-26 17:51:34 -04:00
Matthew Brown
c48ce9ec33
Deal with optional callmap args better
2016-10-26 11:51:59 -04:00
Matthew Brown
74ec219421
Add more checks for inferredType
2016-10-24 12:13:12 -04:00
Matthew Brown
2ddb08c778
Add more protective checks
2016-10-24 11:06:04 -04:00
Matthew Brown
ce95275878
Fix more Psalm bugs found by Psalm
2016-10-23 12:24:53 -04:00
Matthew Brown
d8b10a6c97
Fix errors caught by Psalm
2016-10-23 01:57:11 -04:00
Matthew Brown
f3f1ba1caa
Break out block checkers
2016-10-22 17:35:59 -04:00
Matthew Brown
0100ca2b8c
Add better cache clear
2016-10-20 18:12:13 -04:00
Matthew Brown
d71d439e25
Closure basically implements callable
2016-10-20 18:05:28 -04:00
Matthew Brown
4c51e02107
Fix function checking
2016-10-20 14:36:15 -04:00
Matthew Brown
a4644a0e4a
Add support for Generator types
2016-10-20 14:28:16 -04:00
Matthew Brown
98b4029ebd
Support PHP7 return types
2016-10-18 21:54:08 -04:00
Matthew Brown
a1acaa231a
Allow @psalm-variadic to denote functions that use func_call_args
2016-10-18 17:55:07 -04:00
Matthew Brown
b2a5081163
Add checks for method signature mismatch
2016-10-15 18:01:04 -04:00
Matthew Brown
81e15362a0
Fix psalm errors in psalm
2016-10-15 10:36:19 -04:00
Matthew Brown
ca3dfe6e39
Fix Psalm errors in Psalm
2016-10-15 00:12:57 -04:00
Matthew Brown
6201957f76
Add a ton of docblocks
2016-10-14 00:53:43 -04:00
Matthew Brown
e152a8f6f1
Type array_pop/array_shift returns better
2016-10-12 01:37:32 -04:00
Matthew Brown
a30c82e5d7
Fix bugs in refactor
2016-10-10 01:35:12 -04:00
Matthew Brown
5292467db0
Add @todo issues and fix errors in StatementsChecker
2016-10-09 17:54:58 -04:00
Matthew Brown
e9a30ca556
Remove descendent types when assigning
2016-09-17 11:57:44 -04:00
Matthew Brown
f455851f89
Fix bugs in array key checks
2016-09-09 18:36:35 -04:00
Matthew Brown
8c5adf477a
Add support for key/value array typing
2016-09-09 16:21:49 -04:00
Matthew Brown
99649f2f09
Fix reference errors
2016-09-01 00:07:29 -04:00
Matthew Brown
8212284675
Map function return types for builtins
2016-08-30 00:05:13 -04:00
Matthew Brown
a4a1fd9557
Explicitly return array of strings for explode
2016-08-22 18:09:52 -04:00