1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-14 18:36:58 +01:00
Commit Graph

219 Commits

Author SHA1 Message Date
Matthew Brown
e3a9cb98c3 Add extra issue for invalid clone and fix issue reporting; 2017-01-16 12:59:09 -05:00
Matthew Brown
d46282e13f Fix issue with constants defined inside interfaces 2017-01-16 00:13:08 -05:00
Matthew Brown
de9d282205 Be more robust in the case of missing parent class 2017-01-15 22:09:32 -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
03141e41c2 Move string-stored types into named classes 2017-01-15 10:22:05 -05:00
Matthew Brown
78c1138a94 Fix #53 - add back extends checks for reflected classes 2017-01-14 19:34:10 -05:00
Matt Brown
e300550209 Be less brittle when interface does not exist 2017-01-12 11:16:00 -05:00
Matthew Brown
5f54a9571c Fix deep project checks 2017-01-12 01:03:48 -05:00
Matthew Brown
107d8352fc Add back mutation checks 2017-01-12 00:38:15 -05:00
Matthew Brown
56be346191 Add back mutation checks 2017-01-11 21:37:53 -05:00
Matthew Brown
03c5ea3cef Store all class keys lowercased 2017-01-09 00:14:39 -05:00
Matthew Brown
c90a479b15 Fix self-referential issue 2017-01-08 13:53:40 -05:00
Matthew Brown
e670ce4ca4 Revisit files to save memory usage 2017-01-08 12:55:32 -05:00
Matthew Brown
28cd8caca8 Change analyzeMethods to analyze 2017-01-07 15:57:25 -05:00
Matthew Brown
17329015dc Discriminate between checking, visiting and analyzing in method names 2017-01-07 15:09:47 -05:00
Matthew Brown
694da2cabd Simplify a lot of APIs 2017-01-07 14:35:07 -05:00
Matthew Brown
6ee69e547f Do more to separate out processing steps 2017-01-06 01:07:11 -05:00
Matthew Brown
7609ca02c0 Fix #32 by evaluating all class references in files lazily 2017-01-04 23:42:58 -05:00
Matthew Brown
30c910109c Fix inherited reflected properties/methods 2017-01-01 19:50:29 -05:00
Matthew Brown
883ca6a5db Fix #30 by consolidating properties into single storage array 2017-01-01 19:09:17 -05:00
Matthew Brown
0b3b3f01f3 Fix support for traits returning self 2016-12-31 11:49:04 -05:00
Matthew Brown
e972f4106c Remove erroneous array index 2016-12-30 20:19:40 -05:00
Matthew Brown
77dacf23e6 Remove var_dump 2016-12-30 20:07:12 -05:00
Matthew Brown
b068bd7858 Fix many bugs 2016-12-30 20:05:32 -05:00
Matthew Brown
4a10bdbc60 Fix suppressed warnings in tests 2016-12-30 19:36:35 -05:00
Matthew Brown
b529fa4877 Move static method arrays into MethodStorage classes 2016-12-30 15:53:35 -05:00
Matthew Brown
92fe58b97c Shift storage from static arrays to dedicated ClassLikeStorage objects 2016-12-30 12:41:14 -05:00
Matthew Brown
3e78405836 # This is a combination of 4 commits.
# The first commit's message is:
Make cofig schema more relaxed about ordering

# This is the 2nd commit message:

Add tests for awkward case

# This is the 3rd commit message:

Fix static calls to class methods within traits

# This is the 4th commit message:

Repopulate fewer arrays
2016-12-30 01:50:33 -05:00
Matthew Brown
641ffc09c9 Add NullOperand issue for easy ignoring 2016-12-29 00:32:12 -05:00
Matthew Brown
ed03104ca8 Fix overridden method interface checks 2016-12-28 21:37:24 -05:00
Matthew Brown
c1e1c0ae85 Check trait methods against interfaces 2016-12-28 20:33:26 -05:00
Matthew Brown
fa1da90fbe Only warn about unimplemented interface methods for non-abstract classes 2016-12-28 16:46:30 -05:00
Matthew Brown
74727c9564 Prevent value from breaking outside of scope 2016-12-26 11:39:50 +00:00
Matthew Brown
1007d1682c Fix mixed operand issues 2016-12-24 18:29:11 +00:00
Matthew Brown
c55870e26c Allow generic TypeChecker::isContainedBy checks 2016-12-24 18:28:43 +00:00
Matthew Brown
9746c8972f Fix MixedAssignment errors 2016-12-17 00:48:31 -05:00
Matthew Brown
972e3b5c6e Fix failure to warn when class does not implement all interface methods 2016-12-16 22:15:31 -05:00
Matt Brown
d012510a41 Fix some mixed assignment issues 2016-12-16 19:22:30 -05:00
Matt Brown
6755c8724a Add tests for M* issues, fixing bugs along the way 2016-12-16 18:56:23 -05:00
Matt Brown
2cfbefee08 Avoid doubling-up values 2016-12-14 19:26:26 -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
a5195b2571 Add JSON output format 2016-12-07 22:38:57 -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
638fdad3ad Add support for PHP 7.1 iterable pseudo-type 2016-12-04 21:04:25 -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
7cb6891a0b Add support for class constant visibility 2016-12-04 01:44:33 -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
55a3ffa773 Add missing return types 2016-11-20 23:45:10 -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
4a66dad2ac Improve interface inheritance 2016-11-20 11:51:19 -05:00
Matthew Brown
38daca5edd Fix Psalm errors in Psalm 2016-11-13 11:24:46 -05:00
Matthew Brown
8dfca6cce2 Add dummy --update-docblocks option 2016-11-12 18:51:48 -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
8d0a8ab055 Rely on call map more 2016-11-06 23:30:14 -05: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
c5591adf10 Add support for global in functions and mixed inferred return errors 2016-11-05 17:54:34 -04:00
Matthew Brown
299bc45319 Fix trait inheritance diff 2016-11-04 20:49:04 -04:00
Jon Ursenbach
917ee41461 Fixing some code styling issues. 2016-11-04 20:10:59 -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
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
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
95f5a4603a Add property for poorly-reflected builtin classes 2016-10-27 16:05:27 -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
4b65f92cb9 Fix #29 - allow interface extension 2016-10-24 18:49:07 -04:00
Matthew Brown
6d8e722a77 Add support for anonymous classes 2016-10-20 20:54:17 -04:00
Matthew Brown
0100ca2b8c Add better cache clear 2016-10-20 18:12:13 -04:00
Matthew Brown
b2a5081163 Add checks for method signature mismatch 2016-10-15 18:01:04 -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
cd69b0e5d6 Allow static property gets/sets 2016-10-13 18:27:23 -04:00
Matthew Brown
4c4b6e9902 Add docblocks where relevant 2016-10-12 01:38:29 -04:00
Matthew Brown
5292467db0 Add @todo issues and fix errors in StatementsChecker 2016-10-09 17:54:58 -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
49baa62224 Fix doblocks and invalid refs 2016-10-03 11:38:59 -04:00
Matthew Brown
79d7a87539 Ignore classes checked in class_exists 2016-10-02 13:05:49 -04:00
Matthew Brown
55fc146c57 Fix possible reference error if interface name is bad 2016-09-15 16:30:18 -04:00
Matthew Brown
6a9bcea901 Improve typing of properties 2016-09-12 11:32:44 -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
8c5adf477a Add support for key/value array typing 2016-09-09 16:21:49 -04:00
Matthew Brown
99649f2f09 Fix reference errors 2016-09-01 00:07:29 -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
093c5447ae Avoid unnecessary interface casing errors 2016-08-22 16:41:45 -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
374c045ff6 Allow case-invariant function names 2016-08-15 13:37:21 -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
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
8ba4f5141c Simplify class registration 2016-08-14 12:06:53 -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