@@ -150,8 +150,8 @@ class parser {
150
150
151
151
fn parse_ty_fn_decl ( purity : ast:: purity ) -> fn_decl {
152
152
let inputs =
153
- self . parse_seq ( token:: LPAREN , token:: RPAREN ,
154
- seq_sep ( token:: COMMA ) ) { |p|
153
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
154
+ seq_sep ( token:: COMMA ) ) { |p|
155
155
let mode = p. parse_arg_mode ( ) ;
156
156
let name = if is_plain_ident ( p. token )
157
157
&& p. look_ahead ( 1 u) == token:: COLON {
@@ -170,13 +170,14 @@ class parser {
170
170
// story on constrained types.
171
171
let constrs: [ @constr ] = [ ] ;
172
172
let ( ret_style, ret_ty) = self . parse_ret_ty ( ) ;
173
- ret { inputs : inputs. node , output : ret_ty,
173
+ ret { inputs : inputs, output : ret_ty,
174
174
purity : purity, cf : ret_style,
175
175
constraints : constrs} ;
176
176
}
177
177
178
178
fn parse_ty_methods ( ) -> [ ty_method ] {
179
- ( self . parse_seq ( token:: LBRACE , token:: RBRACE , seq_sep_none ( ) ) { |p|
179
+ self . parse_unspanned_seq ( token:: LBRACE , token:: RBRACE ,
180
+ seq_sep_none ( ) ) { |p|
180
181
let attrs = p. parse_outer_attributes ( ) ;
181
182
let flo = p. span . lo ;
182
183
let pur = p. parse_fn_purity ( ) ;
@@ -186,7 +187,7 @@ class parser {
186
187
self . expect ( token:: SEMI ) ;
187
188
{ ident: ident, attrs: attrs, decl : { purity : pur with d} , tps: tps,
188
189
span: mk_sp ( flo, fhi) }
189
- } ) . node
190
+ }
190
191
}
191
192
192
193
fn parse_mt ( ) -> mt {
@@ -241,21 +242,21 @@ class parser {
241
242
fn parse_ty_constr ( fn_args : [ arg ] ) -> @constr {
242
243
let lo = self . span . lo ;
243
244
let path = self . parse_path_without_tps ( ) ;
244
- let args: { node : [ @ constr_arg ] , span : span } =
245
- self . parse_seq ( token:: LPAREN , token:: RPAREN ,
246
- seq_sep ( token:: COMMA ) ,
247
- { |p| p. parse_constr_arg ( fn_args) } ) ;
248
- ret @spanned ( lo, args . span . hi ,
249
- { path: path, args: args. node , id: self . get_id ( ) } ) ;
245
+ let args =
246
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
247
+ seq_sep ( token:: COMMA ) ,
248
+ { |p| p. parse_constr_arg ( fn_args) } ) ;
249
+ ret @spanned ( lo, self . span . hi ,
250
+ { path: path, args: args, id: self . get_id ( ) } ) ;
250
251
}
251
252
252
253
fn parse_constr_in_type ( ) -> @ty_constr {
253
254
let lo = self . span . lo ;
254
255
let path = self . parse_path_without_tps ( ) ;
255
256
let args: [ @ty_constr_arg ] =
256
- self . parse_seq ( token:: LPAREN , token:: RPAREN ,
257
- seq_sep ( token:: COMMA ) ,
258
- { |p| p. parse_type_constr_arg ( ) } ) . node ;
257
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
258
+ seq_sep ( token:: COMMA ) ,
259
+ { |p| p. parse_type_constr_arg ( ) } ) ;
259
260
let hi = self . span . lo ;
260
261
let tc: ty_constr_ = { path: path, args: args, id: self . get_id ( ) } ;
261
262
ret @spanned ( lo, hi, tc) ;
@@ -370,15 +371,15 @@ class parser {
370
371
self . bump ( ) ;
371
372
ty_ptr ( self . parse_mt ( ) )
372
373
} else if self . token == token:: LBRACE {
373
- let elems = self . parse_seq ( token:: LBRACE , token:: RBRACE ,
374
- seq_sep_opt ( token:: COMMA ) ,
375
- { |p| p. parse_ty_field ( ) } ) ;
376
- if vec:: len ( elems. node ) == 0 u {
374
+ let elems = self . parse_unspanned_seq ( token:: LBRACE , token:: RBRACE ,
375
+ seq_sep_opt ( token:: COMMA ) ,
376
+ { |p| p. parse_ty_field ( ) } ) ;
377
+ if vec:: len ( elems) == 0 u {
377
378
self . unexpected_last ( token:: RBRACE ) ;
378
379
}
379
- let hi = elems . span . hi ;
380
+ let hi = self . span . hi ;
380
381
381
- let t = ty_rec ( elems. node ) ;
382
+ let t = ty_rec ( elems) ;
382
383
if self . token == token:: COLON {
383
384
self . bump ( ) ;
384
385
ty_constr ( @{ id: self . get_id ( ) ,
@@ -813,11 +814,11 @@ class parser {
813
814
ex = ex_ext. node ;
814
815
} else if self . eat_keyword ( "bind" ) {
815
816
let e = self . parse_expr_res ( RESTRICT_NO_CALL_EXPRS ) ;
816
- let es = self . parse_seq ( token:: LPAREN , token:: RPAREN ,
817
- seq_sep ( token:: COMMA ) ,
818
- { |p| p. parse_expr_or_hole ( ) } ) ;
819
- hi = es . span . hi ;
820
- ex = expr_bind ( e, es. node ) ;
817
+ let es = self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
818
+ seq_sep ( token:: COMMA ) ,
819
+ { |p| p. parse_expr_or_hole ( ) } ) ;
820
+ hi = self . span . hi ;
821
+ ex = expr_bind ( e, es) ;
821
822
} else if self . eat_keyword ( "fail" ) {
822
823
if can_begin_expr ( self . token ) {
823
824
let e = self . parse_expr ( ) ;
@@ -920,37 +921,37 @@ class parser {
920
921
let sep = seq_sep ( token:: COMMA ) ;
921
922
let mut e = none;
922
923
if ( self . token == token:: LPAREN || self . token == token:: LBRACKET ) {
924
+ let lo = self . span . lo ;
923
925
let es =
924
926
if self . token == token:: LPAREN {
925
- self . parse_seq ( token:: LPAREN , token:: RPAREN ,
926
- sep, { |p| p. parse_expr ( ) } )
927
- } else {
928
- self . parse_seq ( token:: LBRACKET , token:: RBRACKET ,
929
- sep, { |p| p. parse_expr ( ) } )
930
- } ;
931
- let hi = es. span . hi ;
932
- e = some ( self . mk_expr ( es. span . lo , hi,
933
- expr_vec ( es. node , m_imm) ) ) ;
934
- }
935
- let mut b = none;
936
- if self . token == token:: LBRACE {
937
- self . bump ( ) ;
938
- let lo = self . span . lo ;
939
- let mut depth = 1 u;
940
- while ( depth > 0 u) {
941
- alt ( self . token ) {
942
- token:: LBRACE { depth += 1 u; }
943
- token:: RBRACE { depth -= 1 u; }
944
- token:: EOF { self. fatal ( "unexpected EOF in macro body" ) ; }
945
- _ { }
946
- }
927
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
928
+ sep, { |p| p. parse_expr ( ) } )
929
+ } else {
930
+ self . parse_unspanned_seq ( token:: LBRACKET , token:: RBRACKET ,
931
+ sep, { |p| p. parse_expr ( ) } )
932
+ } ;
933
+ let hi = self . span . hi ;
934
+ e = some ( self . mk_expr ( lo, hi, expr_vec ( es, m_imm) ) ) ;
935
+ }
936
+ let mut b = none;
937
+ if self . token == token:: LBRACE {
947
938
self . bump ( ) ;
939
+ let lo = self . span . lo ;
940
+ let mut depth = 1 u;
941
+ while ( depth > 0 u) {
942
+ alt ( self . token ) {
943
+ token:: LBRACE { depth += 1 u; }
944
+ token:: RBRACE { depth -= 1 u; }
945
+ token:: EOF { self. fatal ( "unexpected EOF in macro body" ) ; }
946
+ _ { }
947
+ }
948
+ self . bump ( ) ;
949
+ }
950
+ let hi = self . last_span . lo ;
951
+ b = some ( { span: mk_sp ( lo, hi) } ) ;
948
952
}
949
- let hi = self . last_span . lo ;
950
- b = some ( { span: mk_sp ( lo, hi) } ) ;
953
+ ret self. mk_mac_expr ( lo, self . span . hi , mac_invoc ( pth, e, b) ) ;
951
954
}
952
- ret self. mk_mac_expr ( lo, self . span . hi , mac_invoc ( pth, e, b) ) ;
953
- }
954
955
955
956
fn parse_dot_or_call_expr ( ) -> pexpr {
956
957
let b = self . parse_bottom_expr ( ) ;
@@ -989,16 +990,17 @@ class parser {
989
990
alt copy self . token {
990
991
// expr(...)
991
992
token:: LPAREN if self . permits_call ( ) {
992
- let es_opt = self . parse_seq ( token:: LPAREN , token:: RPAREN ,
993
- seq_sep ( token:: COMMA ) ,
994
- { |p| p. parse_expr_or_hole ( ) } ) ;
995
- hi = es_opt. span . hi ;
993
+ let es_opt =
994
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
995
+ seq_sep ( token:: COMMA ) ,
996
+ { |p| p. parse_expr_or_hole ( ) } ) ;
997
+ hi = self . span . hi ;
996
998
997
999
let nd =
998
- if vec:: any ( es_opt. node , { |e| option:: is_none ( e) } ) {
999
- expr_bind ( self . to_expr ( e) , es_opt. node )
1000
+ if vec:: any ( es_opt, { |e| option:: is_none ( e) } ) {
1001
+ expr_bind ( self . to_expr ( e) , es_opt)
1000
1002
} else {
1001
- let es = vec:: map ( es_opt. node ) { |e| option:: get ( e) } ;
1003
+ let es = vec:: map ( es_opt) { |e| option:: get ( e) } ;
1002
1004
expr_call ( self . to_expr ( e) , es, false )
1003
1005
} ;
1004
1006
e = self . mk_pexpr ( lo, hi, nd) ;
@@ -1458,11 +1460,12 @@ class parser {
1458
1460
self . expect ( token:: RPAREN ) ;
1459
1461
}
1460
1462
_ {
1461
- let a = self . parse_seq ( token:: LPAREN , token:: RPAREN ,
1462
- seq_sep ( token:: COMMA ) ,
1463
- { |p| p. parse_pat ( ) } ) ;
1464
- args = a. node ;
1465
- hi = a. span . hi ;
1463
+ args =
1464
+ self . parse_unspanned_seq ( token:: LPAREN ,
1465
+ token:: RPAREN ,
1466
+ seq_sep ( token:: COMMA ) ,
1467
+ { |p| p. parse_pat ( ) } ) ;
1468
+ hi = self . span . hi ;
1466
1469
}
1467
1470
}
1468
1471
}
@@ -1761,8 +1764,8 @@ class parser {
1761
1764
-> ( fn_decl , capture_clause ) {
1762
1765
1763
1766
let args_or_capture_items: [ arg_or_capture_item ] =
1764
- self . parse_seq ( token:: LPAREN , token:: RPAREN ,
1765
- seq_sep ( token:: COMMA ) , parse_arg_fn) . node ;
1767
+ self . parse_unspanned_seq ( token:: LPAREN , token:: RPAREN ,
1768
+ seq_sep ( token:: COMMA ) , parse_arg_fn) ;
1766
1769
1767
1770
let inputs = either:: lefts ( args_or_capture_items) ;
1768
1771
let capture_clause = @either:: rights ( args_or_capture_items) ;
@@ -1788,9 +1791,10 @@ class parser {
1788
1791
if self . eat ( token:: OROR ) {
1789
1792
[ ]
1790
1793
} else {
1791
- self . parse_seq ( token:: BINOP ( token:: OR ) ,
1792
- token:: BINOP ( token:: OR ) , seq_sep ( token:: COMMA ) ,
1793
- { |p| p. parse_fn_block_arg ( ) } ) . node
1794
+ self . parse_unspanned_seq ( token:: BINOP ( token:: OR ) ,
1795
+ token:: BINOP ( token:: OR ) ,
1796
+ seq_sep ( token:: COMMA ) ,
1797
+ { |p| p. parse_fn_block_arg ( ) } )
1794
1798
}
1795
1799
} ;
1796
1800
let output = if self . eat ( token:: RARROW ) {
@@ -2242,10 +2246,12 @@ class parser {
2242
2246
let mut args = [ ] , disr_expr = none;
2243
2247
if self . token == token:: LPAREN {
2244
2248
all_nullary = false ;
2245
- let arg_tys = self . parse_seq ( token:: LPAREN , token:: RPAREN ,
2249
+ let arg_tys =
2250
+ self . parse_unspanned_seq ( token:: LPAREN ,
2251
+ token:: RPAREN ,
2246
2252
seq_sep ( token:: COMMA ) ,
2247
2253
{ |p| p. parse_ty ( false ) } ) ;
2248
- for arg_tys. node . each { |ty|
2254
+ for arg_tys. each { |ty|
2249
2255
args += [ { ty : ty, id : self . get_id( ) } ] ;
2250
2256
}
2251
2257
} else if self . eat ( token:: EQ ) {
@@ -2385,9 +2391,10 @@ class parser {
2385
2391
// foo::bar::{a,b,c}
2386
2392
token:: LBRACE {
2387
2393
let idents =
2388
- self . parse_seq ( token:: LBRACE , token:: RBRACE ,
2389
- seq_sep ( token:: COMMA ) ,
2390
- { |p| p. parse_path_list_ident ( ) } ) . node ;
2394
+ self . parse_unspanned_seq ( token:: LBRACE , token:: RBRACE ,
2395
+ seq_sep ( token:: COMMA ) ,
2396
+ { |p|
2397
+ p. parse_path_list_ident ( ) } ) ;
2391
2398
let path = @{ span: mk_sp ( lo, self . span . hi ) ,
2392
2399
global: false , idents: path,
2393
2400
rp: none, types: [ ] } ;
0 commit comments