1
0
mirror of https://github.com/danog/psalm.git synced 2024-11-27 04:45:20 +01:00
Commit Graph

364 Commits

Author SHA1 Message Date
Matthew Brown
048d7f0142 Fix #110 - failure to eliminate false from array|false on isset 2017-03-05 23:47:53 -05:00
Matt Brown
f9f38f283e Emit issue when property type is not defined 2017-03-02 12:19:18 -05:00
Matt Brown
864d242f13 Improve labelling of referencing expressions 2017-03-01 11:56:36 -05:00
Matt Brown
7baf942eaa Prevent false positives after extract call 2017-02-27 10:52:43 -05:00
Matthew Brown
cd5f727d2e Collect explicit references to classes/methods 2017-02-26 23:09:18 -05:00
Matt Brown
182f715b62 Add dead code detection for possibly unused public methods 2017-02-23 19:52:23 -05:00
Matt Brown
0049e4deb4 Fix #105 and also the issues found in its wake 2017-02-23 19:36:51 -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
47de866601 Fix issue using abstract methods from traits 2017-02-22 01:25:51 -05:00
Matt Brown
2c7ffb6f4c Add support for negating some while assertions 2017-02-21 16:52:27 -05:00
Matt Brown
99dd3ba5de Move loop scope tests into separate file 2017-02-21 16:33:20 -05:00
Matt Brown
c6a625c16e Fix #102 - be more lenient about whether a type can be reconciled 2017-02-21 16:15:39 -05:00
Matthew Brown
30c5977825 Fix issue with do statement breaking 2017-02-18 17:49:34 -05:00
Matthew Brown
e61ea17db5 Move FileChecker functionality into separate, better-contained classes 2017-02-18 13:41:27 -05:00
Matthew Brown
9137727993 Fix #99 - treat null coalesce more respectfully 2017-02-17 20:50:47 -05:00
Matthew Brown
9579460c59 Fix #97 - is_callable shouldn’t prevent evaluation of calls to existing functions 2017-02-16 20:51:53 -05:00
Matthew Brown
32dd5d5512 Be better about dealing with byref args when not checking functions 2017-02-15 01:47:03 -05:00
Matt Brown
83a978ea80 Fix array_filter on string-keyed arrays 2017-02-13 19:16:25 -05:00
Matthew Brown
c41c873d33 Add exception messages to TypeTest.php 2017-02-13 01:13:22 -05:00
Matthew Brown
0277ca49ba Add config creation utility 2017-02-12 23:59:43 -05:00
Matthew Brown
a87ea78efc Fix variable-scoped byref issue 2017-02-12 19:07:25 -05:00
Matthew Brown
81e24de76f Fix invalid NullPropertyFetch warning 2017-02-12 18:06:18 -05:00
Matthew Brown
9061d36566 Don’t emit InvalidArrayAccess if ignoring null arrays 2017-02-12 17:13:03 -05:00
Matthew Brown
b80628b1c4 Convert all templated properties to most acceptable type 2017-02-12 14:10:34 -05:00
Matthew Brown
2f2b487236 Fix #96 2017-02-12 12:31:39 -05:00
Matthew Brown
1029e68341 Allow TNamedObject to be coerced to TObject 2017-02-12 00:50:37 -05:00
Matthew Brown
deb11c9402 Change some errors from InvalidReturnType to MoreSpecificReturnType 2017-02-11 18:25:44 -05:00
Matthew Brown
35e4b380cc Add collection of PossiblyNull* issues 2017-02-11 17:55:08 -05:00
Matthew Brown
14c487d3e6 Always supply default template params as return type 2017-02-10 22:51:47 -05:00
Matthew Brown
1d6c441d16 Use a more fault-tolerant version of php-parser 2017-02-10 21:27:12 -05:00
Matt Brown
c0a6fc9125 Fix #90 - add genericised stubs for common array functions 2017-02-10 18:12:59 -05:00
Matthew Brown
8ffd45407c Add support for namespaced templates 2017-02-10 00:14:44 -05:00
Matthew Brown
4a82c0a09a Add support for nested types in templates 2017-02-09 22:57:23 -05:00
Matthew Brown
5e8a40a5a1 Merge pull request #94 from vimeo/template-tags
Add support for templating
2017-02-09 20:51:23 -05:00
Matthew Brown
98b0ed280c Add support for templating 2017-02-09 20:35:17 -05:00
Matthew Brown
41f7dc4a52 Fix #93 - fix MethodSignatureMismatch checks on builtin class methods 2017-02-09 17:49:13 -05:00
Matthew Brown
cdcacc395d Rename DeadCode to UnusedVariable, UnusedMethod and UnusedClass 2017-02-08 00:28:26 -05:00
Matthew Brown
65ef5ba8b7 Improve native understanding of docblock-less variadics 2017-02-07 22:02:46 -05:00
Matthew Brown
895b612ca1 Add extra deadcode test 2017-02-07 21:57:59 -05:00
Matthew Brown
5149414c8e Add simple test for dead code 2017-02-07 21:44:52 -05:00
Matthew Brown
01beb97413 Fix #87 - array types from docblocks can be reasoned about safely 2017-02-03 22:07:14 -05:00
Matthew Brown
5ec2a9742b Fix union type simplification of float|int eradicating int 2017-02-01 19:39:40 -05:00
Matthew Brown
2852eeebad Add return types to tests 2017-02-01 18:11:50 -05:00
Matthew Brown
76b6bc9b3d Prevent Psalm from storing unnecessary checkers 2017-02-01 18:11:00 -05:00
Matthew Brown
e925e8b4db Fix #86 - remove empty array from type on !empty check 2017-02-01 13:51:26 -05:00
Matthew Brown
a0711de023 Update config key to be more accurate ref #85 2017-02-01 10:13:37 -05:00
Matt Brown
a7872472be Add stubbing tests and modify config initialisation 2017-01-31 19:22:05 -05:00
Matthew Brown
ce93c4ef2d Assert smart things when offset is variable 2017-01-31 01:35:44 -05:00
Matthew Brown
965a79251d Fix #82 by updating how isset calls are handled 2017-01-31 00:34:06 -05:00
Matt Brown
8c68861cc3 Fix #81 - interface inheritance checks were broken 2017-01-30 18:38:23 -05:00
Matthew Brown
d978966db4 Fix #37 - check parent calls for staticness 2017-01-29 22:13:53 -05:00
Matthew Brown
a45c47776b Fix #79 - check anonymous class statements 2017-01-29 13:20:12 -05:00
Matthew Brown
c485a3d056 Check for not-set-in-constructor errors across traits too 2017-01-27 08:28:21 -07:00
Matthew Brown
6bcc763414 Fix #3 by checking inside __constructor calls for initialisations 2017-01-26 23:23:12 -07:00
Matthew Brown
f03807e7b7 Fix unaryplus/minus type inference 2017-01-25 20:02:19 -07:00
Matthew Brown
7e7743d6fb Do not complain about missing void return types if config set 2017-01-25 17:07:28 -07:00
Matthew Brown
ea63fd7ae3 Fix #75 - allow inteeger offsets for object-like arrays 2017-01-25 00:11:24 -07:00
Matthew Brown
35617e9d84 Add test for specific issue mentioned in #74 2017-01-23 14:19:08 -07:00
Matthew Brown
daa923e243 Stop analysis if parent class cannot be located 2017-01-23 13:36:06 -07:00
Matthew Brown
3ad6ec2e34 Be more resilient if we ignore that parent class does not exist 2017-01-23 13:21:40 -07:00
Matthew Brown
374dc65de1 Fix #39 by checking for ArrayAcces interface 2017-01-20 00:23:58 -05: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
d3a9452cde Make sure we don’t lose type information while reconciling 2017-01-19 17:45:42 -05:00
Matthew Brown
a14b03c057 Fix issue with array_merge, and then bugs revealed by that 2017-01-19 01:32:35 -05:00
Matthew Brown
27a018095b Fix invalid InvalidParamDefault error when comparing to false 2017-01-19 01:12:19 -05:00
Matthew Brown
de1ce36a5c Fix method mutation transference 2017-01-18 23:19:36 -05:00
Matt Brown
b23c55e570 Fix #70 by allowing string to be a numeric 2017-01-18 11:07:38 -05:00
Matthew Brown
e3b9f0fd83 Fix multiple duplicate namespaces constant confusion 2017-01-17 23:55:08 -05:00
Matt Brown
875717bb96 Fix #63 by adding directory separators 2017-01-17 22:10:21 -05:00
Matt Brown
c0898aa6e5 Fix issue where inferred return type contained subclasses 2017-01-17 12:51:09 -05:00
Matthew Brown
bc668e2c7a Change variadic docblock param to match language syntax 2017-01-17 01:14:43 -05:00
Matthew Brown
693811abed Allow non-array docblock typehints for variadic params 2017-01-17 00:26:40 -05:00
Matthew Brown
e4769fd04a Don’t give up when faced with variadic type 2017-01-17 00:07:58 -05:00
Matthew Brown
b9bad01dbd Treat reflected interface parents correctly 2017-01-16 20:47:23 -05:00
Matthew Brown
317eab8730 Add support for ?A types in docblock 2017-01-16 19:17:46 -05:00
Matthew Brown
9220b958eb Fix phpcs errors 2017-01-16 19:06:39 -05:00
Matthew Brown
b3726c9de5 Use getcwd() for the project’s base, not the config file parent directory 2017-01-16 18:33:04 -05:00
Matthew Brown
0613324df9 Add test for #64 2017-01-16 16:33:35 -05:00
Matthew Brown
4b283564ca Allow variadic params to be passed by reference 2017-01-16 12:39:38 -05:00
Matthew Brown
856870cf37 Fix #62 - die quickly and explicitly if files cannot be located 2017-01-16 11:41:57 -05:00
Matthew Brown
2e2f2f4ffb Add new suppressable error for missing closure return types 2017-01-16 01:22:36 -05:00
Matthew Brown
5315fd15ad Fix namespaced functions in regular use statements 2017-01-16 00:49:12 -05:00
Matthew Brown
ac92de181f Allow classes that use __invoke to be called 2017-01-16 00:29:18 -05:00
Matthew Brown
d46282e13f Fix issue with constants defined inside interfaces 2017-01-16 00:13:08 -05:00
Matthew Brown
c78ce31e36 Be more lenient when type left out of docblock 2017-01-15 23:49:58 -05:00
Matthew Brown
35062a7c5a Make sure we don’t take website down by mistake 2017-01-15 23:18:26 -05:00
Matthew Brown
5845463dab Fix #61 - don’t warn about non-implementing abstract classes 2017-01-15 19:02:36 -05:00
Matthew Brown
ce89ac4986 Fix #50 - asserting about docblock types no longer causes error 2017-01-15 17:52:01 -05:00
Matthew Brown
9b06b672ba Fix #54 - register function constants when function is invoked 2017-01-15 16:43:49 -05:00
Matthew Brown
4fd46fe2c8 Fix #59 - make functions aware of just-defined constants 2017-01-15 15:58:40 -05:00
Matthew Brown
faccc73dc1 Fix #52 by analysing non-main parts of issets 2017-01-15 13:58:20 -05:00
Matthew Brown
1bf2139149 Fix #58 - treat callmap args correctly when evaluating variadic 2017-01-15 13:17:11 -05:00
Matthew Brown
2e4996e562 Fix how we treat numeric strings 2017-01-15 12:55:07 -05:00
Matthew Brown
8836f05027 Fix #56 - functions in root namespaces should not need slash 2017-01-15 12:34:23 -05:00
Matthew Brown
03141e41c2 Move string-stored types into named classes 2017-01-15 10:22:05 -05:00
Matthew Brown
dc592f7a6e Fix #55 - hiccup when negating strange expression 2017-01-15 01:16:50 -05:00
Matthew Brown
78c1138a94 Fix #53 - add back extends checks for reflected classes 2017-01-14 19:34:10 -05:00
Matt Brown
37e8b4adfe Fix a few issues in tests 2017-01-13 14:14:24 -05:00
Matt Brown
6e6106c080 Add docblocks to tests 2017-01-13 14:07:23 -05:00