Merge pull request #18625 from Veykril/push-npnxwpxuzlqz

fix: Fix parser getting stuck for bad asm expressions
This commit is contained in:
Lukas Wirth 2024-12-06 05:11:08 +00:00 committed by GitHub
commit cddaf7485f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 71 additions and 4 deletions

View file

@ -711,6 +711,8 @@ mod err {
run_and_expect_errors("test_data/parser/inline/err/async_without_semicolon.rs");
}
#[test]
fn bad_asm_expr() { run_and_expect_errors("test_data/parser/inline/err/bad_asm_expr.rs"); }
#[test]
fn comma_after_functional_update_syntax() {
run_and_expect_errors(
"test_data/parser/inline/err/comma_after_functional_update_syntax.rs",

View file

@ -0,0 +1,50 @@
SOURCE_FILE
FN
FN_KW "fn"
WHITESPACE " "
NAME
IDENT "foo"
PARAM_LIST
L_PAREN "("
R_PAREN ")"
WHITESPACE " "
BLOCK_EXPR
STMT_LIST
L_CURLY "{"
WHITESPACE "\n "
EXPR_STMT
ASM_EXPR
BUILTIN_KW "builtin"
POUND "#"
ASM_KW "asm"
L_PAREN "("
WHITESPACE "\n "
PATH_EXPR
PATH
PATH_SEGMENT
NAME_REF
IDENT "label"
WHITESPACE " "
NAME
IDENT "crashy"
WHITESPACE " "
EQ "="
WHITESPACE " "
BLOCK_EXPR
STMT_LIST
L_CURLY "{"
WHITESPACE " "
EXPR_STMT
RETURN_EXPR
RETURN_KW "return"
SEMICOLON ";"
WHITESPACE " "
R_CURLY "}"
WHITESPACE "\n "
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n"
R_CURLY "}"
WHITESPACE "\n"
error 41: expected COMMA
error 50: expected asm operand

View file

@ -0,0 +1,5 @@
fn foo() {
builtin#asm(
label crashy = { return; }
);
}