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
dbc0e6dfcb
Use arrays instead of strings for assertions
2018-05-12 19:38:43 -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
313a010355
Add workaround for Closure::__invoke
2018-05-12 13:02:53 -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
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
5c0f4a999c
Move a bunch of classes to better places
2018-05-11 18:35:02 -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
64b8603ee4
Remove further ??
2018-05-11 17:57:18 -04:00
Matt Brown
87a11bd86a
Remove PHP7-only language
2018-05-11 17:34:10 -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
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
31121cfc6d
Fix substr return in Union::__toString
2018-05-09 01:13:25 -04:00
Jay Klehr
242f46ac35
Updating stubs for several string functions ( #727 )
2018-05-09 00:40:06 -04:00
Matthew Brown
b4c0ffbe9d
Also match substr_replace
2018-05-09 00:39:45 -04:00
Matthew Brown
8149573754
Treat str_ireplace like str_replace
2018-05-09 00:34:44 -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
Jay Klehr
21c1f54af2
Updating zlib function stubs to match php.net docs ( #725 )
2018-05-08 22:14:11 -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
53ff05783c
Clean up code slightly
2018-05-08 17:43:26 -04:00
Matt Brown
4f678f5f99
Fix bad comparisons
2018-05-08 17:42:02 -04:00
Matt Brown
03ea65cff8
Don’t complain about false values on properties when we don’t care
2018-05-08 16:57:16 -04:00
Matt Brown
bc17d23788
Fix mixed empty checks
2018-05-08 16:34:08 -04:00
Bruce Weirdan
2afe364ee0
simplexml callmap update ( #723 )
...
* simplexml callmap update
fixes vimeo/psalm#722 and includes a number of manual updates to
simplexml function/method signatures (based on php.net docs)
* minor fixes
- s/qname/name/
- explicit void return type for `SimpleXMLElement::addAttribute()`
2018-05-08 13:50:32 -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
c6ed1b0458
Fix bad offset
2018-05-07 15:47:04 -04:00
Matt Brown
c0729a02cd
Fix remaining issues with logic checks
2018-05-07 14:52:45 -04:00
Matthew Brown
61aeea6375
Fix whole bunches of things
2018-05-07 01:26:06 -04:00
Matthew Brown
3b9b4a8a6f
Improve binary op function layout
2018-05-06 12:11:40 -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
8d8fdad924
Always set array offset type
2018-05-05 17:50:19 -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
Matt Brown
ae49558de6
Ignore MissingConstructor a little less
2018-05-03 11:38:27 -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
acacde173e
Fix highlight_string return type default
2018-04-30 01:49:55 -04:00
Matthew Brown
59bbf6f896
Allow Exception::getPrevious to return null
2018-04-30 00:44:43 -04:00
Matthew Brown
6ad2184b7e
Improve highlight_string/highlight_file signatures
2018-04-30 00:31:27 -04:00
Matthew Brown
1946bc0085
Allow resource to be cast to string
2018-04-30 00:19:35 -04:00
Matthew Brown
99da371ac4
Move memoisation after callmap branch
2018-04-28 13:49:27 -04:00
Matthew Brown
496256c2a5
Make memoisation more universal
2018-04-28 13:49:21 -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
Matt Brown
4507962883
Fix possibly undefined issue
2018-04-25 14:45:51 -04:00
Matt Brown
8ec34ed4ed
Only cache effects hashes when there’s no change
2018-04-25 14:33:39 -04:00
Matt Brown
0c24c0cb20
Remove unused code
2018-04-25 13:12:42 -04:00
Matt Brown
a409b3c32a
Remove unnecessary echo
2018-04-25 11:53:10 -04:00
Matt Brown
9a1674bd0e
Remove checker cache optimisation (v2 only)
2018-04-25 11:52:24 -04:00
Matt Brown
d09d547718
Trigger InvalidDocblock when @return missing type
2018-04-25 11:18:05 -04:00
Matt Brown
37620ce2e5
Bump memory limit
2018-04-25 10:33:15 -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
19ccdbc08b
Remove unnecessary foreach
2018-04-24 21:15:33 -04:00
Matthew Brown
3e7e1b3020
Fix #694 - remove descendent vars when possibly reassigning
2018-04-24 21:02:07 -04:00
Matthew Brown
21871bd8d4
Remove PHP 5 dead code cc @TysonAndre
2018-04-24 07:08:14 -04:00
Matthew Brown
09082ddf52
Fix #695 - fix PHP parser cache version
2018-04-24 07:07:04 -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