1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-11 16:59:45 +01:00
Commit Graph

986 Commits

Author SHA1 Message Date
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
846cc59d5f Add support for checking closure return types 2016-12-31 10:51:42 -05:00
Matthew Brown
49f7817a2a Emit specific issue when calling instance method with self:: 2016-12-31 09:20:10 -05:00
Matthew Brown
393297786d Fix issues with single-letter classes 2016-12-31 00:14:00 -05:00
Matthew Brown
ee4a3882a7 Check method defaults to see whether they match 2016-12-30 23:40: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
23a414a2b3 Fix test failures 2016-12-30 13:14:17 -05:00
Matthew Brown
8b5e066ba6 Add case-sensitive function names 2016-12-30 13:09:00 -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
90fee45a18 Add test to guarantee that config schema stays up-to-date 2016-12-29 22:31:52 -05:00
Matthew Brown
ca98efb630 Check specific reporting levels 2016-12-29 20:23:04 -05:00
Matthew Brown
685eaeb4fe Reimagine XML schema, fixes #21 2016-12-29 20:10:06 -05:00
Matthew Brown
b79ce904d2 Fix #23 - allow exclusion in projectFiles 2016-12-29 18:33:03 -05:00
Matthew Brown
749735a3ec Update config file API still further 2016-12-29 10:24:10 -05:00
Matthew Brown
ff466b7992 Change config API 2016-12-29 08:42:39 -05:00
Matthew Brown
18e7c65430 Emit more InvalidOperand issues 2016-12-29 00:14:06 -05:00
Matthew Brown
a91fc2d3dc Add pre-run step so all class declarations in a given file can be dealt with 2016-12-28 22:11:50 -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
2bf515be5f Check return types of functions in namespaces 2016-12-28 19:57:18 -05:00
Matthew Brown
b6455a2566 Improve how we disable clauses 2016-12-28 18:55:16 -05:00
Matthew Brown
63a75108f5 Evaluate more expressions up front 2016-12-28 17:04:03 -05:00
Matthew Brown
992e7ae256 Fix #1 - add in support for !==false-negating assertions in ifs 2016-12-28 16:39:05 -05:00
Matthew Brown
797875ba9a Fix #10 - allow negated assignments 2016-12-28 16:29:50 -05:00
Matthew Brown
48151d0190 Fix repeated assertion after unreconcilable clause 2016-12-28 14:53:49 -05:00
Matthew Brown
05834a0db3 Fix #13 by revamping how we treat type assertions in if statements and ternary expressions 2016-12-28 13:12:06 -05:00
Matthew Brown
b6eea4e812 Fix #20 - emit an issue when param is missing a type or param 2016-12-25 11:32:21 +00:00
Matthew Brown
1007d1682c Fix mixed operand issues 2016-12-24 18:29:11 +00:00
Matthew Brown
07c415d588 Add tests for upcoming functionality 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
dfa089f8df Remove functionality that overlaps with phpcs FunctionCommentSniff 2016-12-23 22:48:36 +00:00
Matthew Brown
9474412343 Add extra test to check good behaviour passes 2016-12-23 20:14:13 +00:00
Matthew Brown
5f332a5500 Suppress test issue 2016-12-20 17:29:52 +00:00
Matthew Brown
e79dded17b Fix #19 - InvalidDocblock errors have proper casing now 2016-12-19 22:02:00 +00:00
Matthew Brown
9a32b5fd40 Hide Mixed* issues under a totallyTyped config flag 2016-12-18 19:17:39 -05:00
Matthew Brown
52b3e1ba8c Simplify test config setup; 2016-12-18 19:00:32 -05:00
Matthew Brown
9746c8972f Fix MixedAssignment errors 2016-12-17 00:48:31 -05:00
Matthew Brown
d88bb4e135 Finish adding tests for all issues 2016-12-16 22:16:29 -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
6755c8724a Add tests for M* issues, fixing bugs along the way 2016-12-16 18:56:23 -05:00
Matt Brown
16e89a8c1c Fix #26 - Allow refinement via type intersection
Not just via explict subsets
2016-12-16 17:59:27 -05:00
Matthew Brown
dcec735d11 Fix generation of MixedArrayAccess issue 2016-12-15 01:28:36 -05:00
Matt Brown
a44dd4f6b0 Add more tests 2016-12-14 19:43:44 -05:00
Matt Brown
587e067567 Fix start time ref 2016-12-14 19:43:20 -05:00
Matt Brown
c4b1633d78 Add cache dir nulling back 2016-12-14 12:58:56 -05:00
Matt Brown
c91e457c28 Add psalm.xml support for checking tests 2016-12-14 12:55:23 -05:00
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
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
4c21a5af7c Add so many new tests 2016-12-11 23:41:11 -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
Matt Brown
e8c91bc748 Mark failing tests incomplete 2016-12-09 13:26:40 -05:00
Matt Brown
5077424844 Fix a bunch of tests to not emit issues on echo 2016-12-09 13:04:08 -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
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
55a060b53a Add support for closure checks 2016-12-07 14:13:39 -05:00
Matthew Brown
49334f8e46 Add bootstrap 2016-12-07 00:21:46 -05:00
Matthew Brown
565750aa77 Add Switch type test 2016-12-06 13:51:10 -05:00
Matthew Brown
638fdad3ad Add support for PHP 7.1 iterable pseudo-type 2016-12-04 21:04:25 -05:00
Matthew Brown
f0939952d4 Add extra array assignment tests 2016-12-04 19:33:42 -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
7cb6891a0b Add support for class constant visibility 2016-12-04 01:44:33 -05:00
Matthew Brown
d7c6e84a0d Add test for PHP 7.1 nullable types 2016-12-03 23:03:51 -05:00
Matthew Brown
ded2cb5460 Add (skipped) test for #1 2016-11-21 16:48:35 -05:00
Matthew Brown
0cb3b828b8 Add support for oldstyle constructors 2016-11-21 14:36:06 -05:00
Matthew Brown
6822f46a2c Add suppprt for PHP 7.0 grouped uses 2016-11-20 22:40:19 -05:00
Matthew Brown
df18ad27d2 Add lots of tests for use 2016-11-20 21:49:29 -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
2a9e138a14 Add failing array addition tests 2016-11-13 14:36:29 -05:00
Matthew Brown
3b1dfd0942 Fix issue combining generic and object-like 2016-11-13 11:54:40 -05:00
Matthew Brown
6d7dc41756 Update tests with spaces 2016-11-13 11:24:25 -05:00
Matthew Brown
8c64dfd7fb Add return types everywhere 2016-11-11 17:13:30 -05:00
Matthew Brown
5046caa240 Add some useful inheritance tests 2016-11-07 17:19:21 -05:00
Matthew Brown
7d6ac4719f Fix offset assignment creation 2016-11-05 20:17:22 -04:00
Matthew Brown
b3f3a20928 Correctly evaluate $this and self in property/return types 2016-11-05 18:31:09 -04:00
Matthew Brown
c5591adf10 Add support for global in functions and mixed inferred return errors 2016-11-05 17:54:34 -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
5cc5bd4ed4 Fix tests to all have property types 2016-11-01 14:32:19 -04:00
Matthew Brown
4d5b0abb74 Add explicit value tracking 2016-10-30 19:52:35 -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
b31ac4a862 Removed object-like type descriptor in favour of array{} syntax 2016-10-28 13:24:06 -04:00
Matthew Brown
3578db69fc Add interface inheritance test 2016-10-24 19:20:28 -04:00
Matthew Brown
ce95275878 Fix more Psalm bugs found by Psalm 2016-10-23 12:24:53 -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
d71d439e25 Closure basically implements callable 2016-10-20 18:05:28 -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
74abadf6c7 Add checkable return type for Generator 2016-10-20 11:31:39 -04:00
Matthew Brown
23529a6f70 Add more complicated yield test 2016-10-20 11:31:19 -04:00
Matthew Brown
8be174999e Add more failing PHP7.0 tests 2016-10-20 00:47:10 -04:00
Matthew Brown
518e8bcbaf Support PHP5.5 features (except yield, for now) 2016-10-20 00:13:35 -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
4b96a08871 Fix syntax error 2016-10-18 23:35:30 -04:00
Matthew Brown
5e1fc3c38b Add PHP 5.6 feature tests 2016-10-18 22:23:09 -04:00
Matthew Brown
cf7d2d1747 Add test for type hints 2016-10-18 22:02:38 -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
2fe46b08b4 Add additional array check 2016-10-15 13:11:08 -04:00
Matthew Brown
18a55e2854 Also inspect arrays from strings 2016-10-15 13:10:05 -04:00
Matthew Brown
c4648673bf Rename @suppress to @psalm-suppress 2016-10-11 14:17:55 -04:00
Matthew Brown
472e4df3cc Allow mixed to match function args 2016-10-10 22:49:43 -04:00
Matthew Brown
e14cadd32e Add tests for elseif reconciliation 2016-10-03 11:40:42 -04:00
Matthew Brown
c178e5c882 Add tests for nested assignment 2016-10-03 00:44:05 -04:00
Matthew Brown
8730c67d2a Fix tests 2016-10-02 22:01:01 -04:00
Matthew Brown
17d99b5fa7 Add ObjectLike combination tests 2016-10-02 18:59:58 -04:00
Matthew Brown
f3bedeb671 Add test for a336d6c 2016-10-01 22:47:50 -04:00
Matthew Brown
9f37dc8626 Check for arrayAccess erroneous vars 2016-09-22 13:45:47 -04:00
Matthew Brown
42c8923981 Fix isset assertions 2016-09-22 12:26:24 -04:00
Matthew Brown
f44eed1d8c Update tests to look for object-like types 2016-09-22 00:50:47 -04:00
Matthew Brown
5113ffefee Add a fully-parsable representation of object-like types 2016-09-22 00:31:07 -04:00
Matthew Brown
041f183d49 Add a bunch of new checks 2016-09-21 19:15:09 -04:00
Matthew Brown
93a5e6775d Add object-like type to represent cheating arrays 2016-09-20 21:45:49 -04:00
Matthew Brown
6da0b1cb87 Add even more tests 2016-09-15 14:21:51 -04:00
Matthew Brown
cb09a190ce Add more breaking tests 2016-09-13 00:18:41 -04:00
Matthew Brown
27b731a062 Add failing test 2016-09-12 19:44:46 -04:00
Matthew Brown
00065e73b9 Add extra tests for safety 2016-09-12 19:31:16 -04:00
Matthew Brown
cee7f18b11 Add extra test for type combinations 2016-09-12 00:03:37 -04:00
Matthew Brown
979639668d Fix array type in test 2016-09-12 00:03:15 -04:00
Matthew Brown
2e91b27b92 Add test for array assignment code 2016-09-12 00:02:50 -04:00
Matthew Brown
f455851f89 Fix bugs in array key checks 2016-09-09 18:36:35 -04:00
Matthew Brown
9bb0b18a62 Update tests to reflect precise array semantics 2016-09-09 16:38:32 -04:00
Matthew Brown
a441bef349 Add more tests for switch fallthrough 2016-08-30 00:04:54 -04:00
Matthew Brown
7e6d3b90ce Add more tests to identify regressions 2016-08-24 00:30:55 -04:00
Matthew Brown
72e90ddc49 Add more type tests 2016-08-23 20:56:18 -04:00
Matthew Brown
5f4ab230c3 Add more tests 2016-08-22 23:02:17 -04:00
Matthew Brown
cc09cb5c91 Add extra checks around static keywords 2016-08-18 16:29:07 -04:00
Matthew Brown
84b4e09873 Simplify clearCache calls 2016-08-15 11:01:50 -04:00
Matthew Brown
d559196c96 Fix reference errors 2016-08-14 13:13:53 -04:00
Matthew Brown
7d1a106fd5 Big file reorg with ClassLikeChecker as new ClassChecker 2016-08-13 14:20:46 -04:00
Matthew Brown
2164d2c9a8 Add a couple of extra tests for tricksy logic 2016-08-10 02:14:28 -04:00
Matthew Brown
f54b6a8347 Add test to catch edge case 2016-08-10 01:55:04 -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
df28d24803 Change name to Psalm 2016-07-25 18:37:44 -04:00
Matthew Brown
7b20c032b3 Test coolness 2016-07-25 18:31:03 -04:00
Matthew Brown
70462033c1 Add mo tests 2016-07-24 18:02:15 -04:00
Matthew Brown
ddd8f991a9 Fix Object test 2016-07-12 00:53:36 -04:00
Matthew Brown
ccc30163c2 Add assertive test 2016-07-07 18:10:01 -04:00
Matthew Brown
382fcb3a07 Add new tests for functionality 2016-06-29 18:15:51 -04:00
Matthew Brown
9662f88631 Fix erroneous recursion 2016-06-28 15:25:28 -04:00
Matthew Brown
5b182fecea Support absolute files 2016-06-28 14:28:45 -04:00
Matthew Brown
71eea36b9c Improve switch type analysis 2016-06-28 13:56:44 -04:00
Matthew Brown
e4c590d7b7 Fix tests by adding a config flag for throwing exceptions 2016-06-26 22:40:57 -04:00
Matthew Brown
26da9d7558 Add TryCatch return type test 2016-06-20 18:11:45 -04:00
Matthew Brown
50b65adb32 Add test for breaks in if 2016-06-20 16:55:12 -04:00
Matthew Brown
f60e23a7c7 Add separate scope tests file 2016-06-20 16:18:47 -04:00
Matthew Brown
953ba22a38 Add possiblyundefinedvariable tests 2016-06-20 12:38:47 -04:00
Matthew Brown
edd9a92d51 Dogfooding: fix codeinspector issues 2016-06-20 01:05:44 -04:00
Matthew Brown
5c1b7bb0bc Fix a few type inference bugs 2016-06-17 16:05:28 -04:00
Matthew Brown
32e18aa29e Redo a bunch of if statement checking logic 2016-06-16 18:52:12 -04:00
Matthew Brown
fb56e3b757 Change returnType to inferredType 2016-06-16 12:04:55 -04:00
Matthew Brown
ff92d207da Add failing test 2016-06-16 02:28:25 -04:00
Matthew Brown
218edb5bf4 Add numerous fixes 2016-06-16 01:19:52 -04:00
Matthew Brown
0c617f9519 Fix many many bugs 2016-06-15 20:16:40 -04:00
Matthew Brown
a17e1fb163 Create new system of storing types 2016-06-14 19:22:29 -04:00
Matthew Brown
82bca7a8b4 Do not negate types unnecessarily 2016-06-13 01:48:29 -04:00
Matthew Brown
46005ddd29 Read more from config and fix switch snafu 2016-06-10 14:47:44 -04:00
Matthew Brown
a30901be48 Add $this->var analysis and improve else semantics 2016-05-09 08:56:07 -04:00
Matthew Brown
cb59baec87 Improve type resolution 2016-04-30 14:14:22 -04:00
Matthew Brown
866727ec27 Add test for negation after break/continue 2016-04-26 18:18:05 -04:00
Matthew Brown
97c0f91afe Add proper namespaces 2016-04-21 12:02:21 +01:00
Matthew Brown
d2243c3317 Add sanity check tests 2016-04-12 16:12:38 -04:00
Matthew Brown
ff578f8468 Add support for square bracket array declarations is_array checks 2016-04-12 11:28:36 -04:00
Matthew Brown
283180115b Fix incorrect test & implementation 2016-04-04 16:33:26 -04:00
Matthew Brown
6ec754d21d Add redefined var scanning to switch statements 2016-04-04 14:29:02 -04:00
Matthew Brown
5c132274f4 Add support for $this->x vars 2016-04-04 01:21:28 -04:00
Matthew Brown
9032aa065a Fix variable redefinition 2016-04-04 00:17:19 -04:00
Matthew Brown
13e9923cd5 Fix ternary else check 2016-04-03 20:14:19 -04:00
Matthew Brown
b60213395b Add initial rudimentary tests 2016-04-03 19:47:06 -04:00