File tree 3 files changed +119
-3
lines changed
test_data/parser/inline/ok
3 files changed +119
-3
lines changed Original file line number Diff line number Diff line change @@ -40,11 +40,19 @@ fn generic_arg(p: &mut Parser) {
40
40
name_ref ( p) ;
41
41
opt_generic_arg_list ( p, false ) ;
42
42
match p. current ( ) {
43
- // test assoc_type_eq
44
- // type T = StreamingIterator<Item<'a> = &'a T>;
45
43
T ! [ =] => {
46
44
p. bump_any ( ) ;
47
- types:: type_ ( p) ;
45
+ if types:: TYPE_FIRST . contains ( p. current ( ) ) {
46
+ // test assoc_type_eq
47
+ // type T = StreamingIterator<Item<'a> = &'a T>;
48
+ types:: type_ ( p) ;
49
+ } else {
50
+ // test assoc_const_eq
51
+ // fn foo<F: Foo<N=3>>() {}
52
+ // const TEST: usize = 3;
53
+ // fn bar<F: Foo<N={TEST}>>() {}
54
+ const_arg ( p) ;
55
+ }
48
56
m. complete ( p, ASSOC_TYPE_ARG ) ;
49
57
}
50
58
// test assoc_type_bound
Original file line number Diff line number Diff line change
1
+ SOURCE_FILE
2
+ FN
3
+ FN_KW "fn"
4
+ WHITESPACE " "
5
+ NAME
6
+ IDENT "foo"
7
+ GENERIC_PARAM_LIST
8
+ L_ANGLE "<"
9
+ TYPE_PARAM
10
+ NAME
11
+ IDENT "F"
12
+ COLON ":"
13
+ WHITESPACE " "
14
+ TYPE_BOUND_LIST
15
+ TYPE_BOUND
16
+ PATH_TYPE
17
+ PATH
18
+ PATH_SEGMENT
19
+ NAME_REF
20
+ IDENT "Foo"
21
+ GENERIC_ARG_LIST
22
+ L_ANGLE "<"
23
+ ASSOC_TYPE_ARG
24
+ NAME_REF
25
+ IDENT "N"
26
+ EQ "="
27
+ CONST_ARG
28
+ LITERAL
29
+ INT_NUMBER "3"
30
+ R_ANGLE ">"
31
+ R_ANGLE ">"
32
+ PARAM_LIST
33
+ L_PAREN "("
34
+ R_PAREN ")"
35
+ WHITESPACE " "
36
+ BLOCK_EXPR
37
+ STMT_LIST
38
+ L_CURLY "{"
39
+ R_CURLY "}"
40
+ WHITESPACE "\n"
41
+ CONST
42
+ CONST_KW "const"
43
+ WHITESPACE " "
44
+ NAME
45
+ IDENT "TEST"
46
+ COLON ":"
47
+ WHITESPACE " "
48
+ PATH_TYPE
49
+ PATH
50
+ PATH_SEGMENT
51
+ NAME_REF
52
+ IDENT "usize"
53
+ WHITESPACE " "
54
+ EQ "="
55
+ WHITESPACE " "
56
+ LITERAL
57
+ INT_NUMBER "3"
58
+ SEMICOLON ";"
59
+ WHITESPACE "\n"
60
+ FN
61
+ FN_KW "fn"
62
+ WHITESPACE " "
63
+ NAME
64
+ IDENT "bar"
65
+ GENERIC_PARAM_LIST
66
+ L_ANGLE "<"
67
+ TYPE_PARAM
68
+ NAME
69
+ IDENT "F"
70
+ COLON ":"
71
+ WHITESPACE " "
72
+ TYPE_BOUND_LIST
73
+ TYPE_BOUND
74
+ PATH_TYPE
75
+ PATH
76
+ PATH_SEGMENT
77
+ NAME_REF
78
+ IDENT "Foo"
79
+ GENERIC_ARG_LIST
80
+ L_ANGLE "<"
81
+ ASSOC_TYPE_ARG
82
+ NAME_REF
83
+ IDENT "N"
84
+ EQ "="
85
+ CONST_ARG
86
+ BLOCK_EXPR
87
+ STMT_LIST
88
+ L_CURLY "{"
89
+ PATH_EXPR
90
+ PATH
91
+ PATH_SEGMENT
92
+ NAME_REF
93
+ IDENT "TEST"
94
+ R_CURLY "}"
95
+ R_ANGLE ">"
96
+ R_ANGLE ">"
97
+ PARAM_LIST
98
+ L_PAREN "("
99
+ R_PAREN ")"
100
+ WHITESPACE " "
101
+ BLOCK_EXPR
102
+ STMT_LIST
103
+ L_CURLY "{"
104
+ R_CURLY "}"
105
+ WHITESPACE "\n"
Original file line number Diff line number Diff line change
1
+ fn foo < F : Foo < N =3 > > ( ) { }
2
+ const TEST : usize = 3 ;
3
+ fn bar < F : Foo < N ={ TEST } > > ( ) { }
You can’t perform that action at this time.
0 commit comments