@@ -23,38 +23,6 @@ pub(super) fn opt_generic_arg_list(p: &mut Parser, colon_colon_required: bool) {
2323 m. complete ( p, GENERIC_ARG_LIST ) ;
2424}
2525
26- pub ( super ) fn const_arg ( p : & mut Parser ) {
27- let m = p. start ( ) ;
28- // FIXME: duplicates the code below
29- match p. current ( ) {
30- T ! [ '{' ] => {
31- expressions:: block_expr ( p) ;
32- m. complete ( p, CONST_ARG ) ;
33- }
34- k if k. is_literal ( ) => {
35- expressions:: literal ( p) ;
36- m. complete ( p, CONST_ARG ) ;
37- }
38- T ! [ true ] | T ! [ false ] => {
39- expressions:: literal ( p) ;
40- m. complete ( p, CONST_ARG ) ;
41- }
42- T ! [ -] => {
43- let lm = p. start ( ) ;
44- p. bump ( T ! [ -] ) ;
45- expressions:: literal ( p) ;
46- lm. complete ( p, PREFIX_EXPR ) ;
47- m. complete ( p, CONST_ARG ) ;
48- }
49- _ => {
50- let lm = p. start ( ) ;
51- paths:: use_path ( p) ;
52- lm. complete ( p, PATH_EXPR ) ;
53- m. complete ( p, CONST_ARG ) ;
54- }
55- }
56- }
57-
5826// test type_arg
5927// type A = B<'static, i32, 1, { 2 }, Item=u64, true, false>;
6028fn generic_arg ( p : & mut Parser ) {
@@ -94,7 +62,7 @@ fn generic_arg(p: &mut Parser) {
9462 }
9563 // NameRef<...>:
9664 T ! [ : ] => {
97- type_params :: bounds ( p) ;
65+ generic_params :: bounds ( p) ;
9866
9967 path_seg. abandon ( p) ;
10068 path. abandon ( p) ;
@@ -137,3 +105,35 @@ fn generic_arg(p: &mut Parser) {
137105 }
138106 }
139107}
108+
109+ pub ( super ) fn const_arg ( p : & mut Parser ) {
110+ let m = p. start ( ) ;
111+ // FIXME: duplicates the code above
112+ match p. current ( ) {
113+ T ! [ '{' ] => {
114+ expressions:: block_expr ( p) ;
115+ m. complete ( p, CONST_ARG ) ;
116+ }
117+ k if k. is_literal ( ) => {
118+ expressions:: literal ( p) ;
119+ m. complete ( p, CONST_ARG ) ;
120+ }
121+ T ! [ true ] | T ! [ false ] => {
122+ expressions:: literal ( p) ;
123+ m. complete ( p, CONST_ARG ) ;
124+ }
125+ T ! [ -] => {
126+ let lm = p. start ( ) ;
127+ p. bump ( T ! [ -] ) ;
128+ expressions:: literal ( p) ;
129+ lm. complete ( p, PREFIX_EXPR ) ;
130+ m. complete ( p, CONST_ARG ) ;
131+ }
132+ _ => {
133+ let lm = p. start ( ) ;
134+ paths:: use_path ( p) ;
135+ lm. complete ( p, PATH_EXPR ) ;
136+ m. complete ( p, CONST_ARG ) ;
137+ }
138+ }
139+ }
0 commit comments