Brown
e7db21fd44
Fix type method
2020-05-15 16:23:50 -04:00
Brown
111303d913
Add non-empty-lowercase-string type
2020-05-15 10:18:05 -04:00
Brown
006c6e09f1
Add more details to type alias creation
2020-05-14 00:41:50 -04:00
Brown
2327a0db6b
Add TTypeAlias object with a creation path
2020-05-13 19:49:03 -04:00
Brown
813302206a
Improve rendering of tuples
2020-05-11 09:08:53 -04:00
Brown
8f2f2617d4
Improve refactor
2020-05-10 22:45:01 -04:00
Brown
5f4d162dd5
Break out type expander into separate class
2020-05-10 22:39:18 -04:00
Brown
3e16aec33c
Remap generic template params where necessary
...
Fixes #3325
2020-05-08 22:55:18 -04:00
Brown
63c190ff83
Fix #3257 - refine as type and clone where necessary
2020-04-28 22:26:54 -04:00
Brown
f91e94b64e
Make sure to remember correct positions of @var references
2020-04-27 00:05:20 -04:00
Brown
5e2af1d7f6
Fix #1518 - add escaping of object-like keys
2020-04-26 17:36:02 -04:00
Brown
3fa07e1a7b
Fix style
2020-04-19 13:10:20 -04:00
Brown
bb46c30e38
Fix #3191 - don’t generate complex assertion from class-string
2020-04-19 12:53:50 -04:00
Brown
8d29b27204
Allow assigning null to template with null potential
2020-04-18 15:34:14 -04:00
Brown
fbe0669921
Change evaluation order of conditionals
2020-04-14 21:07:16 -04:00
Brown
d470903722
Make Algebra::negateFormula a little more safe
2020-04-13 08:47:11 -04:00
Brown
a25610cefd
Fix #3133 - prevent crash when analysing isset
2020-04-13 08:34:38 -04:00
Brown
5bc9b095d1
Allow memoisation of ArrayAccess::offsetGet
2020-04-12 14:43:12 -04:00
Brown
547efcc022
Prevent ArrayAccess on object from being memoised
2020-04-12 14:00:12 -04:00
Brown
9d2957d339
Fix a few more edge-cases
2020-04-12 01:26:11 -04:00
Brown
db7447abd7
Make array coercion-to--mixed rules a little more lenient
2020-04-10 16:21:48 -04:00
Brown
bd2104c5ba
Merge with mixed in nested arrays
2020-04-09 09:27:21 -04:00
Brown
d868710b2b
Fix handling of built arrays
2020-04-08 16:11:11 -04:00
Brown
b2e010b431
Fix #3102 - identify issues with possibly-mixed output
2020-04-08 14:07:09 -04:00
Brown
067104e170
Fix #3084 - keep track of upper and lower bounds of inferred template types
2020-04-07 00:13:56 -04:00
Brown
387bc02e71
Fix #3082 - merge intersection types when replacing template types
2020-04-06 10:19:36 -04:00
Matthew Brown
4fe36a21a4
Use array_pop, not array_shift, because it’s a bit faster
2020-03-29 19:47:40 -04:00
Matthew Brown
1b88316c51
Convert method from recursive to inline
2020-03-29 19:42:22 -04:00
Matthew Brown
d84c5db7ae
Prevent complexity explosion a little earlier
2020-03-29 17:12:10 -04:00
Matthew Brown
194f02507d
Allow conditional types to reference class constants
2020-03-29 13:37:37 -04:00
Brown
ae31ec6805
Fix resolution of get_called_class
2020-03-27 09:51:53 -04:00
Matthew Brown
f94ab22a5f
Be better about strict inference
2020-03-25 09:18:49 -04:00
Brown
ec34a16291
Warn about invalid static returns
2020-03-24 18:00:20 -04:00
Brown
25bd2ed5fb
Fix #3010 - prevent false-negative after calling isset on possibly-false array
2020-03-24 12:01:39 -04:00
Matthew Brown
6058725256
Add prototype for conditional return type
2020-03-22 10:44:48 -04:00
Matthew Brown
43189b3d55
Allow types to be traversed
2020-03-14 23:54:51 -04:00
Matthew Brown
0aca01faea
Improve fix to #2805
2020-03-14 01:09:12 -04:00
leightonthomas
60fb3924bc
Fix #2914 - falsable functions who only expect true now produce errors
2020-03-09 14:25:18 -04:00
Brown
3c416482ec
Fix #2932 - don’t crash when trying to expand callable object-like array
2020-03-09 10:56:37 -04:00
Matthew Brown
f44c3488eb
Keep track of which arg a given template was assigned from
...
Fixes #2900 - We only care about the depth of a templated match when templating from a particular argument. The next argument should essentially start afresh
2020-03-01 12:27:18 -05:00
Matthew Brown
e0d555e203
Allow function names to passed in as strings for callable template resolution
2020-02-29 15:43:45 -05:00
Matthew Brown
1f19aed31b
Fix support for replacing mocked types in own classes
2020-02-27 21:36:03 -05:00
Brown
748abaf02a
Add params required for 7.1
2020-02-27 18:56:33 -05:00
Brown
35c1670602
Fix #2875 - treat intersections more similarly than before
2020-02-27 18:42:15 -05:00
Matthew Brown
746f8d4973
Prevent returning named object where template return assumed
2020-02-24 23:14:16 -05:00
Matthew Brown
3cc4c2b37e
Fix #2721 - only warn about deprecated classes exactly where they are used
2020-02-22 01:12:19 -05:00
Matthew Brown
d8b6467b1a
Fix #2852 - no duplicatearraykey warning for non string-keyed arrays
2020-02-21 01:27:42 -05:00
Matthew Brown
9bdca3c706
Forbid array<mixed, ...>
2020-02-21 01:26:51 -05:00
Brown
9230b425e7
Ors can still be created directly from conditions
2020-02-18 12:12:34 -05:00
Matthew Brown
653353709a
Use MethodIdentifier object instead of string
2020-02-14 20:54:26 -05:00