bug75079.phpt   [plain text]


--TEST--
Bug #75079: self keyword leads to incorrectly generated TypeError when in closure in trait
--FILE--
<?php

trait Foo
{
    public function selfDo(self ...$Selfs)
    {
        array_map(
            function (self $Self) : self
            {
                return $Self;
            },
            $Selfs
        );
    }
}

class Bar
{
    use Foo;
}

class Baz
{
    use Foo;
}

$Bar = new Bar;
$Baz = new Baz;

$Bar->selfDo($Bar, $Bar);
$Baz->selfDo($Baz, $Baz);

?>
===DONE===
--EXPECT--
===DONE===