@@ -135,7 +135,11 @@ fn where_predicate(p: &mut Parser) {
|
|||||||
if p.at(FOR_KW) {
|
if p.at(FOR_KW) {
|
||||||
types::for_binder(p);
|
types::for_binder(p);
|
||||||
}
|
}
|
||||||
types::path_type(p);
|
if paths::is_path_start(p) || p.at(L_ANGLE) {
|
||||||
|
types::path_type_(p, false);
|
||||||
|
} else {
|
||||||
|
p.error("expected a type");
|
||||||
|
}
|
||||||
if p.at(COLON) {
|
if p.at(COLON) {
|
||||||
bounds(p);
|
bounds(p);
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -0,0 +1,3 @@
|
|||||||
|
fn foo()
|
||||||
|
where for<'a>
|
||||||
|
{}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
ROOT@[0; 30)
|
||||||
|
FN_DEF@[0; 29)
|
||||||
|
FN_KW@[0; 2)
|
||||||
|
WHITESPACE@[2; 3)
|
||||||
|
NAME@[3; 6)
|
||||||
|
IDENT@[3; 6) "foo"
|
||||||
|
PARAM_LIST@[6; 8)
|
||||||
|
L_PAREN@[6; 7)
|
||||||
|
R_PAREN@[7; 8)
|
||||||
|
WHITESPACE@[8; 13)
|
||||||
|
WHERE_CLAUSE@[13; 26)
|
||||||
|
WHERE_KW@[13; 18)
|
||||||
|
WHITESPACE@[18; 19)
|
||||||
|
WHERE_PRED@[19; 26)
|
||||||
|
FOR_KW@[19; 22)
|
||||||
|
TYPE_PARAM_LIST@[22; 26)
|
||||||
|
L_ANGLE@[22; 23)
|
||||||
|
LIFETIME_PARAM@[23; 25)
|
||||||
|
LIFETIME@[23; 25) "'a"
|
||||||
|
R_ANGLE@[25; 26)
|
||||||
|
err: `expected a type`
|
||||||
|
err: `expected colon`
|
||||||
|
WHITESPACE@[26; 27)
|
||||||
|
BLOCK@[27; 29)
|
||||||
|
L_CURLY@[27; 28)
|
||||||
|
R_CURLY@[28; 29)
|
||||||
|
WHITESPACE@[29; 30)
|
||||||
Reference in New Issue
Block a user