1--TEST--
2Typed property on overloaded by-ref property
3--SKIPIF--
4<?php if (PHP_INT_SIZE == 4) die("SKIP: 64 bit test"); ?>
5--FILE--
6<?php
7
8$a = new class {
9	public int $foo = 1;
10
11	function &__get($x) {
12		return $this->foo;
13	}
14
15	function __set($x, $y) {
16		echo "set($y)\n";
17	}
18};
19
20$a->_ += 1;
21var_dump($a->foo);
22
23$a->_ .= "1";
24var_dump($a->foo);
25
26$a->_ .= "e50";
27var_dump($a->foo);
28
29$a->_--;
30var_dump($a->foo);
31
32--$a->_;
33var_dump($a->foo);
34
35$a->foo = PHP_INT_MAX;
36
37$a->_++;
38var_dump($a->foo);
39
40++$a->_;
41var_dump($a->foo);
42
43?>
44--EXPECT--
45set(2)
46int(1)
47set(11)
48int(1)
49set(1e50)
50int(1)
51set(0)
52int(1)
53set(0)
54int(1)
55set(9.2233720368548E+18)
56int(9223372036854775807)
57set(9.2233720368548E+18)
58int(9223372036854775807)
59