fix: move use parsing to outer match arm

This commit is contained in:
winstxnhdw 2024-07-23 22:32:23 +01:00
parent e4941c0c73
commit 4a91453409
2 changed files with 19 additions and 18 deletions

View file

@ -144,6 +144,12 @@ fn type_bound(p: &mut Parser<'_>) -> bool {
match p.current() { match p.current() {
LIFETIME_IDENT => lifetime(p), LIFETIME_IDENT => lifetime(p),
T![for] => types::for_type(p, false), T![for] => types::for_type(p, false),
// test precise_capturing
// fn captures<'a: 'a, 'b: 'b, T>() -> impl Sized + use<'b, T> {}
T![use] => {
p.bump_any();
generic_param_list(p)
}
T![?] if p.nth_at(1, T![for]) => { T![?] if p.nth_at(1, T![for]) => {
// test question_for_type_trait_bound // test question_for_type_trait_bound
// fn f<T>() where T: ?for<> Sized {} // fn f<T>() where T: ?for<> Sized {}
@ -167,12 +173,6 @@ fn type_bound(p: &mut Parser<'_>) -> bool {
T![async] => { T![async] => {
p.bump_any(); p.bump_any();
} }
// test precise_capturing
// fn captures<'a: 'a, 'b: 'b, T>() -> impl Sized + use<'b, T> {}
T![use] => {
p.bump_any();
generic_param_list(p);
}
_ => (), _ => (),
} }
if paths::is_use_path_start(p) { if paths::is_use_path_start(p) {

View file

@ -48,18 +48,19 @@ SOURCE_FILE
WHITESPACE " " WHITESPACE " "
PLUS "+" PLUS "+"
WHITESPACE " " WHITESPACE " "
USE_KW "use" TYPE_BOUND
GENERIC_PARAM_LIST USE_KW "use"
L_ANGLE "<" GENERIC_PARAM_LIST
LIFETIME_PARAM L_ANGLE "<"
LIFETIME LIFETIME_PARAM
LIFETIME_IDENT "'b" LIFETIME
COMMA "," LIFETIME_IDENT "'b"
WHITESPACE " " COMMA ","
TYPE_PARAM WHITESPACE " "
NAME TYPE_PARAM
IDENT "T" NAME
R_ANGLE ">" IDENT "T"
R_ANGLE ">"
WHITESPACE " " WHITESPACE " "
BLOCK_EXPR BLOCK_EXPR
STMT_LIST STMT_LIST