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
a524ca8184
Suppress more notices
2016-12-30 20:39:12 -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
bdc39b8bd7
Fix single-file namespaced trait lookups
2016-12-30 19:23:26 -05:00
Matthew Brown
f515327f16
Fix file_name/file_path mixup
2016-12-30 19:06:45 -05:00
Matthew Brown
bc01169910
Fix debug end results
2016-12-30 18:28:43 -05:00
Matthew Brown
c65a0bf181
Move function static arrays into FileStorage
2016-12-30 18:08:07 -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
21816723c7
Make config schema more relaxed about ordering and fix trait bugs
2016-12-30 01:51:29 -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
749735a3ec
Update config file API still further
2016-12-29 10:24:10 -05:00
Matthew Brown
641ffc09c9
Add NullOperand issue for easy ignoring
2016-12-29 00:32:12 -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
b796b5c8ee
Allow trait methods to be overwritten
2016-12-28 21:40:03 -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
c5622f1ed1
Fix nullref
2016-12-28 19:58:32 -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
fa1da90fbe
Only warn about unimplemented interface methods for non-abstract classes
2016-12-28 16:46:30 -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
ea30af8a5a
Move assertion checks into separate file
2016-12-28 15:52:44 -05:00
Matthew Brown
48151d0190
Fix repeated assertion after unreconcilable clause
2016-12-28 14:53:49 -05:00
Matthew Brown
4919252260
Fix leaking ref in SwitchChecker
2016-12-28 14:38:16 -05:00
Matthew Brown
6972c45c14
Remove vars from parent clauses when they are reconciled with vars
2016-12-28 14:20:16 -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
6b0537440f
Register all classes & interfaces declared in file before check
2016-12-28 13:10:58 -05:00
Matthew Brown
324b7b4801
Support old-style namespaced constructors
2016-12-27 01:06:05 +00:00
Matthew Brown
dac54c41ab
Fix array_filter with no second arg usage
2016-12-26 14:40:32 +00:00
Matthew Brown
74727c9564
Prevent value from breaking outside of scope
2016-12-26 11:39:50 +00: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
8ad3ee4f53
Fix for fix
2016-12-25 01:35:13 +00:00
Matthew Brown
6a19aa63d2
Fix array_filter return type
2016-12-25 01:33:14 +00:00
Matthew Brown
513fcea101
Only assign type when not null
2016-12-25 01:12:26 +00:00
Matthew Brown
1fe0eee8e4
Add generic type coercion checks
2016-12-25 01:08:58 +00:00
Matthew Brown
1007d1682c
Fix mixed operand issues
2016-12-24 18:29:11 +00:00
Matthew Brown
c51d8f5220
Implement MixedOperand and InvalidOperand 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
dfa089f8df
Remove functionality that overlaps with phpcs FunctionCommentSniff
2016-12-23 22:48:36 +00:00
Matthew Brown
c41b0a4679
Tighten getParamsFromCallMap return type
2016-12-23 20:10:20 +00:00
Matthew Brown
1e96cea2c5
Check for nulls in parameter calls
2016-12-23 20:06:20 +00:00
Matthew Brown
e79dded17b
Fix #19 - InvalidDocblock errors have proper casing now
2016-12-19 22:02:00 +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
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
587e067567
Fix start time ref
2016-12-14 19:43:20 -05:00
Matt Brown
2cfbefee08
Avoid doubling-up values
2016-12-14 19:26:26 -05:00
Matt Brown
1d804cde66
Expand scope of property checks
2016-12-14 19:19:25 -05:00
Matt Brown
1b8abc8f17
Change NullReference issue to NullArgument when in method call
2016-12-14 12:54:34 -05:00
Matt Brown
154d023a9d
Add more robust config testing
2016-12-14 12:28:38 -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
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
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