Matthew Brown
7a02d300d6
Fix closure return type
2018-06-09 10:23:04 -04:00
Matthew Brown
6d4d0cf825
Fix #794 - use template types to restrict input
2018-06-09 10:14:18 -04:00
Matthew Brown
3a3c10d044
Improve handling of ? before type
2018-06-08 23:54:07 -04:00
Matthew Brown
a2b1838e23
Fix #803 - trait methods are evaluated correctly now
2018-06-08 20:06:05 -04:00
Matt Brown
29a971d40e
Fix #793 - make sure in_array informs literal types
2018-06-08 13:53:42 -04:00
Matt Brown
091fa53c72
Fix #798 - update magic property handling so it corresponds to PHP behaviour
2018-06-08 11:08:57 -04:00
Matt Brown
5819ba2b67
Fix #801 - bust assertions on assignment in || op
2018-06-07 15:04:22 -04:00
Matthew Brown
ea4dc9f2b8
Improve simplexml function inference
2018-06-05 23:42:02 -04:00
Matthew Brown
b5cb2b34a2
Fix #380 - don’t complain about legitimate (if archaic) self calls
2018-06-03 19:11:07 -04:00
Matt Brown
9bbe437f22
Fix issue with initially undefined variable in isset
2018-06-01 10:52:26 -04:00
Matthew Brown
ccc0c3f7d8
Fix negation of @psalm-assert-if-true/false
2018-05-31 22:46:22 -04:00
Matthew Brown
ee9fef050a
Add support for function checking plugins
2018-05-31 22:00:11 -04:00
Matthew Brown
dda9b4e48c
Fix #783 - allow ternarys to declare vars
2018-05-31 22:00:11 -04:00
Matt Brown
c31d963918
Allow constants in array offsets to be reasoned about
2018-05-31 16:49:01 -04:00
Matt Brown
ef992612d9
Fix $_SERVER var reconciliation
2018-05-31 15:30:39 -04:00
Matt Brown
2b697a34f8
Fix #786 - improve treatment of array isset checks
2018-05-31 15:07:03 -04:00
Matthew Brown
258e862c92
Only assign global vars to mixed if they don’t already exist
2018-05-31 09:02:57 -04:00
Matthew Brown
6b8e019a07
Bleed global variables declared in functions into main context
2018-05-30 22:09:46 -04:00
Matthew Brown
df89c8d7f2
Fix variadic check for included file functions
2018-05-30 21:01:50 -04:00
Matthew Brown
33a38113f3
Fix isset check
2018-05-30 20:54:03 -04:00
Matt Brown
eb10b15cfc
Improve reliability of elseif resolution
2018-05-30 18:56:44 -04:00
Matt Brown
549e90eca4
Treat required files the same as the files that require them, reporting-wise
2018-05-30 16:19:18 -04:00
Matt Brown
9227e61097
Fix #715 - no redundant condition for is_a(self::class,...) checks inside trait
2018-05-30 10:13:55 -04:00
Matthew Brown
1a4891c2e0
Fix #781 - prevent DuplicateArrayKey warning unnecessarily
2018-05-30 07:42:00 -04:00
Tyson Andre
39a1ecfd89
Remove unused variables ( #777 )
2018-05-29 10:08:56 +01:00
Matthew Brown
81ae1ca222
Fix #747 - allow Generator to replace Traversable in templated params
2018-05-28 22:26:43 +01:00
Matthew Brown
aac01f0670
Fix #766 and fix #765 - improve handling of ^ and xor
2018-05-28 20:31:20 +01:00
Matthew Brown
d98261507f
Fix #769 - add @psalm-assert and @psalm-assert-if-true annotation support
2018-05-28 20:07:42 +01:00
Matthew Brown
c217849737
Improve handling of projects that use include/require heavily
2018-05-22 23:39:01 -04:00
Matt Brown
aebbd473d9
Fix issues reconciling class-string params to actual types
2018-05-21 12:40:39 -04:00
Matthew Brown
3805893c5a
Improve error messages for literal types
2018-05-20 17:43:02 -04:00
Matthew Brown
a3e2b98f7c
Fix #743 - put InvalidArgument messages before PossiblyFalseArgument
2018-05-20 13:14:31 -04:00
Matthew Brown
cdcba6152d
Add ability to infer return type for method calls
2018-05-20 12:47:26 -04:00
Matthew Brown
5bd9ba6207
Make TClassString inherit from TLiteralString
2018-05-20 00:27:53 -04:00
Matthew Brown
34a39b895c
Support checks for array emptiness
2018-05-19 20:31:48 -04:00
Matthew Brown
ea465852e1
Move TypeCombination logic into its own class
2018-05-19 19:44:03 -04:00
Matthew Brown
09eb316a9c
Fix #755 - add support for inferring explicit true checks
2018-05-19 00:41:07 -04:00
Matthew Brown
b0733254bb
Use individual type objects for each string ( #757 )
...
* Experiment with individual types for each string
* Fix bunch of errors
* Fix a few more issues
* Fix a whole bunch of bugs
* Fix most remaining bugs
* Fix isset warnings
* Fix psalm errors in psalm
* Limit big string size
* Fix falsiness of ints
* Fix issue with type widening, allowing value set in nested if to be altered
* Don’t complain if type is mixed
* Add skipped-for-now test
* Add specific test to address issue
2018-05-18 11:02:50 -04:00
Matthew Brown
7dd86efa13
Add support for checking negative values
2018-05-12 18:46:47 -04:00
Matthew Brown
759516d01f
Fall back to $method_id if no defining method id found
2018-05-12 13:19:19 -04:00
Matthew Brown
4fe5ac87b6
Fix #712 - rewrite switch statement fallthroughs to understand logic better
2018-05-12 12:55:24 -04:00
Matthew Brown
8de8ce2ef4
Only assign new offset types when it’s safe to do so
2018-05-12 11:19:31 -04:00
Matthew Brown
5589aa89be
Fix #736 - only remove offset type when it doesn’t contain const array type
2018-05-12 11:17:41 -04:00
Matthew Brown
56a1f744a0
Fix #734 - allow DOMDocument::appendChild to mirror its first arg
2018-05-12 00:28:21 -04:00
Matthew Brown
1b8fd75a77
Suppress possibly-invalid key issue
2018-05-11 23:24:50 -04:00
Matthew Brown
b9b2a909a1
Fix #729 and prevent impossible const array access
2018-05-11 23:14:44 -04:00
Matt Brown
5c0f4a999c
Move a bunch of classes to better places
2018-05-11 18:35:02 -04:00
Matthew Brown
a33d52d935
Add support for referencedProperty error restrictions
2018-05-11 00:07:41 -04:00
Matt Brown
ad94761e15
Fix undefined property fetch redundant condition
2018-05-09 12:54:31 -04:00
Matthew Brown
318220a1bf
Fix #728 - remove statement return type when re-analysing
2018-05-09 09:30:23 -04:00