@@ -1569,6 +1569,16 @@ static ZEND_COLD void zend_ast_export_ns_name(smart_str *str, zend_ast *ast, int
1569
1569
zend_ast_export_ex (str , ast , priority , indent );
1570
1570
}
1571
1571
1572
+ static ZEND_COLD void zend_ast_export_class_name (smart_str * str , zend_ast * ast , int priority , int indent )
1573
+ {
1574
+ if (ast -> kind == ZEND_AST_CLASS_REF ) {
1575
+ ZEND_ASSERT (ast -> child [1 ] == NULL && "Generic params not supported yet" );
1576
+ zend_ast_export_ns_name (str , ast -> child [0 ], priority , indent );
1577
+ return ;
1578
+ }
1579
+ zend_ast_export_ex (str , ast , priority , indent );
1580
+ }
1581
+
1572
1582
static ZEND_COLD bool zend_ast_valid_var_char (char ch )
1573
1583
{
1574
1584
unsigned char c = (unsigned char )ch ;
@@ -1689,7 +1699,7 @@ static ZEND_COLD void zend_ast_export_name_list_ex(smart_str *str, zend_ast_list
1689
1699
if (i != 0 ) {
1690
1700
smart_str_appends (str , separator );
1691
1701
}
1692
- zend_ast_export_name (str , list -> child [i ], 0 , indent );
1702
+ zend_ast_export_ns_name (str , list -> child [i ], 0 , indent );
1693
1703
i ++ ;
1694
1704
}
1695
1705
}
@@ -2443,6 +2453,9 @@ static ZEND_COLD void zend_ast_export_ex(smart_str *str, zend_ast *ast, int prio
2443
2453
smart_str_appends (str , "::" );
2444
2454
zend_ast_export_name (str , ast -> child [1 ], 0 , indent );
2445
2455
break ;
2456
+ case ZEND_AST_CLASS_REF :
2457
+ ZEND_ASSERT (false && "TODO" );
2458
+ break ;
2446
2459
case ZEND_AST_CLASS_NAME :
2447
2460
if (ast -> child [0 ] == NULL ) {
2448
2461
/* The const expr representation stores the fetch type instead. */
@@ -2456,7 +2469,7 @@ static ZEND_COLD void zend_ast_export_ex(smart_str *str, zend_ast *ast, int prio
2456
2469
EMPTY_SWITCH_DEFAULT_CASE ()
2457
2470
}
2458
2471
} else {
2459
- zend_ast_export_ns_name (str , ast -> child [0 ], 0 , indent );
2472
+ zend_ast_export_class_name (str , ast -> child [0 ], 0 , indent );
2460
2473
}
2461
2474
smart_str_appends (str , "::class" );
2462
2475
break ;
@@ -2724,17 +2737,6 @@ static ZEND_COLD void zend_ast_export_ex(smart_str *str, zend_ast *ast, int prio
2724
2737
smart_str_appends (str , ": " );
2725
2738
ast = ast -> child [1 ];
2726
2739
goto tail_call ;
2727
- // TODO Export generic types
2728
- //case ZEND_AST_ASSOCIATED_TYPE:
2729
- // smart_str_appends(str, "type ");
2730
- // zend_ast_export_name(str, ast->child[0], 0, indent);
2731
- // if (ast->child[1]) {
2732
- // smart_str_appends(str, " : ");
2733
- // smart_str_appends(str, " : ");
2734
- // zend_ast_export_type(str, ast->child[1], indent);
2735
- // }
2736
- // smart_str_appendc(str, ';');
2737
- //break;
2738
2740
2739
2741
/* 3 child nodes */
2740
2742
case ZEND_AST_METHOD_CALL :
0 commit comments