@@ -1424,19 +1424,19 @@ ZEND_API void zend_do_inheritance_ex(zend_class_entry *ce, zend_class_entry *par
1424
1424
if (UNEXPECTED (ce -> ce_flags & ZEND_ACC_INTERFACE )) {
1425
1425
/* Interface can only inherit other interfaces */
1426
1426
if (UNEXPECTED (!(parent_ce -> ce_flags & ZEND_ACC_INTERFACE ))) {
1427
- zend_error_noreturn (E_COMPILE_ERROR , "Interface %s may not inherit from class (%s) " , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1427
+ zend_error_noreturn (E_COMPILE_ERROR , "Interface %s cannot extend class %s " , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1428
1428
}
1429
1429
} else if (UNEXPECTED (parent_ce -> ce_flags & (ZEND_ACC_INTERFACE |ZEND_ACC_TRAIT |ZEND_ACC_FINAL ))) {
1430
- /* Class declaration must not extend traits or interfaces */
1431
- if (parent_ce -> ce_flags & ZEND_ACC_INTERFACE ) {
1432
- zend_error_noreturn (E_COMPILE_ERROR , "Class %s cannot extend from interface %s" , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1433
- } else if (parent_ce -> ce_flags & ZEND_ACC_TRAIT ) {
1434
- zend_error_noreturn (E_COMPILE_ERROR , "Class %s cannot extend from trait %s" , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1435
- }
1436
-
1437
1430
/* Class must not extend a final class */
1438
1431
if (parent_ce -> ce_flags & ZEND_ACC_FINAL ) {
1439
- zend_error_noreturn (E_COMPILE_ERROR , "Class %s may not inherit from final class (%s)" , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1432
+ zend_error_noreturn (E_COMPILE_ERROR , "Class %s cannot extend final class %s" , ZSTR_VAL (ce -> name ), ZSTR_VAL (parent_ce -> name ));
1433
+ }
1434
+
1435
+ /* Class declaration must not extend traits or interfaces */
1436
+ if ((parent_ce -> ce_flags & ZEND_ACC_INTERFACE ) || (parent_ce -> ce_flags & ZEND_ACC_TRAIT )) {
1437
+ zend_error_noreturn (E_COMPILE_ERROR , "Class %s cannot extend %s %s" ,
1438
+ ZSTR_VAL (ce -> name ), parent_ce -> ce_flags & ZEND_ACC_INTERFACE ? "interface" : "trait" , ZSTR_VAL (parent_ce -> name )
1439
+ );
1440
1440
}
1441
1441
}
1442
1442
0 commit comments