#
fd8dfc42 |
| 06-Oct-2021 |
Dmitry Stogov |
XFAIL: Return types cannot be inferred through prototypes
|
#
069a9fa5 |
| 05-Jul-2021 |
George Peter Banyard |
Pure Intersection types (#6799) Implement pure intersection types RFC RFC: https://wiki.php.net/rfc/pure-intersection-types Co-authored-by: Nikita Popov <nikic@php.net>
Pure Intersection types (#6799) Implement pure intersection types RFC RFC: https://wiki.php.net/rfc/pure-intersection-types Co-authored-by: Nikita Popov <nikic@php.net> Co-authored-by: Ilija Tovilo <ilutov@php.net>
show more ...
|
#
a30fab57 |
| 18-Jun-2021 |
Nikita Popov |
Make can_elide_return_type_check() more robust Rather than using def_info, check against the actual arg_info type. As it is stored as a type mask nowadays, this is not much harder, b
Make can_elide_return_type_check() more robust Rather than using def_info, check against the actual arg_info type. As it is stored as a type mask nowadays, this is not much harder, but more general and more robust as we don't need to deal with inaccurate cases.
show more ...
|
#
e9f783fc |
| 01-Apr-2021 |
Max Semenik |
Migrate skip checks to --EXTENSIONS--, p3 For rationale, see #6787 Extensions migrated in part 3: * ftp * gmp * iconv * opcache * shmop
|
#
6a5d6008 |
| 22-Mar-2021 |
Nikita Popov |
Support VERIFY_RETURN_TYPE elision with unused operand This handles the degenerate case where SCCP replaced the value in the RETURN opcode with a constant, but the VERIFY_RETURN is still
Support VERIFY_RETURN_TYPE elision with unused operand This handles the degenerate case where SCCP replaced the value in the RETURN opcode with a constant, but the VERIFY_RETURN is still there. We can still apply the same optimization, just don't need to adjust the use list in this case. The result is still sub-optimal in that a dead QM_ASSIGN is left behind.
show more ...
|
#
2d0e2733 |
| 18-Mar-2021 |
Nikita Popov |
Support prototypes in call graph Even if we don't know the exact method being called, include it in the call graph with the is_prototype flag. In particular, we can still make use of
Support prototypes in call graph Even if we don't know the exact method being called, include it in the call graph with the is_prototype flag. In particular, we can still make use of return types from prototype methods, as PHP 8 makes LSP violations a hard error. Most other places are adjusted to skip calls with !is_prototype. Maybe some of them would be fine, but ignoring them is conservative.
show more ...
|
#
dcac654f |
| 18-Mar-2021 |
Nikita Popov |
Allow inferring narrowed return type Even if an explicit return type is given, we might still infer a more narrow one based on return statements. We shouldn't pessimize this just bec
Allow inferring narrowed return type Even if an explicit return type is given, we might still infer a more narrow one based on return statements. We shouldn't pessimize this just because a type has been declared.
show more ...
|