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