p.eat(EXCL);
impl_type(p);
if p.eat(FOR_KW) {
- types::type_(p);
+ impl_type(p);
}
type_params::opt_where_clause(p);
if p.at(L_CURLY) {
&& (p.nth(2) == R_ANGLE || p.nth(2) == COMMA || p.nth(2) == COLON || p.nth(2) == EQ)
}
+// test impl_type
// impl Type {}
-// ^^^^
-// impl Trait for T {}
-// ^^^^^
+// impl Trait1 for T {}
+// impl impl NotType {}
+// impl Trait2 for impl NotType {}
pub(crate) fn impl_type(p: &mut Parser) {
if p.at(IMPL_KW) {
p.error("expected trait or type");
types::type_(p);
}
-
--- /dev/null
+ROOT@[0; 87)
+ IMPL_ITEM@[0; 12)
+ IMPL_KW@[0; 4)
+ WHITESPACE@[4; 5)
+ PATH_TYPE@[5; 9)
+ PATH@[5; 9)
+ PATH_SEGMENT@[5; 9)
+ NAME_REF@[5; 9)
+ IDENT@[5; 9) "Type"
+ WHITESPACE@[9; 10)
+ ITEM_LIST@[10; 12)
+ L_CURLY@[10; 11)
+ R_CURLY@[11; 12)
+ WHITESPACE@[12; 13)
+ IMPL_ITEM@[13; 33)
+ IMPL_KW@[13; 17)
+ WHITESPACE@[17; 18)
+ PATH_TYPE@[18; 24)
+ PATH@[18; 24)
+ PATH_SEGMENT@[18; 24)
+ NAME_REF@[18; 24)
+ IDENT@[18; 24) "Trait1"
+ WHITESPACE@[24; 25)
+ FOR_KW@[25; 28)
+ WHITESPACE@[28; 29)
+ PATH_TYPE@[29; 30)
+ PATH@[29; 30)
+ PATH_SEGMENT@[29; 30)
+ NAME_REF@[29; 30)
+ IDENT@[29; 30) "T"
+ WHITESPACE@[30; 31)
+ ITEM_LIST@[31; 33)
+ L_CURLY@[31; 32)
+ R_CURLY@[32; 33)
+ WHITESPACE@[33; 34)
+ IMPL_ITEM@[34; 38)
+ IMPL_KW@[34; 38)
+ err: `expected trait or type`
+ err: `expected `{``
+ WHITESPACE@[38; 39)
+ IMPL_ITEM@[39; 54)
+ IMPL_KW@[39; 43)
+ WHITESPACE@[43; 44)
+ PATH_TYPE@[44; 51)
+ PATH@[44; 51)
+ PATH_SEGMENT@[44; 51)
+ NAME_REF@[44; 51)
+ IDENT@[44; 51) "NotType"
+ WHITESPACE@[51; 52)
+ ITEM_LIST@[52; 54)
+ L_CURLY@[52; 53)
+ R_CURLY@[53; 54)
+ WHITESPACE@[54; 55)
+ IMPL_ITEM@[55; 70)
+ IMPL_KW@[55; 59)
+ WHITESPACE@[59; 60)
+ PATH_TYPE@[60; 66)
+ PATH@[60; 66)
+ PATH_SEGMENT@[60; 66)
+ NAME_REF@[60; 66)
+ IDENT@[60; 66) "Trait2"
+ WHITESPACE@[66; 67)
+ FOR_KW@[67; 70)
+ err: `expected trait or type`
+ err: `expected `{``
+ WHITESPACE@[70; 71)
+ IMPL_ITEM@[71; 86)
+ IMPL_KW@[71; 75)
+ WHITESPACE@[75; 76)
+ PATH_TYPE@[76; 83)
+ PATH@[76; 83)
+ PATH_SEGMENT@[76; 83)
+ NAME_REF@[76; 83)
+ IDENT@[76; 83) "NotType"
+ WHITESPACE@[83; 84)
+ ITEM_LIST@[84; 86)
+ L_CURLY@[84; 85)
+ R_CURLY@[85; 86)
+ WHITESPACE@[86; 87)