1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-17 03:47:04 +01:00
Commit Graph

2144 Commits

Author SHA1 Message Date
Matthew Brown
ea4daa7b7e Move cache dir into better config 2016-11-04 17:47:11 -04:00
Jon Ursenbach
8a6e8e9940 Fixing remaining PSR-2 violations. 2016-11-03 20:51:56 -04:00
Jon Ursenbach
27c2db1d1d PSR-2 2016-11-02 17:50:54 -04:00
Matthew Brown
d27e06cc86 Fix interface inheritance 2016-11-02 12:14:21 -04:00
Matthew Brown
70f8947336 Break apart long functions 2016-11-02 09:24:36 -04:00
Matthew Brown
5cc5bd4ed4 Fix tests to all have property types 2016-11-01 14:32:19 -04:00
Matthew Brown
b78e83c4c0 Break out method 2016-11-01 14:20:01 -04:00
Matthew Brown
88eb43e9ca Break out ExpressionChecker 2016-11-01 14:14:41 -04:00
Matthew Brown
712752d587 Split out asssignment methods 2016-11-01 11:37:58 -04:00
Matthew Brown
5c132ba8b8 Fix a few type errors 2016-11-01 10:28:09 -04:00
Matthew Brown
a6850a8f3c Prevent a nullref 2016-11-01 01:02:54 -04:00
Matthew Brown
34af24a2b4 Add all the properties 2016-11-01 00:39:41 -04:00
Matthew Brown
1c09ea7380 Fix Psalm errors in Psalm 2016-10-31 15:42:20 -04:00
Matthew Brown
c2f63c392e Emit issue if property type is missing 2016-10-31 15:17:54 -04:00
Matthew Brown
8fefaecd9c Skip when encountering null list var 2016-10-30 19:59:26 -04:00
Matthew Brown
4d5b0abb74 Add explicit value tracking 2016-10-30 19:52:35 -04:00
Matthew Brown
b220ee51cc Correctly assign list values 2016-10-30 19:38:08 -04:00
Matthew Brown
518f0f70a8 Break out possibly-reusable bit 2016-10-30 19:13:09 -04:00
Matthew Brown
53cef386a2 Do not error on mixed input 2016-10-30 12:53:56 -04:00
Matthew Brown
6cd63cc0f3 Fix nullref 2016-10-30 12:51:41 -04:00
Matthew Brown
604c875d0c Fix more errors caught by Psalm 2016-10-30 12:46:18 -04:00
Matthew Brown
ad228e4d7e Hardcode properties that Psalm needs 2016-10-30 11:14:36 -04:00
Matthew Brown
722a7fba5c Don't squeal when autoloading classes 2016-10-30 01:13:33 -04:00
Matthew Brown
98437c52db Check closure params to see if they align with array_map/array_filter args 2016-10-29 22:17:46 -04:00
Matthew Brown
4bf07d0adb Add support for PHPDoc array style 2016-10-29 20:57:03 -04:00
Matthew Brown
95be3c4a05 Interpret variadic params as arrays 2016-10-29 20:50:24 -04:00
Matthew Brown
9f94add470 Update plugin interface to add $suppressed_issues 2016-10-28 16:49:42 -04:00
Matthew Brown
b31ac4a862 Removed object-like type descriptor in favour of array{} syntax 2016-10-28 13:24:06 -04:00
Matthew Brown
c91cb30bd6 Rethrow exception 2016-10-28 11:05:51 -04:00
Matthew Brown
12918d8cc9 Fix ref 2016-10-28 10:58:49 -04:00
Matthew Brown
b627bdf9c6 Catch bad docblock issue 2016-10-28 10:54:20 -04:00
Matthew Brown
0b0a5ff0e8 Better check for bad static invocation 2016-10-28 10:22:45 -04:00
Matthew Brown
cc0c62fd23 Allow spaces in docblock types 2016-10-28 00:11:16 -04:00
Matthew Brown
95f5a4603a Add property for poorly-reflected builtin classes 2016-10-27 16:05:27 -04:00
Matthew Brown
78e183ea0c Filter null & false if no arg passed to array_filter 2016-10-26 17:51:34 -04:00
Matthew Brown
c5107f2abf Fix zlib_encode 2016-10-26 11:57:30 -04:00
Matthew Brown
c48ce9ec33 Deal with optional callmap args better 2016-10-26 11:51:59 -04:00
Matthew Brown
76191e2505 Add back apc_store proper signature 2016-10-26 11:25:44 -04:00
Matthew Brown
77c442cb1d Improve CallMap from origin 2016-10-26 11:16:37 -04:00
Matthew Brown
b0b767c465 Fix unnecessary Exception signatures 2016-10-26 10:25:52 -04:00
Matthew Brown
4d224d56db Handle user-defined code in root namespace (e.g. OAuth) better 2016-10-25 11:40:09 -04:00
Matthew Brown
694d159829 Fix interface extends return types 2016-10-25 11:20:06 -04:00
Matthew Brown
6dde59bd20 Fix previous exception 2016-10-24 19:20:42 -04:00
Matthew Brown
4d0d5fab9a Fix Exception type 2016-10-24 19:00:52 -04:00
Matthew Brown
3fa1cce4f6 Fix more callmap issues 2016-10-24 18:56:43 -04:00
Matthew Brown
09ab4b4f33 Fix casing of DateTime objects 2016-10-24 18:49:27 -04:00
Matthew Brown
4b65f92cb9 Fix #29 - allow interface extension 2016-10-24 18:49:07 -04:00
Matthew Brown
357cd8ad41 Add support for Closure::__invoke 2016-10-24 15:55:05 -04:00
Matthew Brown
74ec219421 Add more checks for inferredType 2016-10-24 12:13:12 -04:00
Matthew Brown
2ddb08c778 Add more protective checks 2016-10-24 11:06:04 -04:00
Matthew Brown
bd173f8840 Fix #21 - stopOnFirstError now handled properly 2016-10-23 23:32:17 -04:00
Matthew Brown
ce95275878 Fix more Psalm bugs found by Psalm 2016-10-23 12:24:53 -04:00
Matthew Brown
d8b10a6c97 Fix errors caught by Psalm 2016-10-23 01:57:11 -04:00
Matthew Brown
fbdfc78546 Fix references to moved fucntionality 2016-10-22 18:25:14 -04:00
Matthew Brown
f3f1ba1caa Break out block checkers 2016-10-22 17:35:59 -04:00
Matthew Brown
2bea64ca52 Split out SwitchChecker 2016-10-22 13:37:06 -04:00
Matthew Brown
dda4c52e03 Fix ref 2016-10-22 13:29:32 -04:00
Matthew Brown
e4ba8b1abc Make StatementsChecker much smaller 2016-10-22 13:28:40 -04:00
Matthew Brown
6174048354 Flesh out function params when evaluating args 2016-10-21 14:38:03 -04:00
Matthew Brown
6d8e722a77 Add support for anonymous classes 2016-10-20 20:54:17 -04:00
Matthew Brown
6283553d19 Properly clear cache 2016-10-20 18:16:17 -04:00
Matthew Brown
0100ca2b8c Add better cache clear 2016-10-20 18:12:13 -04:00
Matthew Brown
d71d439e25 Closure basically implements callable 2016-10-20 18:05:28 -04:00
Matthew Brown
07636468a2 Improve Generator typing 2016-10-20 15:26:02 -04:00
Matthew Brown
4c51e02107 Fix function checking 2016-10-20 14:36:15 -04:00
Matthew Brown
8c23d0829a Add typed support for spaceship operator 2016-10-20 14:28:16 -04:00
Matthew Brown
a4644a0e4a Add support for Generator types 2016-10-20 14:28:16 -04:00
Matthew Brown
518e8bcbaf Support PHP5.5 features (except yield, for now) 2016-10-20 00:13:35 -04:00
Matthew Brown
5e45a70ea8 Fix erroneous continue 2016-10-19 16:50:49 -04:00
Matthew Brown
451d97e0ed Add support for variadic and packed variables 2016-10-19 00:31:32 -04:00
Matthew Brown
58bb10b948 Improve maths type resolution 2016-10-19 00:00:49 -04:00
Matthew Brown
98b4029ebd Support PHP7 return types 2016-10-18 21:54:08 -04:00
Matthew Brown
6b4039aae3 Fix #23 - prevent duplicte messages 2016-10-18 18:55:53 -04:00
Matthew Brown
900f86507d Avoid TooManyArguments issues on mock classes 2016-10-18 18:27:16 -04:00
Matthew Brown
a1acaa231a Allow @psalm-variadic to denote functions that use func_call_args 2016-10-18 17:55:07 -04:00
Matthew Brown
068dc41173 Fix #24 - do not emit TooManyArguments issue erroneously for function calls 2016-10-18 16:43:50 -04:00
Matthew Brown
f916a6f9a3 Remove unused methods 2016-10-18 16:28:51 -04:00
Matthew Brown
935b9dfe07 Be more sensitive to function_exists checks, do not apply to whole function 2016-10-18 16:14:52 -04:00
Matthew Brown
375c522304 Fix #25 - only emit one MethodSignagureMismatch per line 2016-10-18 16:00:03 -04:00
Matthew Brown
b7ffd66211 Do not check methods after is_callable 2016-10-18 14:22:54 -04:00
Matthew Brown
d247cead09 Exit properly when encountering classes we cannot deal with 2016-10-18 11:25:15 -04:00
Matthew Brown
991806a2c4 Ignore files outside project dirs for diffs 2016-10-18 10:17:25 -04:00
Matthew Brown
e6cc026d20 Add check for continue when not in loop context 2016-10-17 16:42:23 -04:00
Matthew Brown
2b0af34d2c Be more lenient with null vs void return type 2016-10-15 18:55:17 -04:00
Matthew Brown
fd6954f056 Add override for ArrayObject and fix error message 2016-10-15 18:45:31 -04:00
Matthew Brown
b2a5081163 Add checks for method signature mismatch 2016-10-15 18:01:04 -04:00
Matthew Brown
331475640b Obviate array_filter 2016-10-15 13:14:43 -04:00
Matthew Brown
31257634f4 Improve messages 2016-10-15 13:10:48 -04:00
Matthew Brown
18a55e2854 Also inspect arrays from strings 2016-10-15 13:10:05 -04:00
Matthew Brown
81e15362a0 Fix psalm errors in psalm 2016-10-15 10:36:19 -04:00
Matthew Brown
ca3dfe6e39 Fix Psalm errors in Psalm 2016-10-15 00:12:57 -04:00
Matthew Brown
6201957f76 Add a ton of docblocks 2016-10-14 00:53:43 -04:00
Matthew Brown
3a92e29f59 Fix View checks 2016-10-13 21:30:27 -04:00
Matthew Brown
2406e0b190 Fix additional ref 2016-10-13 19:13:57 -04:00
Matthew Brown
9adc30ecd9 Fix use var 2016-10-13 19:08:28 -04:00
Matthew Brown
a444fd95c2 Fix miscellaneous var ids 2016-10-13 19:01:12 -04:00
Matthew Brown
ab2b3cea9e Fix registerVariable call 2016-10-13 18:40:07 -04:00
Matthew Brown
cd69b0e5d6 Allow static property gets/sets 2016-10-13 18:27:23 -04:00
Matthew Brown
8da29add82 Delay expression checks until the end 2016-10-13 01:32:52 -04:00
Matthew Brown
4c4b6e9902 Add docblocks where relevant 2016-10-12 01:38:29 -04:00
Matthew Brown
14606bddbb Set types on static property evaluation 2016-10-12 01:38:16 -04:00
Matthew Brown
e152a8f6f1 Type array_pop/array_shift returns better 2016-10-12 01:37:32 -04:00
Matthew Brown
c4648673bf Rename @suppress to @psalm-suppress 2016-10-11 14:17:55 -04:00
Matthew Brown
f87e2ae4fc Set type of mixed for magic get 2016-10-11 13:45:19 -04:00
Matthew Brown
6f1d042039 Emit issue on empty type 2016-10-11 10:47:31 -04:00
Matthew Brown
2b4b7c26e9 Add byref for getmxrr 2016-10-11 01:27:59 -04:00
Matthew Brown
99fe265722 Add DOMDocument and DOMNode to list of classes to ignore properties on 2016-10-10 23:52:05 -04:00
Matthew Brown
472e4df3cc Allow mixed to match function args 2016-10-10 22:49:43 -04:00
Matthew Brown
64b4adfb22 Make UndefinedProperty issues more specific 2016-10-10 19:29:38 -04:00
Matthew Brown
a30c82e5d7 Fix bugs in refactor 2016-10-10 01:35:12 -04:00
Matthew Brown
f68280488c Remove custom error levels 2016-10-09 17:55:21 -04:00
Matthew Brown
5292467db0 Add @todo issues and fix errors in StatementsChecker 2016-10-09 17:54:58 -04:00
Matthew Brown
566fa8e838 Do not check deleted files 2016-10-08 20:49:14 -04:00
Matthew Brown
eecd35f10b Also scan deleted files 2016-10-07 13:26:29 -04:00
Matthew Brown
d8d26a3f40 Add more robust in-psalm check 2016-10-07 00:58:08 -04:00
Matthew Brown
ed2c157762 Accept space-separated arguments 2016-10-05 17:08:20 -04:00
Matthew Brown
3f742ee954 Generate big graph of all files that could possibly be affected 2016-10-05 13:24:46 -04:00
Matthew Brown
2261ecf596 Add ability to look up a file's dependencies 2016-10-04 19:23:38 -04:00
Matthew Brown
ae75296469 Use psalm-return in place of return if available 2016-10-03 21:36:42 -04:00
Matthew Brown
f3ee908232 Improve error message 2016-10-03 16:47:14 -04:00
Matthew Brown
c060a75b24 Throw error if we are accessing object-like array with int offset 2016-10-03 16:40:46 -04:00
Matthew Brown
b8ba6ffbf6 Add return type checking of object-like types 2016-10-03 16:40:02 -04:00
Matthew Brown
efb7cd8218 Give parsers ability to manipulate object-like types 2016-10-03 16:39:42 -04:00
Matthew Brown
7565ee3fac Update docblock checker to see object-like types 2016-10-03 16:37:31 -04:00
Matthew Brown
936630892e Fix reconciling of elseifs 2016-10-03 11:39:32 -04:00
Matthew Brown
49baa62224 Fix doblocks and invalid refs 2016-10-03 11:38:59 -04:00
Matthew Brown
89bc501e17 Make sure to set object-like property type if available 2016-10-03 10:41:21 -04:00
Matthew Brown
e04441b8ac Add ObjectLike check in 2016-10-03 01:35:54 -04:00
Matthew Brown
1d10d8e8a2 Add hasType check 2016-10-03 01:01:24 -04:00
Matthew Brown
41278260b8 Fix nested array adjust 2016-10-03 00:43:24 -04:00
Matthew Brown
575ee55d1b Now make string dictionaries object-like 2016-10-02 22:00:42 -04:00
Matthew Brown
c22fc15bfa clobber better 2016-10-02 22:00:05 -04:00
Matthew Brown
a84587e6c3 Clobber empty array when combining with object-like 2016-10-02 19:33:46 -04:00
Matthew Brown
bcd2b73c43 Add check for ObjectLike 2016-10-02 18:59:37 -04:00
Matthew Brown
047b932e46 Support combining ObjectLike types 2016-10-02 18:59:16 -04:00
Matthew Brown
79d7a87539 Ignore classes checked in class_exists 2016-10-02 13:05:49 -04:00
Matthew Brown
b4de3fc2d8 Add null check when updating type 2016-10-02 11:08:15 -04:00
Matthew Brown
a6f1eaeee2 Add support for -1 and +1 in property declarations 2016-10-02 10:30:44 -04:00
Matthew Brown
ff17dcf1ee Fix while loop unset issue 2016-10-02 10:26:13 -04:00
Matthew Brown
91ea6844ba Prevent error on string array assignment 2016-10-02 10:13:35 -04:00
Matthew Brown
a141ffe3cf Add support for iteration over object-like arrays 2016-10-02 09:50:24 -04:00
Matthew Brown
fb30b79a11 Fix descendant removal 2016-10-01 23:10:15 -04:00
Matthew Brown
dd57a85f54 Make sure we do not neglect main-scope method calls 2016-10-01 22:47:32 -04:00
Matthew Brown
ceeaa5467c Make sure we set return type to mixed 2016-10-01 21:02:13 -04:00
Matthew Brown
478ef9b551 Make sure object-like is not considered an object 2016-09-22 13:45:22 -04:00
Matthew Brown
f00eb66690 Do not assign array values on object 2016-09-22 13:43:53 -04:00
Matthew Brown
42c8923981 Fix isset assertions 2016-09-22 12:26:24 -04:00
Matthew Brown
2e371aca00 Create ObjectLike entities 2016-09-22 00:49:48 -04:00
Matthew Brown
5113ffefee Add a fully-parsable representation of object-like types 2016-09-22 00:31:07 -04:00
Matthew Brown
baf9bcd4d7 Make a class for arrays 2016-09-21 22:15:46 -04:00
Matthew Brown
abae0a9cae Fix erroneous array assignment 2016-09-21 19:14:44 -04:00
Matthew Brown
37aae5d731 Allow type assertions on array keys 2016-09-21 19:14:29 -04:00
Matthew Brown
5d768d4fbe Ignore object-like issue 2016-09-21 18:26:26 -04:00
Matthew Brown
520ca5b559 Add more support for evaluating object-like type and fix empty check in foreach 2016-09-21 16:42:39 -04:00
Matthew Brown
93a5e6775d Add object-like type to represent cheating arrays 2016-09-20 21:45:49 -04:00
Matthew Brown
e9a30ca556 Remove descendent types when assigning 2016-09-17 11:57:44 -04:00
Matthew Brown
dff23e9d74 Be more general with arrays 2016-09-15 16:42:50 -04:00
Matthew Brown
24fd84617f Fix include check and nest function arg check 2016-09-15 16:31:36 -04:00
Matthew Brown
55fc146c57 Fix possible reference error if interface name is bad 2016-09-15 16:30:18 -04:00
Matthew Brown
6027687ad9 Fix callmap incorrect value 2016-09-15 16:29:58 -04:00
Matthew Brown
58835c0ad5 Add getArrayVarId for making assertions about array keys 2016-09-13 18:58:49 -04:00
Matthew Brown
352f5e64b3 Do not overboil 2016-09-13 18:23:09 -04:00
Matthew Brown
70d01c8138 Fix nullref 2016-09-13 18:10:41 -04:00
Matthew Brown
c1ca6c27d5 If we do not know, do not assume 2016-09-13 17:35:30 -04:00
Matthew Brown
884648b56c Improve type combination when evaluating array types 2016-09-12 23:24:26 -04:00
Matthew Brown
324b5ecdae Remove bad $this 2016-09-12 19:44:33 -04:00
Matthew Brown
9d38d8c197 Simplify reported array type to avoid errors 2016-09-12 19:30:57 -04:00
Matthew Brown
d94a6fdaa0 Account for commas in stuff 2016-09-12 19:29:24 -04:00
Matthew Brown
7298b41c45 Do not throw access errors when array might be empty 2016-09-12 12:23:51 -04:00
Matthew Brown
6a9bcea901 Improve typing of properties 2016-09-12 11:32:44 -04:00
Matthew Brown
677614f23e Fix offset issues 2016-09-12 00:34:38 -04:00
Matthew Brown
0563f508ca Fix automatic array creation checks 2016-09-12 00:02:26 -04:00
Matthew Brown
e663c1da19 Add support for object negation 2016-09-12 00:01:47 -04:00
Matthew Brown
564c4e2bf3 If we see an object type assertion, filter out non-object types 2016-09-11 19:12:56 -04:00
Matthew Brown
554791e6ac Fix aliased class casing and misc errors 2016-09-09 23:17:56 -04:00
Matthew Brown
9ab0ee45a5 Add a bunch of docblocks 2016-09-09 20:07:36 -04:00
Matthew Brown
288ac91c4a Add protections 2016-09-09 18:54:24 -04:00
Matthew Brown
f455851f89 Fix bugs in array key checks 2016-09-09 18:36:35 -04:00
Matthew Brown
8c5adf477a Add support for key/value array typing 2016-09-09 16:21:49 -04:00
Matthew Brown
97a8e447d7 Check uses before checking functions 2016-09-02 16:16:11 -04:00
Matthew Brown
750d172917 Prevent nested functions from throwing errors
And fix fixLocalType when passed var
2016-09-02 13:47:11 -04:00
Matthew Brown
f86c396115 Ignore resources 2016-09-01 20:27:16 -04:00
Matthew Brown
0f5f4c3029 Check functionlike param types 2016-09-01 18:02:09 -04:00
Matthew Brown
99649f2f09 Fix reference errors 2016-09-01 00:07:29 -04:00
Matthew Brown
b40e057090 Add checks for !== true 2016-09-01 00:07:20 -04:00
Matthew Brown
47f66bf4dd Add support for exposing errors in external files 2016-08-31 23:12:35 -04:00
Matthew Brown
4ccf9cf06f Do not just return last successful type found 2016-08-31 17:08:04 -04:00
Matthew Brown
b8c5bc4968 proc_open can return false 2016-08-31 15:10:29 -04:00
Matthew Brown
330199c9a3 Add support for callable checks 2016-08-31 15:10:11 -04:00
Matthew Brown
bad1271744 Add more coverage for scalar types 2016-08-31 13:25:29 -04:00
Matthew Brown
f28485ddad Never set a null $var_name 2016-08-30 15:47:44 -04:00
Matthew Brown
89d04186b1 Add missing isResource method 2016-08-30 00:40:08 -04:00
Matthew Brown
7d11b4b9b0 Add support for numeric types 2016-08-30 00:39:17 -04:00
Matthew Brown
d689996fde Support all is_* checks 2016-08-30 00:25:15 -04:00
Matthew Brown
8212284675 Map function return types for builtins 2016-08-30 00:05:13 -04:00
Matthew Brown
4a88a376df Improve handling of switch and change method name 2016-08-30 00:04:10 -04:00
Matthew Brown
7e018d3c35 Revamp include file reporting 2016-08-24 19:00:44 -04:00
Matthew Brown
1327b9e604 Add better file location recognition for imports 2016-08-24 18:13:22 -04:00
Matthew Brown
e5a6f0d42f Add support for Closure->callable types 2016-08-24 17:06:41 -04:00
Matthew Brown
4d388d197c Fix analysis of switch statements 2016-08-24 17:06:20 -04:00
Matthew Brown
0e68179bb4 Pass in the right context 2016-08-24 00:22:38 -04:00
Matthew Brown
212edcd16b Only warn about undefined this vars once 2016-08-23 23:51:01 -04:00
Matthew Brown
9dc0a088ea Support while loop property updates 2016-08-23 23:41:06 -04:00
Matthew Brown
f91c0a048d Avoid nullref when updating properties 2016-08-23 23:39:43 -04:00
Matthew Brown
0e1a969e55 Add a bunch of boilerplate to solve redefining loop vars 2016-08-23 22:09:06 -04:00
Matthew Brown
25ed89940d Re-calculate else context types 2016-08-23 20:56:18 -04:00
Matthew Brown
92aa7217af Pass in loop context, not specific vars 2016-08-23 18:09:34 -04:00
Matthew Brown
6637bb653c Fix type assignment after empty check 2016-08-22 23:02:03 -04:00
Matthew Brown
e0b9c876fb Improve logic for updating context 2016-08-22 20:06:28 -04:00
Matthew Brown
bac747d563 Add slight refinement 2016-08-22 19:45:34 -04:00
Matthew Brown
2cba7a83bf Do not investigate null types 2016-08-22 19:29:06 -04:00
Matthew Brown
a4a1fd9557 Explicitly return array of strings for explode 2016-08-22 18:09:52 -04:00
Matthew Brown
093c5447ae Avoid unnecessary interface casing errors 2016-08-22 16:41:45 -04:00
Matthew Brown
5d610b222a Fix off-by-one error 2016-08-22 15:43:08 -04:00
Matthew Brown
3b5909804d Fix ref errors 2016-08-22 15:42:05 -04:00
Matthew Brown
6edc120704 Add checking of function arguments 2016-08-22 15:00:12 -04:00
Matthew Brown
b1c525bef0 Also inspect array_merge 2016-08-18 17:36:54 -04:00
Matthew Brown
39b4cb54b3 Add array_filter type reflection 2016-08-18 16:51:10 -04:00
Matthew Brown
474f1b0ff2 Add array_map function typing 2016-08-18 16:19:37 -04:00
Matthew Brown
c56c148f70 Fix type fleshing-out 2016-08-15 20:00:02 -04:00
Matthew Brown
35b54bfd48 Do not evaluate falsey 2016-08-15 16:22:32 -04:00
Matthew Brown
f7003bc53e Rename ClassMethodChecker to MethodChecker 2016-08-15 15:14:28 -04:00
Matthew Brown
f270d67db6 Fix trait mapping 2016-08-15 14:20:06 -04:00
Matthew Brown
adbac24f8e Catch attempts to call methods on object type 2016-08-15 13:59:23 -04:00
Matthew Brown
116cb3064d Remove trailing backslash when checking method 2016-08-15 13:59:02 -04:00
Matthew Brown
666f570fb2 Allow case errors correctly 2016-08-15 13:51:43 -04:00
Matthew Brown
374c045ff6 Allow case-invariant function names 2016-08-15 13:37:21 -04:00
Matthew Brown
14ff5b00ac Allow non-this properties to be passed by reference 2016-08-15 12:22:43 -04:00
Matthew Brown
98b120b70c Avoid treating abstract classes as declaring classes 2016-08-15 12:22:23 -04:00
Matthew Brown
84b4e09873 Simplify clearCache calls 2016-08-15 11:01:50 -04:00
Matthew Brown
faae9062ba Fix view checks 2016-08-15 02:12:27 -04:00
Matthew Brown
899f74b12e Allow functions to deal with shifting aliased classes 2016-08-15 01:21:50 -04:00
Matthew Brown
ccad9978f5 Put back function hoisting 2016-08-15 00:58:30 -04:00
Matthew Brown
cd36893b9f Fix trait reuse 2016-08-15 00:52:25 -04:00
Matthew Brown
d23242e4e7 Fix what methods get assigned 2016-08-15 00:31:34 -04:00
Matthew Brown
3f24af3031 Big refactor to limit reflection 2016-08-14 23:24:16 -04:00
Matthew Brown
d559196c96 Fix reference errors 2016-08-14 13:13:53 -04:00
Matthew Brown
affa6c306b Fix class case sensitivity 2016-08-14 13:00:41 -04:00
Matthew Brown
94a3930ddb Doubles are really floats 2016-08-14 12:07:19 -04:00
Matthew Brown
8ba4f5141c Simplify class registration 2016-08-14 12:06:53 -04:00
Matthew Brown
fe90018660 Add support for checking user-defined constants 2016-08-14 00:38:29 -04:00
Matthew Brown
719f6d1d62 Fix include call checks 2016-08-13 23:26:45 -04:00
Matthew Brown
399892031f Fix #16 - dd more info to context and type constants 2016-08-13 21:14:32 -04:00
Matthew Brown
defc4cebc1 Add support for checking inherited constants 2016-08-13 19:44:24 -04:00
Matthew Brown
fd63f3e056 Abandon use of undersocres and fix interface parsing 2016-08-13 18:54:49 -04:00
Matthew Brown
7d1a106fd5 Big file reorg with ClassLikeChecker as new ClassChecker 2016-08-13 14:20:46 -04:00
Matthew Brown
b32ead15d3 Add docblocks for methods and fix bugs 2016-08-13 11:28:06 -04:00
Matthew Brown
eafdaf9db0 Fix trait visibility 2016-08-13 11:10:57 -04:00
Matthew Brown
274448d014 Fix casing of simplexml returns 2016-08-12 20:45:34 -04:00
Matthew Brown
06ac1f1186 Improve array assignment checks; 2016-08-12 17:45:23 -04:00
Matthew Brown
f1fa5ca42f Add false vals referenced in https://github.com/etsy/phan/pull/316 2016-08-12 16:36:27 -04:00
Matthew Brown
a0dcabe4e1 Look once the vars have been set 2016-08-11 22:00:27 -04:00
Matthew Brown
a62a7899e0 Add overrides for some methods 2016-08-11 17:36:22 -04:00
Matthew Brown
300375c4bd Add preliminary call map 2016-08-10 19:37:40 -04:00
Matthew Brown
53b94f339e Fix errors found via self-inspection 2016-08-10 19:21:03 -04:00
Matthew Brown
8d6871d29e Remove underscores 2016-08-10 18:10:12 -04:00
Matthew Brown
cf90f5af4a Add support for static in return types 2016-08-10 13:52:16 -04:00
Matthew Brown
2adf377d94 Fix closure & elseif checks 2016-08-10 02:13:55 -04:00
Matthew Brown
1c3993eaf7 Improve $context->update again 2016-08-10 01:54:45 -04:00
Matthew Brown
8345526fc8 Simplify context update logic 2016-08-10 01:28:38 -04:00
Matthew Brown
b274c7dd68 Fix tests 2016-08-10 01:09:47 -04:00
Matthew Brown
8131f806d8 Protect possibility of bad get_class call 2016-08-09 19:14:50 -04:00
Matthew Brown
24d67e9615 Add support for special typeof types (used in get_class checks) 2016-08-09 18:10:46 -04:00
Matthew Brown
02ce85e383 Add support for bool checks 2016-08-09 18:10:17 -04:00
Matthew Brown
55f466b2ed Fix how params are set 2016-08-09 15:02:30 -04:00
Matthew Brown
b0f6a020da Exit early for invalid class or interface 2016-08-09 12:11:58 -04:00
Matthew Brown
588ae82ffb Do not skip if we want to check class methods 2016-08-09 12:07:50 -04:00
Matthew Brown
054032354d Exit early if ReflectionError 2016-08-09 12:07:26 -04:00
Matthew Brown
0d35f1c14b Allow suppression of type errors and add better treatment of static 2016-08-08 18:55:22 -04:00
Matthew Brown
daf49bdf0b Add separate undefined this property to demarcate those errors 2016-08-08 16:06:28 -04:00
Matthew Brown
902c05d3a7 Check traits in context of class 2016-08-08 14:36:18 -04:00
Matthew Brown
be5fc52da8 Use $context->self var instead of $this->_absolute_class 2016-08-08 11:28:14 -04:00
Matthew Brown
92134b60ec Add support for checking new self/parent/static 2016-08-07 16:27:00 -04:00
Matthew Brown
06891106fb Add clearer error messages 2016-08-07 16:13:36 -04:00
Matthew Brown
ccaea8fa51 Allow docblock param types in function checker 2016-08-07 16:13:08 -04:00
Matthew Brown
a881191f1d Be more lenient with certain assignments 2016-08-07 15:15:21 -04:00
Matthew Brown
b7dfb5e134 Skip empty arrays when looking inside foreach loops 2016-08-07 14:36:24 -04:00
Matthew Brown
c58458ed20 Add code to handle SimpleXMLElement 2016-08-07 13:58:46 -04:00
Matthew Brown
620d4afd68 Fix tokenisation of ? nullable shorthand 2016-08-07 12:50:21 -04:00
Matthew Brown
7a1cded329 Add better class visibiity checks 2016-08-07 12:23:29 -04:00
Matthew Brown
4d26b9b3af Add more issues to solve 2016-08-07 11:35:27 -04:00
Matthew Brown
d254bc0aa2 Improve type checking of properties 2016-08-06 20:27:13 -04:00
Matthew Brown
f72ad63dac Add beginnings of non-this property checks 2016-08-05 17:45:47 -04:00
Matthew Brown
81c72f2900 Evaluate parent classes proper-like 2016-08-05 15:11:20 -04:00
Matthew Brown
9d4271f023 Allow better handling of questionmark type annotations 2016-08-04 14:43:33 -04:00
Matthew Brown
944a8c24eb Add ability to suppress info output from command line 2016-08-04 14:38:43 -04:00
Matthew Brown
bff796ceb7 Add TooManyArguments to default suppressed list 2016-07-30 19:54:53 -04:00
Matthew Brown
9cb7a5feeb Fix #14 - add support for checking too many and too few arguments 2016-07-29 14:48:04 -04:00
Matthew Brown
f45e7c7539 Only load autoloader if provided 2016-07-26 15:03:43 -04:00
Matthew Brown
6b3fe14f1e Allow specification of custom autoloaders 2016-07-26 15:03:43 -04:00
Matthew Brown
c4a222171b Fix undefined var name 2016-07-26 15:03:43 -04:00
Matthew Brown
9718893232 Exit early if parent class cannot be found 2016-07-26 15:03:43 -04:00
Matthew Brown
7701a2ec23 Change config filename 2016-07-25 18:39:36 -04:00
Matthew Brown
df28d24803 Change name to Psalm 2016-07-25 18:37:44 -04:00