1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 02:07:37 +01:00
Commit Graph

135 Commits

Author SHA1 Message Date
Matthew Brown
693c7a81fa Improve tracking of docblock types 2018-01-07 17:25:23 -05:00
Matthew Brown
05d2c3dcb8 Fix differ to only use available commands 2018-01-07 17:25:23 -05:00
Matthew Brown
456a2ebaaa Add --dry-run option 2018-01-07 17:25:23 -05:00
Matthew Brown
5bae869dc6 Break file manipulation out into Psalter 2018-01-07 17:25:23 -05:00
Matt Brown
928b01a7c7 Find and fix code issues where functionality is available 2018-01-07 17:25:23 -05:00
Matt Brown
53d8c7ba52 Fix issue ideas 2018-01-07 17:25:23 -05:00
Matthew Brown
db7abc2b90 Add more debug output when using reflection/composer classmap 2018-01-04 14:13:54 -05:00
Matt Brown
fdff250c4a Preserve keys when merging arrays 2018-01-02 12:59:22 -05:00
Matthew Brown
cc81d78dfd Add code replacement api to allow Psalm to update arbitrary parts of the codebase
Fixes #264
2018-01-02 09:46:50 -05:00
Matthew Brown
81cfe09fae Improve reporting of classlike locations in docblocks 2018-01-01 20:04:03 -05:00
Matthew Brown
5afe3b10fa Scan compoer autoload files before any sweep of code 2018-01-01 11:47:03 -05:00
Matthew Brown
752e99ad2e Reduce PossiblyUnusedParam false positives 2017-12-30 08:47:00 -05:00
Matthew Brown
37a3c0a81e Avoid checking classes named Null, because PHP will complain
Ref #415
2017-12-29 19:45:32 -05:00
Matthew Brown
875bb8c072 Improve dead code detection, reducing false positives for params 2017-12-29 17:27:16 -05:00
Matthew Brown
0b58ee425d Fix trait method evaluation order 2017-12-29 11:26:28 -05:00
Matthew Brown
becce4ae36 Use composer classmap where available to remove need for reflection of vendor classes 2017-12-28 00:56:10 +01:00
Matthew Brown
2f5b05887b Promote CircularReference from exception to issue 2017-12-22 18:56:59 +01:00
Matthew Brown
714d0678b1 Fix file analysis after realpath fix 2017-12-19 13:08:47 -05:00
Matthew Brown
13f290038a Improve RedundantCondition checks and add true type
Fixes #383
2017-12-09 14:53:39 -05:00
Matt Brown
062d46c132 Update to latest php-cs-fixer 2017-11-30 19:00:09 -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
afcbc113c9 Fix #228, fix #336 by improving checking of inherited signatures 2017-11-26 16:03:17 -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
Matthew Brown
abe7c003ab Fix #309 - borrowing fix from @TysonAndre 2017-11-15 20:45:53 -05:00
Matt Brown
59265ef2bf Fix #276 - fix false positive in magic call 2017-11-10 18:08:26 -05:00
Tyson Andre
e2dd3db70f Fix phpdoc in psalm's codebase referring to missing params. (#273)
Also, don't use `@return self` in __construct, it returns void.
2017-11-08 23:32:22 -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
Matthew Brown
dd86513fc5 Fix #271 - remove invalid complaint about private overridden method 2017-11-08 21:27:23 -05:00
Matthew Brown
295792d550 Fix #235 - add psalm.xml option to support igbinary serializer 2017-10-15 12:38:47 -04:00
Matthew Brown
657d154288 CacheProvider -> ParserCacheProvider 2017-10-15 11:57:44 -04:00
Matthew Brown
cbc889a498 Add cache-clearing mechanism 2017-10-07 14:41:16 -04:00
Matthew Brown
fc6b663c8a Only write files if they’re changed 2017-09-16 12:52:46 -04:00
Matthew Brown
9a3cb742cb Refactor docblock manipulation and add tests for it 2017-09-16 12:45:20 -04:00
Matthew Brown
313e1c383c Fix edge-case issue with abstract class not fully implementing interface 2017-09-13 23:57:11 -04:00
MacFJA
c4ce8bede9 Add XML as possible output format + add report generation (#206)
* Add XML as possible output format + add report generation

* Add missing xml root node

* Change XML generator (previous one don't escape '<' and '>')

* Change option (only one option) + unit test
2017-09-08 11:18:48 -04:00
Matthew Brown
73694ab04e Suggest types when complaining of untype params
Ref #204
2017-09-02 18:15:52 -04:00
Matthew Brown
622217b708 Fix #205 - add file references at analysis stage too 2017-08-22 12:38:38 -04:00
Matthew Brown
fb656f3575 Fix #203 and detect invalid countable count calls 2017-08-19 13:30:33 -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
3859c3c3cf Narrow abstract check 2017-07-28 23:53:06 -04:00
Matthew Brown
c5952af6f0 Fix bug with trait implementing abstract method 2017-07-28 23:38:57 -04:00
Matt Brown
22b6dafe3c Fix #194 - carry over const definitions 2017-07-28 10:42:30 -04:00
Matt Brown
c8ec0dc650 Fix casing issue 2017-07-27 19:14:16 -04:00
Matt Brown
84f1993a2e Fix potential bug on case-sensitive OSes with badly-cased comment polluting code 2017-07-27 16:59:41 -04:00
Matt Brown
3e60b4b6ad Fix formatting 2017-07-27 16:15:17 -04:00
Matt Brown
aca295ef7d Build up file-class references on initial scan 2017-07-27 16:13:26 -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
b3c992d7aa Don’t suppress PHP fatal errors in debug mode 2017-07-09 23:34:16 -04:00
Matthew Brown
90f3b88544 Correct casing 2017-07-09 15:27:07 -04:00