mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 14:21:44 +00:00
minor: more condensed tests
This commit is contained in:
parent
f692be853b
commit
f27cda6865
7 changed files with 129 additions and 137 deletions
|
@ -243,12 +243,12 @@ fn current_op(p: &Parser) -> (u8, SyntaxKind) {
|
||||||
fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMarker>, BlockLike) {
|
fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMarker>, BlockLike) {
|
||||||
let mut lhs = match lhs(p, r) {
|
let mut lhs = match lhs(p, r) {
|
||||||
Some((lhs, blocklike)) => {
|
Some((lhs, blocklike)) => {
|
||||||
|
if r.prefer_stmt && blocklike.is_block() {
|
||||||
// test stmt_bin_expr_ambiguity
|
// test stmt_bin_expr_ambiguity
|
||||||
// fn foo() {
|
// fn f() {
|
||||||
// let _ = {1} & 2;
|
// let _ = {1} & 2;
|
||||||
// {1} &2;
|
// {1} &2;
|
||||||
// }
|
// }
|
||||||
if r.prefer_stmt && blocklike.is_block() {
|
|
||||||
return (Some(lhs), BlockLike::Block);
|
return (Some(lhs), BlockLike::Block);
|
||||||
}
|
}
|
||||||
lhs
|
lhs
|
||||||
|
@ -263,9 +263,7 @@ fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMark
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
// test as_precedence
|
// test as_precedence
|
||||||
// fn foo() {
|
// fn f() { let _ = &1 as *const i32; }
|
||||||
// let _ = &1 as *const i32;
|
|
||||||
// }
|
|
||||||
if p.at(T![as]) {
|
if p.at(T![as]) {
|
||||||
lhs = cast_expr(p, lhs);
|
lhs = cast_expr(p, lhs);
|
||||||
continue;
|
continue;
|
||||||
|
@ -274,9 +272,7 @@ fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMark
|
||||||
p.bump(op);
|
p.bump(op);
|
||||||
|
|
||||||
// test binop_resets_statementness
|
// test binop_resets_statementness
|
||||||
// fn foo() {
|
// fn f() { v = {1}&2; }
|
||||||
// v = {1}&2;
|
|
||||||
// }
|
|
||||||
r = Restrictions { prefer_stmt: false, ..r };
|
r = Restrictions { prefer_stmt: false, ..r };
|
||||||
|
|
||||||
if is_range {
|
if is_range {
|
||||||
|
|
|
@ -1,50 +1,50 @@
|
||||||
SOURCE_FILE@0..46
|
SOURCE_FILE@0..44
|
||||||
FN@0..45
|
FN@0..43
|
||||||
FN_KW@0..2 "fn"
|
FN_KW@0..2 "fn"
|
||||||
WHITESPACE@2..3 " "
|
WHITESPACE@2..3 " "
|
||||||
NAME@3..6
|
NAME@3..4
|
||||||
IDENT@3..6 "foo"
|
IDENT@3..4 "f"
|
||||||
PARAM_LIST@6..8
|
PARAM_LIST@4..6
|
||||||
L_PAREN@6..7 "("
|
L_PAREN@4..5 "("
|
||||||
R_PAREN@7..8 ")"
|
R_PAREN@5..6 ")"
|
||||||
WHITESPACE@8..9 " "
|
WHITESPACE@6..7 " "
|
||||||
BLOCK_EXPR@9..45
|
BLOCK_EXPR@7..43
|
||||||
L_CURLY@9..10 "{"
|
L_CURLY@7..8 "{"
|
||||||
WHITESPACE@10..15 "\n "
|
WHITESPACE@8..13 "\n "
|
||||||
LET_STMT@15..31
|
LET_STMT@13..29
|
||||||
LET_KW@15..18 "let"
|
LET_KW@13..16 "let"
|
||||||
|
WHITESPACE@16..17 " "
|
||||||
|
WILDCARD_PAT@17..18
|
||||||
|
UNDERSCORE@17..18 "_"
|
||||||
WHITESPACE@18..19 " "
|
WHITESPACE@18..19 " "
|
||||||
WILDCARD_PAT@19..20
|
EQ@19..20 "="
|
||||||
UNDERSCORE@19..20 "_"
|
|
||||||
WHITESPACE@20..21 " "
|
WHITESPACE@20..21 " "
|
||||||
EQ@21..22 "="
|
BIN_EXPR@21..28
|
||||||
WHITESPACE@22..23 " "
|
BLOCK_EXPR@21..24
|
||||||
BIN_EXPR@23..30
|
L_CURLY@21..22 "{"
|
||||||
BLOCK_EXPR@23..26
|
LITERAL@22..23
|
||||||
L_CURLY@23..24 "{"
|
INT_NUMBER@22..23 "1"
|
||||||
LITERAL@24..25
|
R_CURLY@23..24 "}"
|
||||||
INT_NUMBER@24..25 "1"
|
WHITESPACE@24..25 " "
|
||||||
R_CURLY@25..26 "}"
|
AMP@25..26 "&"
|
||||||
WHITESPACE@26..27 " "
|
WHITESPACE@26..27 " "
|
||||||
AMP@27..28 "&"
|
LITERAL@27..28
|
||||||
WHITESPACE@28..29 " "
|
INT_NUMBER@27..28 "2"
|
||||||
LITERAL@29..30
|
SEMICOLON@28..29 ";"
|
||||||
INT_NUMBER@29..30 "2"
|
WHITESPACE@29..34 "\n "
|
||||||
SEMICOLON@30..31 ";"
|
EXPR_STMT@34..37
|
||||||
WHITESPACE@31..36 "\n "
|
BLOCK_EXPR@34..37
|
||||||
EXPR_STMT@36..39
|
L_CURLY@34..35 "{"
|
||||||
BLOCK_EXPR@36..39
|
LITERAL@35..36
|
||||||
L_CURLY@36..37 "{"
|
INT_NUMBER@35..36 "1"
|
||||||
LITERAL@37..38
|
R_CURLY@36..37 "}"
|
||||||
INT_NUMBER@37..38 "1"
|
WHITESPACE@37..38 " "
|
||||||
R_CURLY@38..39 "}"
|
EXPR_STMT@38..41
|
||||||
WHITESPACE@39..40 " "
|
REF_EXPR@38..40
|
||||||
EXPR_STMT@40..43
|
AMP@38..39 "&"
|
||||||
REF_EXPR@40..42
|
LITERAL@39..40
|
||||||
AMP@40..41 "&"
|
INT_NUMBER@39..40 "2"
|
||||||
LITERAL@41..42
|
SEMICOLON@40..41 ";"
|
||||||
INT_NUMBER@41..42 "2"
|
WHITESPACE@41..42 "\n"
|
||||||
SEMICOLON@42..43 ";"
|
R_CURLY@42..43 "}"
|
||||||
WHITESPACE@43..44 "\n"
|
WHITESPACE@43..44 "\n"
|
||||||
R_CURLY@44..45 "}"
|
|
||||||
WHITESPACE@45..46 "\n"
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
fn foo() {
|
fn f() {
|
||||||
let _ = {1} & 2;
|
let _ = {1} & 2;
|
||||||
{1} &2;
|
{1} &2;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,42 +1,42 @@
|
||||||
SOURCE_FILE@0..43
|
SOURCE_FILE@0..37
|
||||||
FN@0..42
|
FN@0..36
|
||||||
FN_KW@0..2 "fn"
|
FN_KW@0..2 "fn"
|
||||||
WHITESPACE@2..3 " "
|
WHITESPACE@2..3 " "
|
||||||
NAME@3..6
|
NAME@3..4
|
||||||
IDENT@3..6 "foo"
|
IDENT@3..4 "f"
|
||||||
PARAM_LIST@6..8
|
PARAM_LIST@4..6
|
||||||
L_PAREN@6..7 "("
|
L_PAREN@4..5 "("
|
||||||
R_PAREN@7..8 ")"
|
R_PAREN@5..6 ")"
|
||||||
|
WHITESPACE@6..7 " "
|
||||||
|
BLOCK_EXPR@7..36
|
||||||
|
L_CURLY@7..8 "{"
|
||||||
WHITESPACE@8..9 " "
|
WHITESPACE@8..9 " "
|
||||||
BLOCK_EXPR@9..42
|
LET_STMT@9..34
|
||||||
L_CURLY@9..10 "{"
|
LET_KW@9..12 "let"
|
||||||
WHITESPACE@10..15 "\n "
|
WHITESPACE@12..13 " "
|
||||||
LET_STMT@15..40
|
WILDCARD_PAT@13..14
|
||||||
LET_KW@15..18 "let"
|
UNDERSCORE@13..14 "_"
|
||||||
WHITESPACE@18..19 " "
|
WHITESPACE@14..15 " "
|
||||||
WILDCARD_PAT@19..20
|
EQ@15..16 "="
|
||||||
UNDERSCORE@19..20 "_"
|
WHITESPACE@16..17 " "
|
||||||
WHITESPACE@20..21 " "
|
CAST_EXPR@17..33
|
||||||
EQ@21..22 "="
|
REF_EXPR@17..19
|
||||||
|
AMP@17..18 "&"
|
||||||
|
LITERAL@18..19
|
||||||
|
INT_NUMBER@18..19 "1"
|
||||||
|
WHITESPACE@19..20 " "
|
||||||
|
AS_KW@20..22 "as"
|
||||||
WHITESPACE@22..23 " "
|
WHITESPACE@22..23 " "
|
||||||
CAST_EXPR@23..39
|
PTR_TYPE@23..33
|
||||||
REF_EXPR@23..25
|
STAR@23..24 "*"
|
||||||
AMP@23..24 "&"
|
CONST_KW@24..29 "const"
|
||||||
LITERAL@24..25
|
WHITESPACE@29..30 " "
|
||||||
INT_NUMBER@24..25 "1"
|
PATH_TYPE@30..33
|
||||||
WHITESPACE@25..26 " "
|
PATH@30..33
|
||||||
AS_KW@26..28 "as"
|
PATH_SEGMENT@30..33
|
||||||
WHITESPACE@28..29 " "
|
NAME_REF@30..33
|
||||||
PTR_TYPE@29..39
|
IDENT@30..33 "i32"
|
||||||
STAR@29..30 "*"
|
SEMICOLON@33..34 ";"
|
||||||
CONST_KW@30..35 "const"
|
WHITESPACE@34..35 " "
|
||||||
WHITESPACE@35..36 " "
|
R_CURLY@35..36 "}"
|
||||||
PATH_TYPE@36..39
|
WHITESPACE@36..37 "\n"
|
||||||
PATH@36..39
|
|
||||||
PATH_SEGMENT@36..39
|
|
||||||
NAME_REF@36..39
|
|
||||||
IDENT@36..39 "i32"
|
|
||||||
SEMICOLON@39..40 ";"
|
|
||||||
WHITESPACE@40..41 "\n"
|
|
||||||
R_CURLY@41..42 "}"
|
|
||||||
WHITESPACE@42..43 "\n"
|
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
fn foo() {
|
fn f() { let _ = &1 as *const i32; }
|
||||||
let _ = &1 as *const i32;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,36 +1,36 @@
|
||||||
SOURCE_FILE@0..28
|
SOURCE_FILE@0..22
|
||||||
FN@0..27
|
FN@0..21
|
||||||
FN_KW@0..2 "fn"
|
FN_KW@0..2 "fn"
|
||||||
WHITESPACE@2..3 " "
|
WHITESPACE@2..3 " "
|
||||||
NAME@3..6
|
NAME@3..4
|
||||||
IDENT@3..6 "foo"
|
IDENT@3..4 "f"
|
||||||
PARAM_LIST@6..8
|
PARAM_LIST@4..6
|
||||||
L_PAREN@6..7 "("
|
L_PAREN@4..5 "("
|
||||||
R_PAREN@7..8 ")"
|
R_PAREN@5..6 ")"
|
||||||
|
WHITESPACE@6..7 " "
|
||||||
|
BLOCK_EXPR@7..21
|
||||||
|
L_CURLY@7..8 "{"
|
||||||
WHITESPACE@8..9 " "
|
WHITESPACE@8..9 " "
|
||||||
BLOCK_EXPR@9..27
|
EXPR_STMT@9..19
|
||||||
L_CURLY@9..10 "{"
|
BIN_EXPR@9..18
|
||||||
WHITESPACE@10..15 "\n "
|
PATH_EXPR@9..10
|
||||||
EXPR_STMT@15..25
|
PATH@9..10
|
||||||
BIN_EXPR@15..24
|
PATH_SEGMENT@9..10
|
||||||
PATH_EXPR@15..16
|
NAME_REF@9..10
|
||||||
PATH@15..16
|
IDENT@9..10 "v"
|
||||||
PATH_SEGMENT@15..16
|
WHITESPACE@10..11 " "
|
||||||
NAME_REF@15..16
|
EQ@11..12 "="
|
||||||
IDENT@15..16 "v"
|
WHITESPACE@12..13 " "
|
||||||
WHITESPACE@16..17 " "
|
BIN_EXPR@13..18
|
||||||
EQ@17..18 "="
|
BLOCK_EXPR@13..16
|
||||||
WHITESPACE@18..19 " "
|
L_CURLY@13..14 "{"
|
||||||
BIN_EXPR@19..24
|
LITERAL@14..15
|
||||||
BLOCK_EXPR@19..22
|
INT_NUMBER@14..15 "1"
|
||||||
L_CURLY@19..20 "{"
|
R_CURLY@15..16 "}"
|
||||||
LITERAL@20..21
|
AMP@16..17 "&"
|
||||||
INT_NUMBER@20..21 "1"
|
LITERAL@17..18
|
||||||
R_CURLY@21..22 "}"
|
INT_NUMBER@17..18 "2"
|
||||||
AMP@22..23 "&"
|
SEMICOLON@18..19 ";"
|
||||||
LITERAL@23..24
|
WHITESPACE@19..20 " "
|
||||||
INT_NUMBER@23..24 "2"
|
R_CURLY@20..21 "}"
|
||||||
SEMICOLON@24..25 ";"
|
WHITESPACE@21..22 "\n"
|
||||||
WHITESPACE@25..26 "\n"
|
|
||||||
R_CURLY@26..27 "}"
|
|
||||||
WHITESPACE@27..28 "\n"
|
|
||||||
|
|
|
@ -1,3 +1 @@
|
||||||
fn foo() {
|
fn f() { v = {1}&2; }
|
||||||
v = {1}&2;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue