History log of /PHP-8.1/ext/opcache/tests/opt/verify_return_type.phpt (Results 1 – 7 of 7)
Revision Date Author Comments
# 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 ...