TypePHP 编译器
https://swoole.com/aot/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
448 B
32 lines
448 B
--TEST--
|
|
Trait method with `parent` return type flattened into a subclass
|
|
--FILE--
|
|
<?php
|
|
|
|
class Base
|
|
{
|
|
}
|
|
|
|
trait TestTrait
|
|
{
|
|
public function who(): parent
|
|
{
|
|
return $this;
|
|
}
|
|
}
|
|
|
|
class Child extends Base
|
|
{
|
|
use TestTrait;
|
|
}
|
|
|
|
function main()
|
|
{
|
|
$c = new Child;
|
|
// The trait method's `parent` resolves to the consuming class's parent (Base).
|
|
$r = $c->who();
|
|
var_dump($r instanceof Child);
|
|
}
|
|
?>
|
|
--EXPECT--
|
|
bool(true)
|
|
|