1
0
mirror of https://github.com/danog/psalm.git synced 2025-01-21 21:31:13 +01:00

180 Commits

Author SHA1 Message Date
Matthew Brown
6c9cdd896b Separate InvalidArrayAccess and InvalidArrayOffset 2017-11-15 21:10:07 -05:00
Matt Brown
a99135c4d0 Fix #300 - add PossiblyInvalidPropertyFetch 2017-11-15 11:44:13 -05:00
Matt Brown
c5faa2d06a Fix #299 - add PossiblyInvalidMethodCall 2017-11-15 11:34:40 -05:00
Matt Brown
9111b1c725 Fix #301 - add PossiblyInvalidPropertyAssignment 2017-11-15 11:15:03 -05:00
Matthew Brown
f96f3a467d Fix #296 - add issue for raw object iteration 2017-11-14 22:55:48 -05:00
Matthew Brown
b2ae9a2892 Fix #291, #292 and #297 by improving docblock parsing 2017-11-14 21:43:31 -05:00
Matthew Brown
a0a9128375 Fix #285 - add PossiblyInvalidArrayAccess 2017-11-11 21:22:11 -05:00
Matthew Brown
4f2a200b45 Fix #283 - add more refined PossiblyUndefinedMethod check 2017-11-11 14:53:35 -05:00
Matt Brown
81493a639e Add more robust property assignment when property not defined 2017-11-03 12:27:01 -04:00
Matthew Brown
35e6cf8108 Change MissingInclude to MissingFile 2017-10-29 17:36:02 -04:00
Matthew Brown
b618bd798d Add new issues for missing required files 2017-10-29 14:39:23 -04:00
Matt Brown
c850ef644d Add PossiblyFalseReference and PossiblyFalseArgument issues
Useful for catching error cases
2017-10-23 11:47:00 -04:00
Matthew Brown
6ab693ceeb Add missing class 2017-10-07 11:31:18 -04:00
Matthew Brown
3a8efec728 Add error for pass by reference 2017-09-16 13:16:21 -04:00
Matthew Brown
8aabcbce35 Introduce UntypedParam warnings when functions are missing param types 2017-09-02 11:18:56 -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
91bdd65588 Fix #179 - check for abstract method instantiations 2017-06-30 10:24:47 -04:00
Matthew Brown
8fd671bdc4 Fix #167 - prevent Empty type in assignment 2017-06-28 23:37:02 -04:00
Matt Brown
f49d167a49 Add tracking from where a trait was included 2017-06-21 14:22:52 -04:00
Matthew Brown
22a716f4da Improve formatting of phpdocs 2017-05-26 20:16:18 -04:00
Matthew Brown
688a72c794 Fix #36 - emit issues on deprecated properties 2017-05-25 01:32:34 -04:00
Matthew Brown
0fdf281896 Add support for @deprecated classes 2017-05-25 00:34:39 -04:00
muglug
65d86d35ad Separate iterator issues 2017-05-22 11:59:58 -04:00
Matthew Brown
92e184086f Fix #158 - prevent using resource in return type 2017-05-21 13:48:17 -04:00
Matthew Brown
32efdfd0f7 Fix #129 - emit PossiblyNullFuntionCall when encountering such a thing 2017-04-08 11:38:06 -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
da19b55db1 Add special TypeDoesNotContainNull issue as distinct from TypeDoesNotContainType 2017-04-06 15:36:22 -04:00
Matthew Brown
dcedd65215 Add check for paradoxical statements 2017-04-02 15:26:10 -04:00
Matthew Brown
e687887ba3 Emit an InvalidReturnType when it should contain null, and introduct LessSpecificReturnType 2017-03-18 12:18:17 -04:00
Matt Brown
182f715b62 Add dead code detection for possibly unused public methods 2017-02-23 19:52:23 -05:00
Matthew Brown
fa3b292fd4 Fix #101 - restrict the values of pass-by-ref variables 2017-02-23 00:25:28 -05:00
Matthew Brown
e0e92785f8 Complain about unevaluated code in more concrete fashion 2017-02-12 16:49:32 -05:00
Matthew Brown
8ff6634e7b Add issue for possibly unused variables in public/private methods
also changed a lot of access
2017-02-11 18:56:38 -05:00
Matthew Brown
35e4b380cc Add collection of PossiblyNull* issues 2017-02-11 17:55:08 -05:00
Matthew Brown
cdcacc395d Rename DeadCode to UnusedVariable, UnusedMethod and UnusedClass 2017-02-08 00:28:26 -05:00
Matt Brown
f4857eb0dd Make dead code check emit an issue 2017-02-07 18:18:33 -05:00
Matthew Brown
1ece3071f9 Add reference counting for methods and remove dead code 2017-01-29 23:44:05 -05:00
Matthew Brown
6bcc763414 Fix #3 by checking inside __constructor calls for initialisations 2017-01-26 23:23:12 -07:00
Matthew Brown
894b25487f Fix #71 - prevent instantiation of abstract classes 2017-01-20 00:10:10 -05:00
Matthew Brown
9d1b382820 Fix #48 by recording class definition line number & file path 2017-01-19 23:45:21 -05:00
Matt Brown
dae7718ae8 Support array_combine types and introduce a MoreSpecificReturnType issue 2017-01-17 11:17:49 -05:00
Matthew Brown
e3a9cb98c3 Add extra issue for invalid clone and fix issue reporting; 2017-01-16 12:59:09 -05:00
Matthew Brown
2e2f2f4ffb Add new suppressable error for missing closure return types 2017-01-16 01:22:36 -05:00
Matt Brown
fbbef2c320 Fix #45 - add issue when optional param used before required 2017-01-13 13:40:20 -05:00
Matt Brown
c181f47364 Fix #35 and #40 by improving method signature checks 2017-01-13 12:03:22 -05:00
Matthew Brown
4c3e714253 Add a check for duplicated params 2017-01-02 01:20:47 -05:00
Matthew Brown
846cc59d5f Add support for checking closure return types 2016-12-31 10:51:42 -05:00
Matthew Brown
49f7817a2a Emit specific issue when calling instance method with self:: 2016-12-31 09:20:10 -05:00
Matthew Brown
ee4a3882a7 Check method defaults to see whether they match 2016-12-30 23:40:32 -05:00