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

848 Commits

Author SHA1 Message Date
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
e89a2929d5 Infer types from numeric operations 2017-09-06 21:44:26 -04:00
Matthew Brown
9f9e8a1b30 Improve API for inference 2017-09-03 20:52:54 -04:00
Matthew Brown
11aa3558b7 Make sure encapsulated strings can also coerce param types 2017-09-02 19:48:59 -04:00
Matthew Brown
a0c27cee4f Allow param types to be inferred from presence of concat ops 2017-09-02 19:23:00 -04:00
Matthew Brown
a725009181 Only say we could not infer param type if we’re actively looking 2017-09-02 18:26:19 -04:00
Matthew Brown
6531e3bfb8 Throw exception if impossible state is reached 2017-09-02 18:22:44 -04:00
Matthew Brown
73694ab04e Suggest types when complaining of untype params
Ref #204
2017-09-02 18:15:52 -04:00
Matthew Brown
8aabcbce35 Introduce UntypedParam warnings when functions are missing param types 2017-09-02 11:18:56 -04:00
Matt Brown
1cc63fe718 Ignore leading slash in array_map methods 2017-08-30 13:45:41 -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
e4e6c2a6e6 Fix #201 - list/array assignment should invalidate clauses too 2017-08-18 23:14:38 -04:00
Matthew Brown
fbc6379275 Fix #202 - vars changed inside loops should invalidate clauses 2017-08-18 22:41:25 -04:00
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
0b0e7aa662 Fix #197 - allow nested class and function definitions 2017-08-14 15:46:01 -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
Matt Brown
396d214e3c Throw exception when function storage is missing 2017-08-08 14:45:47 -04:00
Matt Brown
4b5a5ead74 Fix paradox detection for multiple clauses 2017-08-07 18:38:38 -04:00
Matt Brown
e9b50cd2f1 Fix #196 to prevent false positives 2017-08-07 17:52:09 -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
2c1a0b197e Remove param typehint 2017-07-26 23:47:29 -04:00
Matthew Brown
0d88b4f2e7 Remove whitespace 2017-07-26 21:27:59 -04:00
Matt Brown
7b178a2b25 Add ability to stub constants 2017-07-26 19:54:22 -04:00
Matt Brown
0e67565b2c Return null if path exists 2017-07-26 19:36:41 -04:00
Matt Brown
b4a46429df Add FileChecker subclass analysis 2017-07-26 19:27:30 -04:00
Matt Brown
dbb1bf2e73 Add addSuppressedIssue API method back 2017-07-26 16:09:09 -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
e33d8dac2e Remove unnecessary check 2017-07-12 22:00:33 -04:00
Matthew Brown
17205bc093 Be more strict about what properties we check 2017-07-10 20:20:40 -04:00
Matt Brown
cfbf256593 Add version check for reflected function return type 2017-07-10 10:38: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
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
e60f085741 Fix #178 - complain when encountering bad @return type 2017-07-09 20:32:35 -04:00
Matthew Brown
869c65b4fc Move property check to relevant position 2017-07-09 18:37:30 -04:00
Matthew Brown
cb6d9457ee Fix issue reporting on uninitialised properties in foreign classes 2017-07-09 18:33:56 -04:00
Matthew Brown
581cf5f7eb Don’t allow trait to override non-abstract method definition for parent class 2017-07-09 15:54:43 -04:00
Matthew Brown
90f3b88544 Correct casing 2017-07-09 15:27:07 -04:00