1--TEST--
2Test typed properties overflowing
3--SKIPIF--
4<?php if (PHP_INT_SIZE == 4) die("SKIP: 64 bit test"); ?>
5--FILE--
6<?php
7
8class Foo {
9	public static int $bar = PHP_INT_MAX;
10};
11
12try {
13	Foo::$bar++;
14} catch(TypeError $t) {
15	var_dump($t->getMessage());
16}
17
18var_dump(Foo::$bar);
19
20try {
21	Foo::$bar += 1;
22} catch(TypeError $t) {
23	var_dump($t->getMessage());
24}
25
26var_dump(Foo::$bar);
27
28try {
29	++Foo::$bar;
30} catch(TypeError $t) {
31	var_dump($t->getMessage());
32}
33
34var_dump(Foo::$bar);
35
36try {
37	Foo::$bar = Foo::$bar + 1;
38} catch(TypeError $t) {
39	var_dump($t->getMessage());
40}
41
42var_dump(Foo::$bar);
43
44?>
45--EXPECT--
46string(70) "Cannot increment property Foo::$bar of type int past its maximal value"
47int(9223372036854775807)
48string(48) "Typed property Foo::$bar must be int, float used"
49int(9223372036854775807)
50string(70) "Cannot increment property Foo::$bar of type int past its maximal value"
51int(9223372036854775807)
52string(48) "Typed property Foo::$bar must be int, float used"
53int(9223372036854775807)
54