@@ -6086,9 +6086,8 @@ static void zend_compile_match(znode *result, zend_ast *ast)
6086
6086
efree (jmp_end_opnums );
6087
6087
}
6088
6088
6089
- static void zend_compile_object_pattern (zend_ast * * ast_ptr )
6089
+ static void zend_compile_pattern_class_name (zend_ast * ast )
6090
6090
{
6091
- zend_ast * ast = * ast_ptr ;
6092
6091
zend_ast * class_name_ast = ast -> child [0 ];
6093
6092
ZEND_ASSERT (class_name_ast -> kind == ZEND_AST_ZVAL );
6094
6093
@@ -6118,6 +6117,12 @@ static void zend_compile_object_pattern(zend_ast **ast_ptr)
6118
6117
}
6119
6118
}
6120
6119
6120
+ static void zend_compile_object_pattern (zend_ast * * ast_ptr )
6121
+ {
6122
+ zend_ast * ast = * ast_ptr ;
6123
+ zend_compile_pattern_class_name (ast );
6124
+ }
6125
+
6121
6126
static zend_type zend_compile_single_typename (zend_ast * ast );
6122
6127
6123
6128
static void zend_compile_type_pattern (zend_ast * * ast_ptr )
@@ -6144,6 +6149,13 @@ static void zend_compile_type_pattern(zend_ast **ast_ptr)
6144
6149
}
6145
6150
}
6146
6151
6152
+ static void zend_compile_class_const_pattern (zend_ast * * ast_ptr )
6153
+ {
6154
+ // zend_ast *ast = *ast_ptr;
6155
+ // FIXME: Compiling the class name breaks zend_get_class_constant_ex.
6156
+ // zend_compile_pattern_class_name(ast);
6157
+ }
6158
+
6147
6159
static void zend_compile_binding_pattern (zend_ast * * ast_ptr )
6148
6160
{
6149
6161
zend_ast * binding_pattern_ast = * ast_ptr ;
@@ -6204,6 +6216,9 @@ static void zend_compile_pattern(zend_ast **ast_ptr, void *context)
6204
6216
case ZEND_AST_ARRAY_PATTERN :
6205
6217
zend_compile_array_pattern (ast_ptr );
6206
6218
break ;
6219
+ case ZEND_AST_CLASS_CONST_PATTERN :
6220
+ zend_compile_class_const_pattern (ast_ptr );
6221
+ break ;
6207
6222
}
6208
6223
6209
6224
zend_ast_apply (ast , zend_compile_pattern , context );
0 commit comments