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

194 Commits

Author SHA1 Message Date
Matthew Brown
f5459e2854 Remove unused var 2019-06-29 00:25:12 -04:00
Matthew Brown
622ad800cc Don’t rescan if the problem is unbalanced braces 2019-06-29 00:22:41 -04:00
Matthew Brown
cb28c44228 Fix #1873 - allow spread operators in inferred property types 2019-06-28 22:28:35 -04:00
Brown
6514f2084c Fix #1860 - be less restrictive about class_exists checks 2019-06-28 10:17:59 -04:00
LeSuisse
f29826b958 Fully qualify constants and function calls (#1849)
This should give a small performance boost.
Part of #1837.

The change is enforced via phpcs and can be autofixed
with phpcbf.
2019-06-26 16:52:29 -04:00
Matthew Brown
372a512a86 Don’t convert trait self to trait name 2019-06-26 00:28:43 -04:00
Matthew Brown
c0b86bd40d Use uppercase template_type_extends keys 2019-06-24 23:43:04 -04:00
Matthew Brown
31c8a2e4d7 Add offsets to type tokenisation
Ref #1832
2019-06-22 23:30:40 -04:00
Matthew Brown
2a4072b1be Resolve docblock self refs as soon as possible
Fixes #1827
2019-06-20 23:38:10 -04:00
Matthew Brown
2d5f332ebf Fix #1781 by improving handling of callmap options 2019-06-15 16:10:48 -04:00
Brown
d1630863ad Fix #1787 - prevent initialisation when nullable isn’t set 2019-06-14 16:53:40 -04:00
Brown
c21e9917fa Add config flag to prevent inferring property types from constructor 2019-06-10 14:41:21 -04:00
Brown
aa2fde521a Fix #1703 - infer properties from class params 2019-06-10 12:00:32 -04:00
Matthew Brown
e1255db32a Prevent if checking unless we’re in a top-level if 2019-06-10 00:02:36 -04:00
Matthew Brown
158a2150a7 Fix #1752 - don’t enter if/else when class/interfaces/functions don’t exist 2019-06-09 23:50:28 -04:00
Matthew Brown
395057c6df Fix #1738 - constrain template type when class-string<T> is a param 2019-06-08 11:08:08 -04:00
Brown
b00d51b7db Allow misplaced required params so Psalm still inspects the code 2019-06-07 09:25:12 -04:00
Brown
f309c755f8 Add ability to move classes 2019-06-05 08:50:24 -04:00
Matthew Brown
13779e760e Fix #1736 - forbid | in @psalm-assert 2019-06-05 00:46:55 -04:00
Brown
778b95d335 Add support for moving class constants 2019-06-04 11:14:49 -04:00
Brown
9d1b620f55 Fix too-long line 2019-06-03 11:26:25 -04:00
Brown
2f29dcce93 Fix #1728 - remove extra data in template-extends annotation 2019-06-03 10:28:54 -04:00
Matthew Brown
c569f3932c Use separate method for parsing docblocks 2019-06-01 18:44:59 -04:00
Matthew Brown
62be1cc1b0 Add rest of files 2019-06-01 16:57:33 -04:00
Matthew Brown
736f01c29e Store more accurate return type location 2019-06-01 13:02:20 -04:00
Matthew Brown
909e02d441 Move var docblocks within function 2019-06-01 12:25:57 -04:00
Matthew Brown
dc5a5bcd9d Simplify var docblock parsing signature 2019-06-01 11:53:32 -04:00
Matthew Brown
7e4de611bf Migrate class references in static calls 2019-06-01 10:07:45 -04:00
Matthew Brown
cc89b9254d Add initial ideas for moving static methods
Ref #1595
2019-06-01 00:56:54 -04:00
Matthew Brown
fafe73de0a Suppress issue where we don’t want to autoload 2019-05-26 16:40:02 -04:00
Matthew Brown
790bc53bfd Fix #1681 - interpret parent annotation properly 2019-05-25 11:51:09 -04:00
Matthew Brown
13b9e133e4 Fix Psalm errors 2019-05-24 02:15:35 -04:00
Matthew Brown
c80f9d8ecd Add class-based support for key-of
Ref #762
2019-05-24 02:12:58 -04:00
Matthew Brown
574545e149 Add initial support for key-of<T>
Ref #762
2019-05-23 23:53:48 -04:00
Brown
4a434d9a2f Add separate issue for undefined classes in docblocks 2019-05-15 18:41:26 -04:00
Barney Laurance
cd673538f1 psalm-internal - refactor - use snake_case not camelCase 2019-05-14 18:54:16 -04:00
Barney Laurance
ce5d307f83 psalm-internal - present fetching internal property from other namespace 2019-05-14 18:54:16 -04:00
Barney Laurance
b29e041d3c psalm-internal - prevent call to method marked psalm-internal from other namespace 2019-05-14 18:54:16 -04:00
Barney Laurance
4415ef0dbd psalm-internal - prevent invalid extention of class internal to other namespace 2019-05-14 18:54:16 -04:00
Matthew Brown
bfcf3cdc99 Fix #1627 - don’t stub already-stubbed functions 2019-05-13 00:24:31 -04:00
Matthew Brown
307cdbbbb3 Fix #1626 - detect dead code found in #1624 2019-05-12 20:49:37 -04:00
Brown
33d4888228 Fix #1618 - conditionally enable autocompletion for methods and properties 2019-05-09 11:20:13 -04:00
Brown
751253ddf0 Fix #1603 - prevent invalid covariant template classes from being passed 2019-05-06 16:38:08 -04:00
Brown
8c9d8e7249 Add fully-qualified params to scanned classes 2019-05-03 11:55:27 -04:00
Brown
640c1d13a6 Fix unused variables now found in Psalm’s code 2019-05-02 17:21:23 -04:00
Matthew Brown
ec65197f41 Fix #1564 - scan functions if they’re not internal 2019-04-20 17:16:42 -04:00
Brown
80e28d6a4a Add support for unused method & property automated removal 2019-04-17 11:12:18 -04:00
Brown
ff14f671b1 Add hopefully-more-portable method for evaluating method/property usage 2019-04-16 16:07:48 -04:00
Brown
7f8b47c5cf Fix buggy behaviour around callable tests 2019-04-09 18:09:57 -04:00
Brown
1348d634ed Improve handling of variadic parameters 2019-04-09 13:58:49 -04:00
Brown
783f028f70 Fix #1498 - use template types from parent function 2019-03-25 11:25:43 -04:00
Matthew Brown
496a175a9f Fix #1497 - respect constants stubbed in define() calls 2019-03-25 00:07:32 -04:00
bugreportuser
976c2c5ef3 Add an error for throws in global scope 2019-03-24 23:03:37 -04:00
Brown
b9ba24929d Refactor storage of template names to prevent clashes 2019-03-22 15:59:10 -04:00
Matthew Brown
136429dfd4 Fix location of @method docblocks for issues 2019-03-18 21:05:37 -04:00
Matthew Brown
ca765cba58 Fix errors caused by bad generic param counts
Fixes #1474
2019-03-17 12:20:57 -04:00
Matthew Brown
f66af3e267 Fix #1475 - allow self params in traits 2019-03-17 11:31:04 -04:00
Matthew Brown
a0659a02f1 Fix #1418 - support templated union types 2019-03-16 11:15:25 -04:00
Brown
e5f7a5a4bc Coerce class string types together 2019-03-08 17:35:09 -05:00
Matthew Brown
c800fb9282 Fix #1437 - use correct return type line for error 2019-03-07 23:19:17 -05:00
Tyson Andre
6f7295ed13 Remove unused use statements 2019-03-03 22:22:36 -05:00
Matthew Brown
f9b1a63146 Fix #1421 - variadic params are extra 2019-03-02 15:26:18 -05:00
Matthew Brown
ee942b3c02 Fix return type 2019-03-01 00:06:35 -05:00
Matthew Brown
b3c5120d72 Fix #1403 - warn about duplicate templates 2019-02-28 23:43:55 -05:00
Brown
601f303de2 Fix position of invalid param 2019-02-27 16:00:44 -05:00
Brown
1263a2e9a3 Fix missing param location 2019-02-27 14:17:11 -05:00
Matthew Brown
fff56f7b26 Use better heuristic to determine missing types 2019-02-23 11:39:00 -05:00
Matthew Brown
cdae79b9fe Fix unnecessary params in Psalm codebase 2019-02-23 11:31:33 -05:00
Matthew Brown
6671e0dc7c Fix #1382 - flag unused docblocks 2019-02-23 11:02:04 -05:00
Matthew Brown
1c8a573b5f Change TGenericParam to TTemplateParam 2019-02-21 21:40:06 -05:00
Brown
154e1fa38b Fix #1375 - improve treatment of dynamically-declared namespaces 2019-02-21 18:19:12 -05:00
bugreportuser
14ee221075 Fix errors 2019-02-20 10:55:36 -05:00
bugreportuser
cd23a19931 Allow concat for define first arg 2019-02-20 10:55:36 -05:00
Bruce Weirdan
8408effe57 Dropped unused uses 2019-02-17 13:17:45 -05:00
Matthew Brown
356a45a155 Improve ergonomics of PHPStorm meta parsing 2019-02-16 18:50:25 -05:00
Matthew Brown
9a8f969d5c Fix #1314 - make sure we always know what a closure is if we’re using one 2019-02-10 16:23:31 -05:00
Matthew Brown
17541b415f Fix #1191 - allow Psalm to check against different versions of PHP 2019-02-07 12:25:57 -05:00
Matthew Brown
822e840d0c Prevent union in function template as 2019-02-05 17:39:11 -05:00
Matthew Brown
899dd16e8f Be more strict about what can be a template as type 2019-02-05 17:26:34 -05:00
Brown
9edbae2bdc Fix possible fatal when builtin function is called in array_filter 2019-01-28 17:54:50 -05:00
Brown
3e4c63eb9a Fix template extension in grandchildren 2019-01-28 16:56:42 -05:00
Matthew Brown
081ba4b204 Fix #1072 - add support for @use SomeTrait<T> 2019-01-27 23:12:40 -05:00
Matthew Brown
f67bab6d52 Restrict template-extends to actual extends 2019-01-27 21:00:27 -05:00
Matthew Brown
22ee72808a Remove a bunch of hacks around generic offsets
Also fixes #1245
2019-01-26 16:58:49 -05:00
Brown
cd0a7441d9 Add warnings for extended template param counts off 2019-01-24 17:55:03 -05:00
Brown
0d52dc4e00 Fix #1232 - allow checking of extended templated function returns 2019-01-24 15:03:13 -05:00
Matthew Brown
af19ca4bd5 Only worry if the alias is different to the intended one 2019-01-20 11:29:25 -05:00
Matthew Brown
60088b1189 Fix #1215 - prevent bad code from crashing Psalm 2019-01-20 11:10:12 -05:00
Matthew Brown
394d6509c6 Restrict class-string types to named objects (and intersections) 2019-01-19 22:46:06 -05:00
Matthew Brown
ee2b06ac43 Add initial support for @param-out 2019-01-19 13:32:43 -05:00
Matthew Brown
e2db6a77a6 Allow mixed param overrides for @inheritdoc 2019-01-19 12:46:39 -05:00
Matthew Brown
4f3d7fca0d Fix issue where @inheritdoc could override local param types 2019-01-19 12:42:46 -05:00
Matthew Brown
eddaaea01b Add support for static @method annotations 2019-01-18 11:37:52 -05:00
Matthew Brown
2c55e7aabb Support template-typeof in class again 2019-01-13 14:29:04 -05:00
Matthew Brown
1de0e35545 Add checks for Psalm reserved words in assertions 2019-01-13 14:06:30 -05:00
Matthew Brown
6d462fcb64 Fix #909 - support private trait aliasing 2019-01-13 10:19:27 -05:00
Matthew Brown
a7005014c2 Fix #987 - namespace asserted classes 2019-01-12 11:40:19 -05:00
Matthew Brown
cfcb65aaac Fix #1113 - treat class_alias as always global 2019-01-12 07:28:01 -05:00
Brown
1fddc19172 Add initial support for property types 2019-01-11 17:21:50 -05:00
Brown
9947bc56f6 Fix Psalm errors and improve error output 2019-01-10 19:18:02 -05:00