1--TEST--
2JIT ASSIGN_OBJ: Typed & not-typed property
3--INI--
4opcache.enable=1
5opcache.enable_cli=1
6opcache.file_update_protection=0
7opcache.jit_buffer_size=1M
8--FILE--
9<?php
10interface I {
11}
12abstract class C1 implements I {
13    public function __construct($x) {
14        $this->x = $x;
15    }
16}
17class C2 extends C1 {
18    public $x = 0;
19}
20class C3 extends C1 {
21    public int $x = 0;
22}
23$o = new C2("abcd");
24var_dump($o->x);
25$o = new C3(42);
26var_dump($o->x);
27$o = new C3("abcd");
28var_dump($o->x);
29?>
30--EXPECTF--
31string(4) "abcd"
32int(42)
33
34Fatal error: Uncaught TypeError: Cannot assign string to property C3::$x of type int in %sassign_obj_005.php:6
35Stack trace:
36#0 %sassign_obj_005.php(19): C1->__construct('abcd')
37#1 {main}
38  thrown in %sassign_obj_005.php on line 6
39