3 // The test proves that it is safe to allow the 'this' type as a public
4 // property. Attempting to assign to a property of type 'this' will fail
5 // if they are not the same expression dependent type.
7 public function __construct(public this
$x) {}
9 public function test(C
$c1, C
$c2, this
$static): void
{
10 // This works because both are known to be of type <static>
11 $static->x
= $this->x
;
15 // But since we don't know if $c1 and $c2 refer to the same type this is an