fix test position

This commit is contained in:
bravomikekilo 2019-08-14 21:20:04 +08:00
parent 3fce56280f
commit 4f31fed362
6 changed files with 130 additions and 118 deletions

View File

@ -111,6 +111,12 @@ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMar
block_expr(p, Some(m))
}
T!['{'] => {
// test for_range_from
// fn foo() {
// for x in 0 .. {
// break;
// }
// }
if r.forbid_structs {
return None;
} else {
@ -313,16 +319,6 @@ fn while_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
// fn foo() {
// for x in [] {};
// }
// test for_range_block
// fn foo() {
// for x in 0 .. {
// break;
// }
// for _x in 0 .. (0 .. {1 + 2}).sum::<u32>() {
// break;
// }
// }
fn for_expr(p: &mut Parser, m: Option<Marker>) -> CompletedMarker {
assert!(p.at(T![for]));
let m = m.unwrap_or_else(|| p.start());

View File

@ -1,105 +0,0 @@
SOURCE_FILE@[0; 118)
FN_DEF@[0; 117)
FN_KW@[0; 2) "fn"
WHITESPACE@[2; 3) " "
NAME@[3; 6)
IDENT@[3; 6) "foo"
PARAM_LIST@[6; 8)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 117)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 14) "\n "
EXPR_STMT@[14; 48)
FOR_EXPR@[14; 48)
FOR_KW@[14; 17) "for"
WHITESPACE@[17; 18) " "
BIND_PAT@[18; 19)
NAME@[18; 19)
IDENT@[18; 19) "x"
WHITESPACE@[19; 20) " "
IN_KW@[20; 22) "in"
WHITESPACE@[22; 23) " "
RANGE_EXPR@[23; 27)
LITERAL@[23; 24)
INT_NUMBER@[23; 24) "0"
WHITESPACE@[24; 25) " "
DOTDOT@[25; 27) ".."
WHITESPACE@[27; 28) " "
BLOCK@[28; 48)
L_CURLY@[28; 29) "{"
WHITESPACE@[29; 37) "\n "
EXPR_STMT@[37; 43)
BREAK_EXPR@[37; 42)
BREAK_KW@[37; 42) "break"
SEMI@[42; 43) ";"
WHITESPACE@[43; 47) "\n "
R_CURLY@[47; 48) "}"
WHITESPACE@[48; 52) "\n "
FOR_EXPR@[52; 115)
FOR_KW@[52; 55) "for"
WHITESPACE@[55; 56) " "
BIND_PAT@[56; 58)
NAME@[56; 58)
IDENT@[56; 58) "_x"
WHITESPACE@[58; 59) " "
IN_KW@[59; 61) "in"
WHITESPACE@[61; 62) " "
RANGE_EXPR@[62; 94)
LITERAL@[62; 63)
INT_NUMBER@[62; 63) "0"
WHITESPACE@[63; 64) " "
DOTDOT@[64; 66) ".."
WHITESPACE@[66; 67) " "
METHOD_CALL_EXPR@[67; 94)
PAREN_EXPR@[67; 81)
L_PAREN@[67; 68) "("
RANGE_EXPR@[68; 80)
LITERAL@[68; 69)
INT_NUMBER@[68; 69) "0"
WHITESPACE@[69; 70) " "
DOTDOT@[70; 72) ".."
WHITESPACE@[72; 73) " "
BLOCK_EXPR@[73; 80)
BLOCK@[73; 80)
L_CURLY@[73; 74) "{"
BIN_EXPR@[74; 79)
LITERAL@[74; 75)
INT_NUMBER@[74; 75) "1"
WHITESPACE@[75; 76) " "
PLUS@[76; 77) "+"
WHITESPACE@[77; 78) " "
LITERAL@[78; 79)
INT_NUMBER@[78; 79) "2"
R_CURLY@[79; 80) "}"
R_PAREN@[80; 81) ")"
DOT@[81; 82) "."
NAME_REF@[82; 85)
IDENT@[82; 85) "sum"
TYPE_ARG_LIST@[85; 92)
COLONCOLON@[85; 87) "::"
L_ANGLE@[87; 88) "<"
TYPE_ARG@[88; 91)
PATH_TYPE@[88; 91)
PATH@[88; 91)
PATH_SEGMENT@[88; 91)
NAME_REF@[88; 91)
IDENT@[88; 91) "u32"
R_ANGLE@[91; 92) ">"
ARG_LIST@[92; 94)
L_PAREN@[92; 93) "("
R_PAREN@[93; 94) ")"
WHITESPACE@[94; 95) " "
BLOCK@[95; 115)
L_CURLY@[95; 96) "{"
WHITESPACE@[96; 104) "\n "
EXPR_STMT@[104; 110)
BREAK_EXPR@[104; 109)
BREAK_KW@[104; 109) "break"
SEMI@[109; 110) ";"
WHITESPACE@[110; 114) "\n "
R_CURLY@[114; 115) "}"
WHITESPACE@[115; 116) "\n"
R_CURLY@[116; 117) "}"
WHITESPACE@[117; 118) "\n"

View File

@ -0,0 +1,5 @@
fn foo() {
for x in 0 .. {
break;
}
}

View File

@ -0,0 +1,40 @@
SOURCE_FILE@[0; 51)
FN_DEF@[0; 50)
FN_KW@[0; 2) "fn"
WHITESPACE@[2; 3) " "
NAME@[3; 6)
IDENT@[3; 6) "foo"
PARAM_LIST@[6; 8)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 50)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 14) "\n "
FOR_EXPR@[14; 48)
FOR_KW@[14; 17) "for"
WHITESPACE@[17; 18) " "
BIND_PAT@[18; 19)
NAME@[18; 19)
IDENT@[18; 19) "x"
WHITESPACE@[19; 20) " "
IN_KW@[20; 22) "in"
WHITESPACE@[22; 23) " "
RANGE_EXPR@[23; 27)
LITERAL@[23; 24)
INT_NUMBER@[23; 24) "0"
WHITESPACE@[24; 25) " "
DOTDOT@[25; 27) ".."
WHITESPACE@[27; 28) " "
BLOCK@[28; 48)
L_CURLY@[28; 29) "{"
WHITESPACE@[29; 37) "\n "
EXPR_STMT@[37; 43)
BREAK_EXPR@[37; 42)
BREAK_KW@[37; 42) "break"
SEMI@[42; 43) ";"
WHITESPACE@[43; 47) "\n "
R_CURLY@[47; 48) "}"
WHITESPACE@[48; 49) "\n"
R_CURLY@[49; 50) "}"
WHITESPACE@[50; 51) "\n"

View File

@ -1,7 +1,4 @@
fn foo() {
for x in 0 .. {
break;
}
for _x in 0 .. (0 .. {1 + 2}).sum::<u32>() {
break;
}

View File

@ -0,0 +1,79 @@
SOURCE_FILE@[0; 80)
FN_DEF@[0; 79)
FN_KW@[0; 2) "fn"
WHITESPACE@[2; 3) " "
NAME@[3; 6)
IDENT@[3; 6) "foo"
PARAM_LIST@[6; 8)
L_PAREN@[6; 7) "("
R_PAREN@[7; 8) ")"
WHITESPACE@[8; 9) " "
BLOCK@[9; 79)
L_CURLY@[9; 10) "{"
WHITESPACE@[10; 14) "\n "
FOR_EXPR@[14; 77)
FOR_KW@[14; 17) "for"
WHITESPACE@[17; 18) " "
BIND_PAT@[18; 20)
NAME@[18; 20)
IDENT@[18; 20) "_x"
WHITESPACE@[20; 21) " "
IN_KW@[21; 23) "in"
WHITESPACE@[23; 24) " "
RANGE_EXPR@[24; 56)
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "0"
WHITESPACE@[25; 26) " "
DOTDOT@[26; 28) ".."
WHITESPACE@[28; 29) " "
METHOD_CALL_EXPR@[29; 56)
PAREN_EXPR@[29; 43)
L_PAREN@[29; 30) "("
RANGE_EXPR@[30; 42)
LITERAL@[30; 31)
INT_NUMBER@[30; 31) "0"
WHITESPACE@[31; 32) " "
DOTDOT@[32; 34) ".."
WHITESPACE@[34; 35) " "
BLOCK_EXPR@[35; 42)
BLOCK@[35; 42)
L_CURLY@[35; 36) "{"
BIN_EXPR@[36; 41)
LITERAL@[36; 37)
INT_NUMBER@[36; 37) "1"
WHITESPACE@[37; 38) " "
PLUS@[38; 39) "+"
WHITESPACE@[39; 40) " "
LITERAL@[40; 41)
INT_NUMBER@[40; 41) "2"
R_CURLY@[41; 42) "}"
R_PAREN@[42; 43) ")"
DOT@[43; 44) "."
NAME_REF@[44; 47)
IDENT@[44; 47) "sum"
TYPE_ARG_LIST@[47; 54)
COLONCOLON@[47; 49) "::"
L_ANGLE@[49; 50) "<"
TYPE_ARG@[50; 53)
PATH_TYPE@[50; 53)
PATH@[50; 53)
PATH_SEGMENT@[50; 53)
NAME_REF@[50; 53)
IDENT@[50; 53) "u32"
R_ANGLE@[53; 54) ">"
ARG_LIST@[54; 56)
L_PAREN@[54; 55) "("
R_PAREN@[55; 56) ")"
WHITESPACE@[56; 57) " "
BLOCK@[57; 77)
L_CURLY@[57; 58) "{"
WHITESPACE@[58; 66) "\n "
EXPR_STMT@[66; 72)
BREAK_EXPR@[66; 71)
BREAK_KW@[66; 71) "break"
SEMI@[71; 72) ";"
WHITESPACE@[72; 76) "\n "
R_CURLY@[76; 77) "}"
WHITESPACE@[77; 78) "\n"
R_CURLY@[78; 79) "}"
WHITESPACE@[79; 80) "\n"