@@ -1404,16 +1404,6 @@ static void do_inherit_class_constant(zend_string *name, zend_class_constant *pa
1404
1404
1405
1405
if (zv != NULL ) {
1406
1406
c = (zend_class_constant * )Z_PTR_P (zv );
1407
-
1408
- if (UNEXPECTED ((ZEND_CLASS_CONST_FLAGS (c ) & ZEND_ACC_PPP_MASK ) > (ZEND_CLASS_CONST_FLAGS (parent_const ) & ZEND_ACC_PPP_MASK ))) {
1409
- zend_error_noreturn (E_COMPILE_ERROR , "Access level to %s::%s must be %s (as in class %s)%s" ,
1410
- ZSTR_VAL (ce -> name ), ZSTR_VAL (name ),
1411
- zend_visibility_string (ZEND_CLASS_CONST_FLAGS (parent_const )),
1412
- ZSTR_VAL (parent_const -> ce -> name ),
1413
- (ZEND_CLASS_CONST_FLAGS (parent_const ) & ZEND_ACC_PUBLIC ) ? "" : " or weaker"
1414
- );
1415
- }
1416
-
1417
1407
bool inherit = do_inherit_constant_check (ce , parent_const , name );
1418
1408
ZEND_ASSERT (!inherit );
1419
1409
} else if (!(ZEND_CLASS_CONST_FLAGS (parent_const ) & ZEND_ACC_PRIVATE )) {
@@ -1734,6 +1724,15 @@ static bool do_inherit_constant_check(
1734
1724
ZSTR_VAL (parent_constant -> ce -> name ), ZSTR_VAL (name ));
1735
1725
}
1736
1726
1727
+ if (UNEXPECTED ((ZEND_CLASS_CONST_FLAGS (child_constant ) & ZEND_ACC_PPP_MASK ) > (ZEND_CLASS_CONST_FLAGS (parent_constant ) & ZEND_ACC_PPP_MASK ))) {
1728
+ zend_error_noreturn (E_COMPILE_ERROR , "Access level to %s::%s must be %s (as in %s %s)%s" ,
1729
+ ZSTR_VAL (ce -> name ), ZSTR_VAL (name ),
1730
+ zend_visibility_string (ZEND_CLASS_CONST_FLAGS (parent_constant )),
1731
+ zend_get_object_type (parent_constant -> ce ),
1732
+ ZSTR_VAL (parent_constant -> ce -> name ),
1733
+ (ZEND_CLASS_CONST_FLAGS (parent_constant ) & ZEND_ACC_PUBLIC ) ? "" : " or weaker"
1734
+ );
1735
+ }
1737
1736
1738
1737
if (!(ZEND_CLASS_CONST_FLAGS (parent_constant ) & ZEND_ACC_PRIVATE ) && UNEXPECTED (ZEND_TYPE_IS_SET (parent_constant -> type ))) {
1739
1738
inheritance_status status = class_constant_types_compatible (parent_constant , child_constant );
0 commit comments