@@ -1390,8 +1390,14 @@ static zend_bool zend_try_compile_const_expr_resolve_class_name(zval *zv, zend_a
1390
1390
return 1 ;
1391
1391
}
1392
1392
return 0 ;
1393
- case ZEND_FETCH_CLASS_STATIC :
1394
1393
case ZEND_FETCH_CLASS_PARENT :
1394
+ if (CG (active_class_entry ) && CG (active_class_entry )-> parent_name
1395
+ && zend_is_scope_known ()) {
1396
+ ZVAL_STR_COPY (zv , CG (active_class_entry )-> parent_name );
1397
+ return 1 ;
1398
+ }
1399
+ return 0 ;
1400
+ case ZEND_FETCH_CLASS_STATIC :
1395
1401
return 0 ;
1396
1402
case ZEND_FETCH_CLASS_DEFAULT :
1397
1403
ZVAL_STR (zv , zend_resolve_class_name_ast (class_ast ));
@@ -7722,38 +7728,6 @@ void zend_compile_class_name(znode *result, zend_ast *ast) /* {{{ */
7722
7728
}
7723
7729
/* }}} */
7724
7730
7725
- void zend_compile_resolve_class_name (znode * result , zend_ast * ast ) /* {{{ */
7726
- {
7727
- zend_ast * name_ast = ast -> child [0 ];
7728
- uint32_t fetch_type = zend_get_class_fetch_type (zend_ast_get_str (name_ast ));
7729
- zend_ensure_valid_class_fetch_type (fetch_type );
7730
-
7731
- switch (fetch_type ) {
7732
- case ZEND_FETCH_CLASS_SELF :
7733
- if (CG (active_class_entry ) && zend_is_scope_known ()) {
7734
- result -> op_type = IS_CONST ;
7735
- ZVAL_STR_COPY (& result -> u .constant , CG (active_class_entry )-> name );
7736
- } else {
7737
- zend_op * opline = zend_emit_op_tmp (result , ZEND_FETCH_CLASS_NAME , NULL , NULL );
7738
- opline -> op1 .num = fetch_type ;
7739
- }
7740
- break ;
7741
- case ZEND_FETCH_CLASS_STATIC :
7742
- case ZEND_FETCH_CLASS_PARENT :
7743
- {
7744
- zend_op * opline = zend_emit_op_tmp (result , ZEND_FETCH_CLASS_NAME , NULL , NULL );
7745
- opline -> op1 .num = fetch_type ;
7746
- }
7747
- break ;
7748
- case ZEND_FETCH_CLASS_DEFAULT :
7749
- result -> op_type = IS_CONST ;
7750
- ZVAL_STR (& result -> u .constant , zend_resolve_class_name_ast (name_ast ));
7751
- break ;
7752
- EMPTY_SWITCH_DEFAULT_CASE ()
7753
- }
7754
- }
7755
- /* }}} */
7756
-
7757
7731
static zend_op * zend_compile_rope_add (znode * result , uint32_t num , znode * elem_node ) /* {{{ */
7758
7732
{
7759
7733
zend_op * opline = get_next_op ();
0 commit comments