Matthew Brown
b5c89084fc
Fix #851 - prevent null being removed in simplifyUnionType
2018-06-30 10:38:37 -04:00
Matt Brown
1ca5ef9bf7
Prevent duplicate classes in same file
2018-06-29 15:39:17 -04:00
Matt Brown
5f251a9d88
Allow intersection creation of interface then class
2018-06-28 18:13:06 -04:00
Matt Brown
c872f9179e
Remove mixed in @method param types
2018-06-28 17:39:25 -04:00
Matt Brown
2fc816a6e1
Fix repeated use of spread operator
2018-06-28 17:05:50 -04:00
Matt Brown
376c3c54c0
Add better checks for array_reduce
...
Fixes #846
2018-06-28 16:01:53 -04:00
Matthew Brown
ce1fda46a6
Fix hard-to-resolve constant values
2018-06-27 21:53:25 -04:00
Matt Brown
72b110af3f
Analyse RHS of instanceof expressions if expression
2018-06-27 10:07:40 -04:00
Matthew Brown
685ae67435
Fix #839 - check args for __call methods
2018-06-26 23:11:16 -04:00
Matthew Brown
5867ef45ff
Check method args even if the methods themselves cannot be checked
2018-06-25 19:38:15 -04:00
Matt Brown
ffda44c3ba
Fix #838 - check assertions, even outside conditionals
2018-06-25 18:02:05 -04:00
Matt Brown
f2d96eefe7
Fix #837 - detect issues with constants
2018-06-25 15:03:45 -04:00
Matthew Brown
e3ae1bf26f
Fix #15 - check for uncaught throws if config flag is set
2018-06-22 01:13:49 -04:00
Matt Brown
740279352e
Fix #830 - unpack template param args appropriately
2018-06-20 10:40:50 -04:00
Matthew Brown
4688cf7a92
Fix #831 - ignore falsable issues when getting callmap function params
2018-06-20 09:09:03 -04:00
Matt Brown
e10b2c0fd4
Fix #805 - allow dead code detection from methods just called internally
2018-06-19 16:14:51 -04:00
Matt Brown
11240eb193
Fix #826 allow better template replacements
2018-06-19 13:19:41 -04:00
Matt Brown
2be0f68d87
Add better checks on increment/decrement operators
2018-06-18 13:16:51 -04:00
Matt Brown
75e2be8aec
Fix #825 - ignore falsable issues on builtin *methods*
2018-06-18 10:07:05 -04:00
Matthew Brown
d4107f9e5e
Fix issue erasing nullability of boolean
2018-06-17 13:47:31 -04:00
Matthew Brown
2c245b0a08
Fix #823 - trigger redundant condition on impossible assertions
2018-06-17 13:20:37 -04:00
Matthew Brown
5ddd74e7d2
Catch unused foreach key when it’s already in scope
2018-06-17 00:52:32 -04:00
Matthew Brown
805bfa6f2d
Improve handling of switch statement assignments
2018-06-17 00:12:26 -04:00
Matthew Brown
89affb6c2c
Fix #822 - improve dead code detection on assignop expressions
2018-06-16 23:40:25 -04:00
Matthew Brown
fa51c39902
Improve dead code analysis of switch statements
2018-06-16 21:54:44 -04:00
Matthew Brown
f38da967dd
Fix a few issues with dead code detection
2018-06-16 21:14:19 -04:00
Matthew Brown
3670f066bb
Improve dead code detection
2018-06-16 20:01:41 -04:00
Matt Brown
3afd6053fd
Fix #819 - only add is_a assertion if static::class known
2018-06-15 10:51:30 -04:00
Matt Brown
47a40b2ffc
Fix #817 - allow methods named "global" in @method annotations
2018-06-14 17:20:02 -04:00
Matthew Brown
dc02ca8a7a
Fix - #816 - check we’re not just replacing a key with itself
2018-06-13 08:38:07 -04:00
Matt Brown
45a94af015
Fix #814 - remove literal types when removing base key
2018-06-12 11:19:35 -04:00
Matthew Brown
3891b08fc2
Fix #812 - deal with errant colon without crashing
2018-06-12 09:11:13 -04:00
Matt Brown
54893fdd55
Fix #808 - detect badly-placed ampersand early
2018-06-11 17:23:28 -04:00
Matt Brown
6542a0a784
Fix #810 - convert void array map return to null
2018-06-11 17:00:26 -04:00
Matt Brown
d35a3996fa
Fix #811 - improve handling of closure vars
2018-06-11 16:54:20 -04:00
Matthew Brown
3a2fa99969
Improve coverage of Reconciler and fix issues with float type comparison
2018-06-10 10:48:19 -04:00
Matthew Brown
82715a03ea
Improve test coverage of PropertyAssignmentChecker
2018-06-10 10:02:46 -04:00
Matthew Brown
d47980df13
Fix #416 - make sure trait methods are treated better by dead code detection
2018-06-09 23:10:42 -04:00
Matthew Brown
04cc920101
Fix #378 - improve handling of InvalidScope
2018-06-09 11:50:17 -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
068dc50b21
Fix #792 - allow docblock array form of variadic arg
2018-06-08 21:18:49 -04:00
Matthew Brown
92d31b49ad
Add extra test to cover full replacement
2018-06-08 20:07:31 -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
Matthew Brown
dfc32216b3
Fix #800 - treat array access offsets as mixed for reconciliation purposes
2018-06-08 09:31:21 -04:00
Matthew Brown
c1586ee347
Remove union types in magic methods for now
2018-06-07 19:56:28 -04:00
Matt Brown
5819ba2b67
Fix #801 - bust assertions on assignment in || op
2018-06-07 15:04:22 -04:00
Matt Brown
f030f4f40d
Allow docblock types to be merged with param default ones
2018-06-07 12:23:21 -04:00
Matthew Brown
fb3bc2661e
Fix #797 - check backup included file for defined function
2018-06-06 21:47:26 -04:00
Matt Brown
7c2ec06de8
Fix #795 - don’t use colons in generated anonymous class name
2018-06-06 15:32:03 -04:00
Matthew Brown
ea4dc9f2b8
Improve simplexml function inference
2018-06-05 23:42:02 -04:00
Matthew Brown
952bc9bdfd
Fix #84 - add pattern matching for files as well as directories
2018-06-05 20:15:18 -04:00
Matt Brown
51e7042022
Fix #789 - allow union types in @method params
2018-06-05 17:59:32 -04:00
Matthew Brown
a20bdaef45
Fix issue evaluating negated assertion
2018-06-03 20:24:23 -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
033bf3db16
Add IssetTest
2018-06-01 11:16:42 -04:00
Matthew Brown
55fdef250e
Add config to allow hoisting constants to the top of a file
2018-06-01 09:07:22 -04:00
Matthew Brown
dda9b4e48c
Fix #783 - allow ternarys to declare vars
2018-05-31 22:00:11 -04:00
Bruce Weirdan
6ecea35837
array_column return type inference ( #787 )
...
* Exception message typo fixed
* array_column return type inference
It takes a safe approach and only tries to be smart when array row type
is definite single shape
* cs fix
2018-05-31 21:14:06 -04:00
Matt Brown
c31d963918
Allow constants in array offsets to be reasoned about
2018-05-31 16:49:01 -04:00
Matt Brown
2b697a34f8
Fix #786 - improve treatment of array isset checks
2018-05-31 15:07:03 -04:00
Matthew Brown
72f65cf544
Fix global tests
2018-05-30 22:56:46 -04:00
Matthew Brown
6b8e019a07
Bleed global variables declared in functions into main context
2018-05-30 22:09:46 -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
1462020cd4
Properly analyse nested traits
2018-05-30 13:08:56 -04:00
Matt Brown
68dbe509a8
Fix #731 - report issues in files required by the source
2018-05-30 12:23:53 -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
Matt Brown
d55afc1fb1
Fix #779 - allow docblock to take on nullablility of typehint
2018-05-29 09:44:38 -04: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
62486c1adb
Fix #772 - allow closures to be defined on a single line
2018-05-25 18:42:39 +01:00
Matt Brown
086b6d0372
Seal the output of switch statments
2018-05-24 14:26:29 -04:00
Matt Brown
772fd496b7
Fix issue with array_key_exists not having an effect
2018-05-24 12:23:50 -04:00
Matthew Brown
c217849737
Improve handling of projects that use include/require heavily
2018-05-22 23:39:01 -04:00
Matt Brown
056194bde5
Fix issues that cause exceptions
2018-05-21 18:33:39 -04:00
Matt Brown
a30d229040
Fix issue with slashes after ? in type
2018-05-21 12:55:44 -04:00
Matt Brown
aebbd473d9
Fix issues reconciling class-string params to actual types
2018-05-21 12:40:39 -04:00
Matthew Brown
228337415b
Fix #761 - add support for class constants in enums
2018-05-21 00:46:56 -04:00
Matthew Brown
19ca1c9311
Suppress enum redundant conditions too
2018-05-20 18:58:34 -04:00
Matthew Brown
6250c2a14c
Fix #16 - add support for enums
2018-05-20 17:19:53 -04:00
Matthew Brown
7bc426268a
Only run test in PHP 7.1
2018-05-20 13:20:15 -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
Matt Brown
f2a70fef85
Fix #745 - give iterator_to_array back its type info
2018-05-18 18:10:10 -04:00
Matt Brown
c6aa396dea
Fix #741 - make sure closures are cloned properly
2018-05-18 17:47:40 -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
Matt Brown
3263b64301
Filter conditions better when encountering parent instanceof
2018-05-16 11:47:39 -04:00
Matt Brown
3119a1f68a
Allow resolution of class constants in const arrays
2018-05-14 17:39:08 -04:00
Matt Brown
a0281e5716
Improve clause eradication after ifs
2018-05-14 16:29:51 -04:00
Matt Brown
02d65b617b
Allow weak comparison between floats and ints
2018-05-14 12:02:06 -04:00
Matt Brown
58c68c355e
Allow weak equality between scalar types
2018-05-14 10:36:41 -04:00
Matthew Brown
05c3d1ab03
Improve reporting of duplicate case statements
2018-05-13 22:02:10 -04:00
Matthew Brown
c00fdd0fe3
Add better type inference for next and prev
...
Fixes #738
2018-05-13 19:20:05 -04:00
Matthew Brown
d46997b196
Make sure weak equality clauses don’t generate ParadoxicalCondition
2018-05-13 01:27:45 -04:00
Matthew Brown
9f28be415a
Fix reconciliation of ored types
2018-05-13 00:54:12 -04:00
Matthew Brown
69338abf7c
Allow rough equality assertions to be negated too
2018-05-12 20:08:22 -04:00
Matthew Brown
8e90334428
Allow assignment to numeric string via assertion
2018-05-12 19:56:17 -04:00
Matthew Brown
7dd86efa13
Add support for checking negative values
2018-05-12 18:46:47 -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
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
071558ec83
Fix #733 - DomNodeList implements ArrayAccess
2018-05-11 23:21:53 -04:00
Matthew Brown
b9b2a909a1
Fix #729 and prevent impossible const array access
2018-05-11 23:14:44 -04:00
Matt Brown
ef519ade72
Don’t adjust vars unless they’re passed by ref
2018-05-11 18:09:11 -04:00
Matt Brown
e9411eec76
Fix #730 - improve handling of templated closure params
2018-05-11 16:17:21 -04:00
Matt Brown
e3b6b9c273
Fix #724 - ignore any return types after return/throw/break/continue
2018-05-11 11:26:32 -04:00
Matthew Brown
a33d52d935
Add support for referencedProperty error restrictions
2018-05-11 00:07:41 -04:00
Matt Brown
92bb22ccca
Fix misfire with similarly named class constants
2018-05-10 14:12:50 -04:00
Matt Brown
444dd33118
Fix issue with undefined class constant keys
2018-05-10 13:01:55 -04:00
Matt Brown
afe3b936d4
Fix test failure
2018-05-09 15:49:22 -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
Matthew Brown
3380de16a2
Fix #709 - detect intersection template matches a bit better
2018-05-08 23:17:11 -04:00
Matthew Brown
77d4629896
Fix #714 - fix trait class constants
2018-05-08 22:32:57 -04:00
Matthew Brown
8f9b4098bc
Allow scalar to work with false
...
Fixes #718
2018-05-08 22:18:58 -04:00
Matthew Brown
bfa21e1108
Fix #721 by allowing @property annotations to be inheritable
2018-05-08 22:13:26 -04:00
Matthew Brown
2c0dd36035
Fix get type return types
2018-05-08 22:01:05 -04:00
Matthew Brown
5c39fb5ab1
Fix #716 - uss string inference to inform property names
2018-05-08 21:21:22 -04:00
Matthew Brown
c1440c11dc
Create separate file for magic properties
2018-05-08 20:25:39 -04:00
Matthew Brown
e50ef8bf03
Support __invoke return types
2018-05-08 19:49:25 -04:00
Tyson Andre
9a9f6d1856
Make the string concatenation of two known values into a known value ( #717 )
...
* Make the string concatenation of two known values into a known value
address review comments
* Add vim temporary files to .gitignore
2018-05-08 19:11:18 -04:00
Matt Brown
6e259bed03
Always evaluate closures, even when passed as mixed call args
2018-05-08 18:11:10 -04:00
Matt Brown
4f678f5f99
Fix bad comparisons
2018-05-08 17:42:02 -04:00
Matt Brown
bc17d23788
Fix mixed empty checks
2018-05-08 16:34:08 -04:00
Matthew Brown
2968882ac5
Add skipped test for bug
2018-05-08 00:57:18 -04:00
Matt Brown
0eda76b742
Fix strict reconciliation of bools
2018-05-07 18:09:40 -04:00
Matt Brown
3c9e42f884
Fix string assertion for ternaries
2018-05-07 17:52:18 -04:00
Matt Brown
f858924b60
Fix erroneous string matching after oring
2018-05-07 17:40:16 -04:00
Matt Brown
2299cecd23
Fix strict isset reconciliation
2018-05-07 17:15:27 -04:00
Matt Brown
6460d907f9
Improve array handling when offsets hard to define
2018-05-07 16:22:04 -04:00
Matt Brown
091d13b73f
Fix reconciliation of non-isset array vars
2018-05-07 16:00:56 -04:00
Matt Brown
c0729a02cd
Fix remaining issues with logic checks
2018-05-07 14:52:45 -04:00
Matt Brown
9d901db740
Add new array creation test with hard-to-key offsets
2018-05-07 14:34:25 -04:00
Matthew Brown
61aeea6375
Fix whole bunches of things
2018-05-07 01:26:06 -04:00
Matthew Brown
c31f787f7c
Convert DNF conditions to CNF
2018-05-06 12:11:40 -04:00
Matthew Brown
00838d19b5
Fix #534 - fix bug in type simplification
2018-05-06 12:05:55 -04:00
Matthew Brown
04bd492360
Fix erroneous scope resolution
2018-05-05 20:52:10 -04:00
Matthew Brown
21261172a8
Fix #713 - support offsets of known array types
2018-05-05 17:30:18 -04:00
Matthew Brown
0181fce46f
Fix #711 - concat ops contribute to loop map
2018-05-05 16:17:54 -04:00
Matthew Brown
85c69f1335
Make sure div operations return GMP too
2018-05-05 13:14:59 -04:00
Matthew Brown
c39af03a01
Allow GMP to be converted to string
2018-05-05 13:04:27 -04:00
Matthew Brown
3718bd5c61
Fix GMP arithmetic operations
2018-05-05 12:59:30 -04:00
Matthew Brown
1a4ddc7cdd
Support value types ( #707 )
...
* Add first idea
* Add initial count experiments
* Remove false positives
* Fix getId to support changes in conditionals
* Add better tests
* Strip types when not exists
* Fix array offsets
* More fixes
* Add class constant value types
* Clone constants everywhere
* Don’t complain unnecessarily
* Be more lenient with possibly invalid __sets
* Fix mixed issues
* Fix bug concerning orred string equality
* Remove unnecessary casts
2018-05-03 13:56:30 -04:00
Matt Brown
521237dc56
Fix #705 - don’t be so strict about undefined constants
2018-05-03 13:20:42 -04:00
Matt Brown
f2ff727649
Fix #706 - don’t namespace &
2018-05-03 13:15:16 -04:00
Matthew Brown
7ccc17cd98
Fix #324 - improve undefined array handling
2018-05-02 20:10:08 -04:00
Matthew Brown
fa95dede08
Fix #455 - allow unset to alter object-like arrays
2018-05-02 19:39:11 -04:00
Matt Brown
4513d24b7d
If there’s any overlap in types use PossiblyInvalidArgument
2018-05-01 14:27:05 -04:00
Matthew Brown
b36b50784d
Fix #703 - prevent undefined param offset
2018-04-30 22:18:41 -04:00
Matthew Brown
15e1003c37
Warn about impossible empty
2018-04-30 22:13:13 -04:00
Matt Brown
6e67030925
Fix #702 - prevent bad array to iterable cast
2018-04-30 13:17:09 -04:00
Matthew Brown
1946bc0085
Allow resource to be cast to string
2018-04-30 00:19:35 -04:00
Matthew Brown
da6209276f
Allow ability to memoize empty method calls based on config
2018-04-28 13:05:43 -04:00
Matt Brown
a0984cdaf1
Fix #697 - make missing objectlike fields an InvalidArgument
2018-04-27 17:10:57 -04:00
Matt Brown
6b3759a266
Fix #699 - prevent stubs from overriding known functions
2018-04-27 15:00:22 -04:00
Matthew Brown
048a32e7b6
Also check incremental overflows ref #691
2018-04-24 23:12:01 -04:00
Matthew Brown
35725267f9
Fix #691 - Allow comparisons to float for integer results
2018-04-24 23:02:20 -04:00
Matthew Brown
e2400920b9
Fix #693 - add @TysonAndre’s fix for atomic type checks
2018-04-24 21:27:31 -04:00
Matthew Brown
3e7e1b3020
Fix #694 - remove descendent vars when possibly reassigning
2018-04-24 21:02:07 -04:00
Matthew Brown
2a890aa6ce
Set parser version in tests
2018-04-24 07:19:25 -04:00
Matthew Brown
668cf2c0be
Fix #692 - remove text after the end of a method
2018-04-23 09:52:40 -04:00
Matthew Brown
2fabdf3353
Fix #314 - add a way to indicate @method list is comprehensive
2018-04-22 00:40:30 -04:00
Matthew Brown
1c7568e612
Fix #642 - allow @method to override existing methods
...
behind usePhpDocMethodsWithoutMagicCall="true"
2018-04-21 23:08:08 -04:00
Matthew Brown
8b50cdf315
Fix #632 - add support for @method annotations when method can’t be found
2018-04-21 22:44:54 -04:00
Matthew Brown
d02b148820
Fix #633 - support @method for magic __call methods
2018-04-21 22:13:10 -04:00
Matthew Brown
391eef0d9d
Remove line
2018-04-21 17:44:23 -04:00
Matthew Brown
85747d67a1
Fix issuses found in tests
2018-04-21 17:20:21 -04:00
rightfold
e6d9854883
Use example-based test abstraction
2018-04-21 16:04:03 -04:00
rightfold
5c908da55a
Check that __clone, __construct, __destruct signatures omit return types
...
PHP complains when you have a return type declared for these three methods.
2018-04-21 16:04:03 -04:00
Matt Brown
0882b9c0f9
Fix #687 - interpret unpacked arguments in array_push and array_unshift
2018-04-20 17:14:38 -04:00
Matt Brown
8b9753a235
Fix parsing of nested callable without args
2018-04-20 15:22:48 -04:00
Matt Brown
8d7c365e5f
Fix #679 - improve template param type checks
2018-04-20 10:52:23 -04:00
Matt Brown
1f3837d972
Fix #686 - allow undefined class inside class_exists call
2018-04-19 12:16:00 -04:00
Matt Brown
f3b579b06a
Fix #685 - ignore assignment in conditional
2018-04-19 11:58:51 -04:00
Matthew Brown
2b34c1d315
Add extra level 8 containing PHP autoload landmines
2018-04-19 01:03:28 -04:00
Matthew Brown
392f3194c0
Fix #684 - use getIterator return type for IteratorAggregate functions
2018-04-18 23:47:21 -04:00
Matt Brown
907f741c7b
Fix Psalm errors in TypeParseTest
2018-04-18 19:04:06 -04:00
Matt Brown
41e2d9ef58
Bind callable ): stronger than |
2018-04-18 19:00:08 -04:00
Matt Brown
aa3ea9c14c
Add a 7th level with even more permissive checks
2018-04-18 15:31:00 -04:00
Matt Brown
8c34c3d653
Support empty callable returning callable
2018-04-18 13:23:48 -04:00
Matt Brown
0b729de107
Make Throwable tests PHP7-only
2018-04-18 11:47:25 -04:00
Matt Brown
b9f55b7b8b
Fix #680 - add intersection to cloned type
2018-04-18 10:59:46 -04:00
Matt Brown
5b7d190640
Emit RedundantCondition when asserting two variables can never be equal
2018-04-17 15:39:09 -04:00
Matt Brown
5a2f6ff0e0
Fix #624 - change some innaccurate issue names
2018-04-17 14:07:02 -04:00
Matt Brown
6afaf5aae9
Make Psalm compatible with PHP Parser 4
2018-04-17 13:06:02 -04:00
Matt Brown
df5d369443
Fix #677 - handle get_class checks more accurately
2018-04-17 10:28:49 -04:00
Matt Brown
b28cc19fd2
Fix bitwise operations on strings
2018-04-16 18:19:18 -04:00
Matt Brown
55153f9542
Fix #676 - bitwise operators didn’t have int return type
2018-04-16 16:36:06 -04:00
Matt Brown
3cc549384f
Type explode more accurately
2018-04-16 16:03:04 -04:00
Matthew Brown
7345a44494
Fix callable parse issue
2018-04-15 18:16:31 -04:00