mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 11:31:15 +00:00
added tests
This commit is contained in:
parent
2ac6cb1521
commit
b96819ca44
@ -0,0 +1,66 @@
|
||||
SOURCE_FILE
|
||||
STRUCT
|
||||
STRUCT_KW "struct"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "X"
|
||||
WHITESPACE " "
|
||||
RECORD_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
RECORD_FIELD
|
||||
NAME
|
||||
IDENT "a"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\r\n"
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
RECORD_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "X"
|
||||
WHITESPACE " "
|
||||
RECORD_EXPR_FIELD_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
RECORD_EXPR_FIELD
|
||||
NAME_REF
|
||||
IDENT "a"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 19: expected an item
|
||||
error 45: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,6 @@
|
||||
struct X {a: i32}
|
||||
let foo = X {
|
||||
a: 1
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,42 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
BIN_EXPR
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE " "
|
||||
PLUS "+"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 25: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = 1 + {
|
||||
1
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,90 @@
|
||||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "r"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "ok"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
MACRO_EXPR
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "format_args"
|
||||
BANG "!"
|
||||
TOKEN_TREE
|
||||
L_PAREN "("
|
||||
STRING "\"\""
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n\r\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "bad"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
MACRO_EXPR
|
||||
MACRO_CALL
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "format_args"
|
||||
BANG "!"
|
||||
WHITESPACE " "
|
||||
TOKEN_TREE
|
||||
L_CURLY "{"
|
||||
STRING "\"\""
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE " "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE " "
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE "\r\n"
|
||||
error 92: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
fn r() {
|
||||
let ok = format_args!("") else { return; };
|
||||
|
||||
let bad = format_args! {""} else { return; };
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
RANGE_EXPR
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
DOT2 ".."
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 24: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = 1..{
|
||||
1
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,55 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
CLOSURE_EXPR
|
||||
PARAM_LIST
|
||||
PIPE "|"
|
||||
PARAM
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "x"
|
||||
COLON ":"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "i32"
|
||||
PIPE "|"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "x"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 30: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = |x: i32| {
|
||||
x
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,38 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
PREFIX_EXPR
|
||||
MINUS "-"
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 22: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = -{
|
||||
1
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,90 @@
|
||||
SOURCE_FILE
|
||||
FN
|
||||
FN_KW "fn"
|
||||
WHITESPACE " "
|
||||
NAME
|
||||
IDENT "o"
|
||||
PARAM_LIST
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE " "
|
||||
RET_TYPE
|
||||
THIN_ARROW "->"
|
||||
WHITESPACE " "
|
||||
PATH_TYPE
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Result"
|
||||
GENERIC_ARG_LIST
|
||||
L_ANGLE "<"
|
||||
TYPE_ARG
|
||||
TUPLE_TYPE
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
COMMA ","
|
||||
WHITESPACE " "
|
||||
TYPE_ARG
|
||||
TUPLE_TYPE
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
R_ANGLE ">"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LET_STMT
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
YEET_EXPR
|
||||
DO_KW "do"
|
||||
WHITESPACE " "
|
||||
YEET_KW "yeet"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE "\r\n "
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
WHITESPACE " "
|
||||
CALL_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "Ok"
|
||||
ARG_LIST
|
||||
L_PAREN "("
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
R_PAREN ")"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n "
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
error 70: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,7 @@
|
||||
fn o() -> Result<(), ()> {
|
||||
let foo = do yeet {
|
||||
()
|
||||
} else {
|
||||
return Ok(());
|
||||
};
|
||||
}
|
@ -0,0 +1,40 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
BECOME_EXPR
|
||||
BECOME_KW "become"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
TUPLE_EXPR
|
||||
L_PAREN "("
|
||||
R_PAREN ")"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 29: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = become {
|
||||
()
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,38 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
REF_EXPR
|
||||
AMP "&"
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 22: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = &{
|
||||
1
|
||||
} else {
|
||||
return;
|
||||
};
|
@ -0,0 +1,45 @@
|
||||
SOURCE_FILE
|
||||
ERROR
|
||||
LET_KW "let"
|
||||
WHITESPACE " "
|
||||
IDENT_PAT
|
||||
NAME
|
||||
IDENT "foo"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
BIN_EXPR
|
||||
PATH_EXPR
|
||||
PATH
|
||||
PATH_SEGMENT
|
||||
NAME_REF
|
||||
IDENT "bar"
|
||||
WHITESPACE " "
|
||||
EQ "="
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
LITERAL
|
||||
INT_NUMBER "1"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
WHITESPACE " "
|
||||
LET_ELSE
|
||||
ELSE_KW "else"
|
||||
WHITESPACE " "
|
||||
BLOCK_EXPR
|
||||
STMT_LIST
|
||||
L_CURLY "{"
|
||||
WHITESPACE "\r\n "
|
||||
EXPR_STMT
|
||||
RETURN_EXPR
|
||||
RETURN_KW "return"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
R_CURLY "}"
|
||||
SEMICOLON ";"
|
||||
WHITESPACE "\r\n"
|
||||
error 0: expected an item
|
||||
error 27: right curly brace `}` before `else` in a `let...else` statement not allowed
|
@ -0,0 +1,5 @@
|
||||
let foo = bar = {
|
||||
1
|
||||
} else {
|
||||
return;
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user