1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 01:09:38 +01:00
Commit Graph

2192 Commits

Author SHA1 Message Date
Matthew Brown
24416feb62 Improve handling of unset calls with possibly undefined variables 2018-02-10 10:30:08 -05:00
Nicky Robinson
8e77ff1ce9 Throw error if magic getter or setter called for undefined property or invalid type specified with annotations (#500)
* Fix path to psalm

* If a magic getter or setter is used to access a property on a class
that is not defined but a `@property` annotation for the property
exists, throw an error. If no `@property` annotation exists, it's not
an error because you're allowed to make magic getters and setters do
crazy things.

Fixes #480

* Move logic to a better place to avoid duplicate checks

* Move logic into function

* Remove some nesting

* Check psalm-seal-properties and property type correctly
2018-02-09 19:37:09 -05:00
Matt Brown
55c12cd01c Add a bit of documentation 2018-02-09 17:51:49 -05:00
Tyson Andre
eb69d55b29 Update documentation of void types in CallMap (#504)
The empty string is treated more like mixed
2018-02-09 00:31:25 -05:00
Matthew Brown
40efa9e8aa Fix #503 - make sure mixed array type is set for MixedMethodCall 2018-02-08 23:22:29 -05:00
Matt Brown
283e0a6af2 Migrate class constant handling into codebase classes 2018-02-08 18:18:34 -05:00
Matt Brown
6f7903716d Move property lookup api into codebase class 2018-02-08 18:14:28 -05:00
Matt Brown
a8ab972889 Remove unnecessary class declarations in docs 2018-02-08 15:30:24 -05:00
Matt Brown
78cc1786c8 Don’t check newly-scoped vars in conditional 2018-02-08 14:46:06 -05:00
Matt Brown
30ca2ad65f Fix issues with mixed assignments inside loop 2018-02-08 14:02:32 -05:00
Matt Brown
72675cb5a0 Be more rigorous about atomic docblock type reconciliation 2018-02-08 13:01:39 -05:00
Matthew Brown
6955f77e2e Fix #493 - add support for multiple @var lines per docblock 2018-02-07 23:33:31 -05:00
Matthew Brown
24e03edefa Fix #485 when return type is a generator 2018-02-07 22:29:32 -05:00
Matthew Brown
1ae58f0386 Fix #501 - allow analysis to continue after bad constant check 2018-02-07 20:26:26 -05:00
Matthew Brown
078becb0b7 Fix cache clearing 2018-02-07 20:15:56 -05:00
Matt Brown
da5ee15b40 Add new issue ignored in default config 2018-02-07 15:27:25 -05:00
Matt Brown
7f4be858c2 Fix #498 - add better issue type for docblock contradiction 2018-02-07 15:20:47 -05:00
Matt Brown
685ea29ebe Move asserted var creation after conditional reconciliation 2018-02-07 14:13:57 -05:00
Matt Brown
b4281748bc Remove redundant code found by Psalm 2018-02-07 13:57:45 -05:00
Tyson Andre
7bfd782d90 Make call map types slightly more specific (manually) (#495)
* Make call map types slightly more specific (manually)

* Address review comments
2018-02-07 10:17:18 -05:00
Tyson Andre
c7f3a3c445 Make types in the call map more specific (#496)
fix a few incorrect types.
2018-02-06 23:46:22 -05:00
Matthew Brown
1288915aba Change number return type to numeric
cc @TysonAndre
2018-02-06 22:22:50 -05:00
Matthew Brown
970ceab396 Check loop context var exists
This can happen if the parent has been reassigned
2018-02-06 21:03:36 -05:00
Tyson Andre
0bc7ac11f1 Improve callmap with information from docs.php.net (#494)
* Update CallMap.php with information from docs.php.net

* Undo possibly inaccurate information from docs.php.net

* Fix bug in ReflectionMethod::invoke*() signature

http://php.net/manual/en/reflectionmethod.invoke.php had a misleading
method signature description section
2018-02-06 20:50:32 -05:00
Matt Brown
1df4c3d196 Add DocblockTypeContradiction to find possible issues with docblock types
Fixes #491
2018-02-06 18:44:53 -05:00
Matt Brown
fc58655963 Make logic more Psalm-compatible 2018-02-06 13:52:59 -05:00
Matt Brown
1d46124bab Fix issues found by detecting docblock type inconsistencies 2018-02-06 13:40:28 -05:00
Matt Brown
4b87612bb4 Add better issue message for bad array offset
Fixes #492
2018-02-06 11:27:01 -05:00
Matt Brown
d88eadbb0e Fix #486 - skip first reconciliation in loop checker for do stmts 2018-02-06 11:07:52 -05:00
Matthew Brown
beb4993736 Add more text feedback when running from command line 2018-02-06 01:11:33 -05:00
Matt Brown
8747d78c39 Suppress RedundantCondition when analysing first loop of do
Ref #486
2018-02-05 17:29:13 -05:00
Tyson Andre
5ac01abbe5 Fix a few signatures of Iterator classes for void
This was done automatically via sed.
Other types can be added in separate PRs
2018-02-05 17:16:49 -05:00
Matt Brown
5d25edf80c Deal with overlapping docblock types and typehints better 2018-02-05 16:57:33 -05:00
Matt Brown
2e443dce85 Revert "Fix private constructor check"
This reverts commit 684eb7923b, because it introduces more problems than it solves
2018-02-05 15:53:39 -05:00
Matt Brown
684eb7923b Fix private constructor check 2018-02-05 13:06:03 -05:00
Matthew Brown
5d05a63583 Provide more information about the scanning step 2018-02-04 12:51:45 -05:00
Matthew Brown
0c23c59820 Improve formatting of end message 2018-02-04 12:34:22 -05:00
Matthew Brown
e6c0fbf3b8 Create PropertyMap handler class 2018-02-04 12:34:08 -05:00
Matthew Brown
473a174f23 Memoise type tokenisation and move functions to more logical locations 2018-02-04 12:23:32 -05:00
Matthew Brown
7d6dc7252a Allow methods that extend nullable callmap methods to not return a value 2018-02-04 09:22:24 -05:00
Matthew Brown
645602a38e Properly namespace @property types 2018-02-03 23:10:22 -05:00
Matthew Brown
8654b79d39 Ignore useless dirs 2018-02-03 20:08:14 -05:00
Matthew Brown
77a0720b65 Break up Populator method 2018-02-03 20:03:31 -05:00
Matthew Brown
8e0998e081 Break apart the Codebase class 2018-02-03 18:56:54 -05:00
Matthew Brown
e5bc0e6129 Fix #431 - report invalid return types before invalid nullable/falsable ones 2018-02-02 19:08:10 -05:00
Matthew Brown
c05baf47ce Fix more Reflection return types 2018-02-02 16:35:40 -05:00
Matthew Brown
b771658821 Fix Reflector::export return types in callmap 2018-02-02 15:28:39 -05:00
Matthew Brown
861d907845 Add more information to TooMany/TooFewArguments issues
Fixes #481
2018-02-02 11:26:55 -05:00
Matthew Brown
08c1d65ad2 Fix docblock overriden method return type 2018-02-01 09:24:57 -05:00
Matthew Brown
d8fb14e6f7 Fix incorrect template types being passed through 2018-02-01 01:52:20 -05:00