1--TEST--
2Modification of typed property during assignment must not leak
3--FILE--
4<?php
5
6class A {
7	public string $prop = "";
8}
9
10class B {
11	public function __toString() {
12		global $a;
13		$a->prop = "dont ";
14		$a->prop .= "leak ";
15		$a->prop .= "me!";
16		return "test";
17	}
18}
19
20$a = new A;
21$a->prop = new B;
22var_dump($a);
23
24$a = new A;
25$prop = &$a->prop;
26$a->prop = new B;
27var_dump($a);
28
29?>
30--EXPECTF--
31object(A)#1 (1) {
32  ["prop"]=>
33  string(4) "test"
34}
35object(A)#%d (1) {
36  ["prop"]=>
37  &string(4) "test"
38}
39