Fn-style type params
This commit is contained in:
parent
678882d4f8
commit
bfb90dc4f1
3 changed files with 56 additions and 1 deletions
|
@ -71,7 +71,16 @@ fn path_segment(p: &mut Parser, mode: Mode, first: bool) {
|
||||||
fn path_generic_args(p: &mut Parser, mode: Mode) {
|
fn path_generic_args(p: &mut Parser, mode: Mode) {
|
||||||
match mode {
|
match mode {
|
||||||
Mode::Use => return,
|
Mode::Use => return,
|
||||||
Mode::Type => type_args::type_arg_list(p, false),
|
Mode::Type => {
|
||||||
|
// test path_fn_trait_args
|
||||||
|
// type F = Box<Fn(x: i32) -> ()>;
|
||||||
|
if p.at(L_PAREN) {
|
||||||
|
params::param_list(p);
|
||||||
|
fn_ret_type(p);
|
||||||
|
} else {
|
||||||
|
type_args::type_arg_list(p, false)
|
||||||
|
}
|
||||||
|
},
|
||||||
Mode::Expr => type_args::type_arg_list(p, true),
|
Mode::Expr => type_args::type_arg_list(p, true),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
tests/data/parser/inline/0093_path_fn_trait_args.rs
Normal file
1
tests/data/parser/inline/0093_path_fn_trait_args.rs
Normal file
|
@ -0,0 +1 @@
|
||||||
|
type F = Box<Fn(x: i32) -> ()>;
|
45
tests/data/parser/inline/0093_path_fn_trait_args.txt
Normal file
45
tests/data/parser/inline/0093_path_fn_trait_args.txt
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
FILE@[0; 32)
|
||||||
|
TYPE_ITEM@[0; 31)
|
||||||
|
TYPE_KW@[0; 4)
|
||||||
|
WHITESPACE@[4; 5)
|
||||||
|
NAME@[5; 6)
|
||||||
|
IDENT@[5; 6) "F"
|
||||||
|
WHITESPACE@[6; 7)
|
||||||
|
EQ@[7; 8)
|
||||||
|
WHITESPACE@[8; 9)
|
||||||
|
PATH_TYPE@[9; 30)
|
||||||
|
PATH@[9; 30)
|
||||||
|
PATH_SEGMENT@[9; 30)
|
||||||
|
NAME_REF@[9; 12)
|
||||||
|
IDENT@[9; 12) "Box"
|
||||||
|
TYPE_ARG_LIST@[12; 30)
|
||||||
|
L_ANGLE@[12; 13)
|
||||||
|
TYPE_ARG@[13; 29)
|
||||||
|
PATH_TYPE@[13; 29)
|
||||||
|
PATH@[13; 29)
|
||||||
|
PATH_SEGMENT@[13; 29)
|
||||||
|
NAME_REF@[13; 15)
|
||||||
|
IDENT@[13; 15) "Fn"
|
||||||
|
PARAM_LIST@[15; 23)
|
||||||
|
L_PAREN@[15; 16)
|
||||||
|
PARAM@[16; 22)
|
||||||
|
BIND_PAT@[16; 17)
|
||||||
|
NAME@[16; 17)
|
||||||
|
IDENT@[16; 17) "x"
|
||||||
|
COLON@[17; 18)
|
||||||
|
WHITESPACE@[18; 19)
|
||||||
|
PATH_TYPE@[19; 22)
|
||||||
|
PATH@[19; 22)
|
||||||
|
PATH_SEGMENT@[19; 22)
|
||||||
|
NAME_REF@[19; 22)
|
||||||
|
IDENT@[19; 22) "i32"
|
||||||
|
R_PAREN@[22; 23)
|
||||||
|
WHITESPACE@[23; 24)
|
||||||
|
THIN_ARROW@[24; 26)
|
||||||
|
WHITESPACE@[26; 27)
|
||||||
|
TUPLE_TYPE@[27; 29)
|
||||||
|
L_PAREN@[27; 28)
|
||||||
|
R_PAREN@[28; 29)
|
||||||
|
R_ANGLE@[29; 30)
|
||||||
|
SEMI@[30; 31)
|
||||||
|
WHITESPACE@[31; 32)
|
Loading…
Reference in a new issue