1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-13 17:57:37 +01:00
Commit Graph

695 Commits

Author SHA1 Message Date
Matt Brown
154d023a9d Add more robust config testing 2016-12-14 12:28:38 -05:00
Matt Brown
fa50a250c3 Limit snippet selection by preview bounds 2016-12-12 19:11:21 -05:00
Matt Brown
2d02a04c6a Use callmap return types where possible 2016-12-12 18:49:40 -05:00
Matt Brown
8d693d7db2 Fix issues around incorrectly registering inherited private methods 2016-12-12 14:29:58 -05:00
Matt Brown
7d3753ddd8 Fix errors on inherited trait protected/private methods 2016-12-12 13:57:45 -05:00
Matt Brown
c7a758ceb1 Fix trait method call checks 2016-12-12 13:50:46 -05:00
Matthew Brown
592ee98efc Fix bugs discovered by adding more tests 2016-12-11 23:40:46 -05:00
Matthew Brown
a84ae58c32 Emit InaccessibleProperty issue where appropriate 2016-12-11 22:18:12 -05:00
Matthew Brown
ad838bf1a4 Fix error checking private access from subclass 2016-12-11 22:17:00 -05:00
Matthew Brown
144625f625 Add numeric check back, with caveats 2016-12-11 20:36:27 -05:00
Matthew Brown
6c34ab2d52 Remove is_numeric check which was erroneously asserting non-string 2016-12-11 20:25:14 -05:00
Matthew Brown
1e8f986d8c Narrow down error lines for reconcileKeyedTypes 2016-12-11 13:59:36 -05:00
Matthew Brown
562f71b21f Add TypeDoesNotContainType issue and fix those issues in Psalm code 2016-12-11 13:48:11 -05:00
Matthew Brown
73b1ab1411 Support int offsets in dealing with type inference 2016-12-10 18:24:28 -05:00
Matthew Brown
327e3150a2 Fix erroneous self-check 2016-12-10 15:08:38 -05:00
Matthew Brown
c3df70e634 Allow int offsets to be treated as keys 2016-12-10 15:01:59 -05:00
Matthew Brown
12b5097fba Fix function casing when checking regular functions 2016-12-10 13:20:41 -05:00
Matthew Brown
0b06b3b09b Fix #9 - updated docblocks are lowercased 2016-12-10 13:07:12 -05:00
Matt Brown
eff98bfe00 Ignore nullrefs when using echo 2016-12-09 18:53:26 -05:00
Matt Brown
ee2a60499e Fix LimitIterator issue 2016-12-09 18:53:18 -05:00
Matt Brown
14277201d4 Improve understanding of objectlike types in array_* functions 2016-12-09 18:53:10 -05:00
Matt Brown
899250530e Cast key to int 2016-12-09 13:27:59 -05:00
Matt Brown
30159d8f70 Ignore invalid scalar argument issue in echo 2016-12-09 12:53:22 -05:00
Matt Brown
b3106c68bb Fix #6 - raise error with erroneous __toString 2016-12-09 12:48:02 -05:00
Matt Brown
ce3b24bf5f Fix #8 - defer always to call map if function not user-defined 2016-12-09 12:07:47 -05:00
Matt Brown
e6ff24b8d2 Fix assignment in elseif 2016-12-09 12:06:14 -05:00
Matt Brown
1bcd31dd33 Update CallMap from etsy/phan 2016-12-09 11:09:04 -05:00
Matthew Brown
39d08cd4b4 Add method to set custom error level programatically 2016-12-08 22:37:59 -05:00
Matt Brown
28621485b0 Add support for parent-defined consts 2016-12-08 17:19:06 -05:00
Matt Brown
260a6d4df5 Make class errors more specific 2016-12-08 17:15:51 -05:00
Matt Brown
c9557d47ce Fix exponentiation and modulo type inference 2016-12-08 16:37:14 -05:00
Matt Brown
d8f0a40d99 Improve param class hilighting 2016-12-08 16:23:07 -05:00
Matt Brown
117645ac73 Account for off-by-one issue in PhpParser 2016-12-08 15:57:18 -05:00
Matthew Brown
a5195b2571 Add JSON output format 2016-12-07 22:38:57 -05:00
Matt Brown
6356f28a1f Fix #5 by simplifying oldstyle constructor support 2016-12-07 18:07:54 -05:00
Matt Brown
55a060b53a Add support for closure checks 2016-12-07 14:13:39 -05:00
Matthew Brown
7aac9985de Remove unnecessary suppression 2016-12-07 01:14:47 -05:00
Matthew Brown
cb9fe6e231 Add typehint to property/call maps 2016-12-07 01:12:42 -05:00
Matthew Brown
88be61ddbe Fix files 2016-12-07 00:16:15 -05:00
Matthew Brown
def7120b8b Further tweak travis 2016-12-07 00:07:33 -05:00
Matthew Brown
519c17cb9c Remove PHP 5.4 support 2016-12-07 00:04:06 -05:00
Matt Brown
48e19fc7e5 Add support for closure docblocks 2016-12-06 19:41:52 -05:00
Matt Brown
af1a932655 Make code location more accurate 2016-12-06 18:27:22 -05:00
Matthew Brown
c0a3211f66 Support disabling file includes via the config 2016-12-06 16:41:42 -05:00
Matthew Brown
ef1049224d Add selection of return types in code preview 2016-12-06 16:33:47 -05:00
Matthew Brown
60e15c255b Add support for gettype switch statements too 2016-12-06 13:51:03 -05:00
Matthew Brown
638fdad3ad Add support for PHP 7.1 iterable pseudo-type 2016-12-04 21:04:25 -05:00
Matthew Brown
37166a27b9 Set inferredType without needing string key offsets 2016-12-04 19:33:14 -05:00
Matthew Brown
23334700f6 Add config option to determine whether or not to use a property default value for its type 2016-12-04 18:43:07 -05:00
Matthew Brown
35802ccaa6 Don't totally panic when encountering invalid argument error 2016-12-04 18:42:20 -05:00
Matthew Brown
dcb9e1af14 Be more lenient when computing result of addition/subtraction 2016-12-04 18:41:33 -05:00
Matthew Brown
03d8a4ab0b Add support for array destructuring with keys 2016-12-04 14:14:00 -05:00
Matthew Brown
b912dd2777 Add support for array destructuring 2016-12-04 13:35:38 -05:00
Matthew Brown
52ba52ce91 Fix false negative for return type check 2016-12-04 10:57:58 -05:00
Matthew Brown
7cb6891a0b Add support for class constant visibility 2016-12-04 01:44:33 -05:00
Matthew Brown
983c6fd6c4 Allow nullable method return types 2016-12-04 00:08:25 -05:00
Matthew Brown
ffee37a23a Support nullable return types 2016-12-03 23:03:18 -05:00
Matthew Brown
0675e3364a Fix PHPParser 3.0.1 compatibility issues 2016-12-03 22:41:45 -05:00
Matthew Brown
ae16353f94 Suppress a couple more issues 2016-12-03 20:44:04 -05:00
Matthew Brown
a1acbfec07 Show code snippets when reporting errors
This also introduces a new method of identifying specific code locations when creating issues
2016-12-03 19:11:30 -05:00
Matthew Brown
1d603b11d0 Fix NULL signature issue 2016-11-30 15:03:52 -05:00
Matthew Brown
134bc950fb Add specific NullArrayAccess error 2016-11-22 11:11:47 -05:00
Matthew Brown
4f95c67e1c Emit issues for null/mixed array access 2016-11-21 19:07:56 -05:00
Matthew Brown
cf0c0cdda2 Do not quit, just fall through 2016-11-21 18:38:56 -05:00
Matthew Brown
7b3ab79aab Treat empty as mixed 2016-11-21 17:49:07 -05:00
Matthew Brown
05a004c8bc Add check for array access on invalid type 2016-11-21 16:44:35 -05:00
Matthew Brown
e9ea66f21b Fix issues in examples 2016-11-21 15:51:38 -05:00
Matthew Brown
7cac909cae Add attribution 2016-11-21 14:51:19 -05:00
Matthew Brown
7793f40803 Add Phan MIT license 2016-11-21 14:50:00 -05:00
Matthew Brown
0cb3b828b8 Add support for oldstyle constructors 2016-11-21 14:36:06 -05:00
Matthew Brown
72071fb5ec Add missing docblock params 2016-11-21 13:37:27 -05:00
Matthew Brown
a179eb89eb Add check for missing function params in docblocks 2016-11-21 13:37:02 -05:00
Matthew Brown
d8e11c7ad7 Support dollars 2016-11-21 10:29:59 -05:00
Matthew Brown
55005cdf23 Removing repetition 2016-11-21 00:11:30 -05:00
Matthew Brown
8acc0f388b Remove need for typehint 2016-11-21 00:03:46 -05:00
Matthew Brown
e43fd6af53 Fix invalid phpdoc return type 2016-11-20 23:57:37 -05:00
Matthew Brown
55a3ffa773 Add missing return types 2016-11-20 23:45:10 -05:00
Matthew Brown
7e829a3b46 Allow numbers in types 2016-11-20 23:35:15 -05:00
Matthew Brown
9d3dcc7401 Do not panic when bad types are passed 2016-11-20 23:31:10 -05:00
Matthew Brown
6822f46a2c Add suppprt for PHP 7.0 grouped uses 2016-11-20 22:40:19 -05:00
Matthew Brown
4b3f63c843 Fix missing properties 2016-11-20 22:02:26 -05:00
Matthew Brown
5a9f99c24e Fix namespacing issues in PHP 5.6 2016-11-20 21:49:06 -05:00
Matthew Brown
64029b2c74 Make sure we only checking namespaces with names 2016-11-20 17:26:30 -05:00
Matthew Brown
4a66dad2ac Improve interface inheritance 2016-11-20 11:51:19 -05:00
Matthew Brown
31aa1c3ce5 Fix PHPDoc-style type parsing 2016-11-20 02:52:34 -05:00
Matthew Brown
d542b22322 Add belt & braces file checking 2016-11-18 16:13:59 -05:00
Matthew Brown
262e6895be Fix lowercase check 2016-11-14 14:31:31 -05:00
Matthew Brown
360213df9e Add support for PHPDoc-style type updates 2016-11-13 20:32:09 -05:00
Matthew Brown
f2ce83c8e5 Fix minor boop 2016-11-13 15:55:06 -05:00
Matthew Brown
fa2209719b Fix nullref 2016-11-13 15:46:35 -05:00
Matthew Brown
409a7e4b9e Fix assignment checks 2016-11-13 15:39:16 -05:00
Matthew Brown
31f2f95140 Ignore empty types when converting to string 2016-11-13 14:36:10 -05:00
Matthew Brown
4bdc338b54 Make getTypeAssertion less type-sensitive 2016-11-13 13:15:40 -05:00
Matthew Brown
3b1dfd0942 Fix issue combining generic and object-like 2016-11-13 11:54:40 -05:00
Matthew Brown
38daca5edd Fix Psalm errors in Psalm 2016-11-13 11:24:46 -05:00
Matthew Brown
87bb4a2f52 Fix various issues with docblock updates 2016-11-13 01:43:51 -05:00
Matthew Brown
5cf95b42f2 --update-docblocks now works 2016-11-12 23:59:31 -05:00
Matthew Brown
8dfca6cce2 Add dummy --update-docblocks option 2016-11-12 18:51:48 -05:00
Matthew Brown
05ae7905d9 Refactor IfChecker to break apart massive method 2016-11-11 17:13:30 -05:00
Matthew Brown
264e77addd Change a few more words 2016-11-07 19:16:51 -05:00
Matthew Brown
36fc49965b Correct speling 2016-11-07 17:31:02 -05:00
Matthew Brown
622a0794c3 Swap in Fully-Qualified for Absolute terms 2016-11-07 17:29:51 -05:00
Matthew Brown
12a12e15c2 Emit issue if return type is missing 2016-11-07 17:07:59 -05:00
Matthew Brown
3b038db454 Avoid missing property 2016-11-07 15:29:47 -05:00
Matthew Brown
8cf4134b69 Remove exception if cannot touch this 2016-11-07 10:11:14 -05:00
Matthew Brown
8d0a8ab055 Rely on call map more 2016-11-06 23:30:14 -05:00
Matthew Brown
e9b4eb69e5 Improve diff mechanism to hit prevent unnecessary file_get_contents 2016-11-06 00:59:29 -04:00
Matthew Brown
721e0d01e2 Get rid of var_dumps 2016-11-05 20:53:39 -04:00
Matthew Brown
7d6ac4719f Fix offset assignment creation 2016-11-05 20:17:22 -04:00
Matthew Brown
492269ddd4 Ignore inability to infer when requiring 2016-11-05 18:46:17 -04:00
Matthew Brown
0090179d78 Update to latest CallMap 2016-11-05 18:34:23 -04:00
Matthew Brown
41ab05987d Make second arg of trait_exists optional 2016-11-05 18:32:14 -04:00
Matthew Brown
b3f3a20928 Correctly evaluate $this and self in property/return types 2016-11-05 18:31:09 -04:00
Matthew Brown
7c44353116 Add inferredType to InstanceOf_ 2016-11-05 17:57:14 -04:00
Matthew Brown
c5591adf10 Add support for global in functions and mixed inferred return errors 2016-11-05 17:54:34 -04:00
Matthew Brown
fb77c3393a Tighten up rules 2016-11-04 22:11:46 -04:00
Matthew Brown
2323d28238 Improve cache clearing 2016-11-04 22:04:55 -04:00
Matthew Brown
7df4d74a7b Fix Psalm errors 2016-11-04 21:14:04 -04:00
Matthew Brown
299bc45319 Fix trait inheritance diff 2016-11-04 20:49:04 -04:00
Matthew Brown
b7c20e2a44 Fix property type 2016-11-04 20:48:20 -04:00
Matthew Brown
60c8c5f099 Fix return type 2016-11-04 20:48:01 -04:00
Jon Ursenbach
917ee41461 Fixing some code styling issues. 2016-11-04 20:10:59 -04:00
Jon Ursenbach
653f509e80 Merge branch 'master' into psr2-fixes 2016-11-04 20:07:21 -04:00
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