minor: more condensed tests

This commit is contained in:
Aleksey Kladov 2021-09-25 14:24:08 +03:00
parent f692be853b
commit f27cda6865
7 changed files with 129 additions and 137 deletions

View file

@ -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)) => {
// test stmt_bin_expr_ambiguity
// fn foo() {
// let _ = {1} & 2;
// {1} &2;
// }
if r.prefer_stmt && blocklike.is_block() { if r.prefer_stmt && blocklike.is_block() {
// test stmt_bin_expr_ambiguity
// fn f() {
// let _ = {1} & 2;
// {1} &2;
// }
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 {

View file

@ -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"

View file

@ -1,4 +1,4 @@
fn foo() { fn f() {
let _ = {1} & 2; let _ = {1} & 2;
{1} &2; {1} &2;
} }

View file

@ -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@8..9 " " WHITESPACE@6..7 " "
BLOCK_EXPR@9..42 BLOCK_EXPR@7..36
L_CURLY@9..10 "{" L_CURLY@7..8 "{"
WHITESPACE@10..15 "\n " WHITESPACE@8..9 " "
LET_STMT@15..40 LET_STMT@9..34
LET_KW@15..18 "let" LET_KW@9..12 "let"
WHITESPACE@18..19 " " WHITESPACE@12..13 " "
WILDCARD_PAT@19..20 WILDCARD_PAT@13..14
UNDERSCORE@19..20 "_" UNDERSCORE@13..14 "_"
WHITESPACE@20..21 " " WHITESPACE@14..15 " "
EQ@21..22 "=" EQ@15..16 "="
WHITESPACE@22..23 " " WHITESPACE@16..17 " "
CAST_EXPR@23..39 CAST_EXPR@17..33
REF_EXPR@23..25 REF_EXPR@17..19
AMP@23..24 "&" AMP@17..18 "&"
LITERAL@24..25 LITERAL@18..19
INT_NUMBER@24..25 "1" INT_NUMBER@18..19 "1"
WHITESPACE@25..26 " " WHITESPACE@19..20 " "
AS_KW@26..28 "as" AS_KW@20..22 "as"
WHITESPACE@28..29 " " WHITESPACE@22..23 " "
PTR_TYPE@29..39 PTR_TYPE@23..33
STAR@29..30 "*" STAR@23..24 "*"
CONST_KW@30..35 "const" CONST_KW@24..29 "const"
WHITESPACE@35..36 " " WHITESPACE@29..30 " "
PATH_TYPE@36..39 PATH_TYPE@30..33
PATH@36..39 PATH@30..33
PATH_SEGMENT@36..39 PATH_SEGMENT@30..33
NAME_REF@36..39 NAME_REF@30..33
IDENT@36..39 "i32" IDENT@30..33 "i32"
SEMICOLON@39..40 ";" SEMICOLON@33..34 ";"
WHITESPACE@40..41 "\n" WHITESPACE@34..35 " "
R_CURLY@41..42 "}" R_CURLY@35..36 "}"
WHITESPACE@42..43 "\n" WHITESPACE@36..37 "\n"

View file

@ -1,3 +1 @@
fn foo() { fn f() { let _ = &1 as *const i32; }
let _ = &1 as *const i32;
}

View file

@ -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@8..9 " " WHITESPACE@6..7 " "
BLOCK_EXPR@9..27 BLOCK_EXPR@7..21
L_CURLY@9..10 "{" L_CURLY@7..8 "{"
WHITESPACE@10..15 "\n " WHITESPACE@8..9 " "
EXPR_STMT@15..25 EXPR_STMT@9..19
BIN_EXPR@15..24 BIN_EXPR@9..18
PATH_EXPR@15..16 PATH_EXPR@9..10
PATH@15..16 PATH@9..10
PATH_SEGMENT@15..16 PATH_SEGMENT@9..10
NAME_REF@15..16 NAME_REF@9..10
IDENT@15..16 "v" IDENT@9..10 "v"
WHITESPACE@16..17 " " WHITESPACE@10..11 " "
EQ@17..18 "=" EQ@11..12 "="
WHITESPACE@18..19 " " WHITESPACE@12..13 " "
BIN_EXPR@19..24 BIN_EXPR@13..18
BLOCK_EXPR@19..22 BLOCK_EXPR@13..16
L_CURLY@19..20 "{" L_CURLY@13..14 "{"
LITERAL@20..21 LITERAL@14..15
INT_NUMBER@20..21 "1" INT_NUMBER@14..15 "1"
R_CURLY@21..22 "}" R_CURLY@15..16 "}"
AMP@22..23 "&" AMP@16..17 "&"
LITERAL@23..24 LITERAL@17..18
INT_NUMBER@23..24 "2" INT_NUMBER@17..18 "2"
SEMICOLON@24..25 ";" SEMICOLON@18..19 ";"
WHITESPACE@25..26 "\n" WHITESPACE@19..20 " "
R_CURLY@26..27 "}" R_CURLY@20..21 "}"
WHITESPACE@27..28 "\n" WHITESPACE@21..22 "\n"

View file

@ -1,3 +1 @@
fn foo() { fn f() { v = {1}&2; }
v = {1}&2;
}