@@ -6086,9 +6086,8 @@ static void zend_compile_match(znode *result, zend_ast *ast)
60866086 efree (jmp_end_opnums );
60876087}
60886088
6089- static void zend_compile_object_pattern (zend_ast * * ast_ptr )
6089+ static void zend_compile_pattern_class_name (zend_ast * ast )
60906090{
6091- zend_ast * ast = * ast_ptr ;
60926091 zend_ast * class_name_ast = ast -> child [0 ];
60936092 ZEND_ASSERT (class_name_ast -> kind == ZEND_AST_ZVAL );
60946093
@@ -6118,6 +6117,12 @@ static void zend_compile_object_pattern(zend_ast **ast_ptr)
61186117 }
61196118}
61206119
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+
61216126static zend_type zend_compile_single_typename (zend_ast * ast );
61226127
61236128static void zend_compile_type_pattern (zend_ast * * ast_ptr )
@@ -6144,6 +6149,13 @@ static void zend_compile_type_pattern(zend_ast **ast_ptr)
61446149 }
61456150}
61466151
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+
61476159static void zend_compile_binding_pattern (zend_ast * * ast_ptr )
61486160{
61496161 zend_ast * binding_pattern_ast = * ast_ptr ;
@@ -6204,6 +6216,9 @@ static void zend_compile_pattern(zend_ast **ast_ptr, void *context)
62046216 case ZEND_AST_ARRAY_PATTERN :
62056217 zend_compile_array_pattern (ast_ptr );
62066218 break ;
6219+ case ZEND_AST_CLASS_CONST_PATTERN :
6220+ zend_compile_class_const_pattern (ast_ptr );
6221+ break ;
62076222 }
62086223
62096224 zend_ast_apply (ast , zend_compile_pattern , context );
0 commit comments