@@ -71,7 +71,7 @@ use parse::attr::ParserAttr;
71
71
use parse:: classify;
72
72
use parse:: common:: { SeqSep , seq_sep_none, seq_sep_trailing_allowed} ;
73
73
use parse:: lexer:: { Reader , TokenAndSpan } ;
74
- use parse:: obsolete:: * ;
74
+ use parse:: obsolete:: { ParserObsoleteMethods , ObsoleteSyntax } ;
75
75
use parse:: token:: { self , MatchNt , SubstNt , SpecialVarNt , InternedString } ;
76
76
use parse:: token:: { keywords, special_idents, SpecialMacroVar } ;
77
77
use parse:: { new_sub_parser_from_file, ParseSess } ;
@@ -1404,22 +1404,6 @@ impl<'a> Parser<'a> {
1404
1404
MutTy { ty : t, mutbl : mutbl }
1405
1405
}
1406
1406
1407
- /// Parse [mut/const/imm] ID : TY
1408
- /// now used only by obsolete record syntax parser...
1409
- pub fn parse_ty_field ( & mut self ) -> TypeField {
1410
- let lo = self . span . lo ;
1411
- let mutbl = self . parse_mutability ( ) ;
1412
- let id = self . parse_ident ( ) ;
1413
- self . expect ( & token:: Colon ) ;
1414
- let ty = self . parse_ty_sum ( ) ;
1415
- let hi = ty. span . hi ;
1416
- ast:: TypeField {
1417
- ident : id,
1418
- mt : MutTy { ty : ty, mutbl : mutbl } ,
1419
- span : mk_sp ( lo, hi) ,
1420
- }
1421
- }
1422
-
1423
1407
/// Parse optional return type [ -> TY ] in function decl
1424
1408
pub fn parse_ret_ty ( & mut self ) -> FunctionRetTy {
1425
1409
if self . eat ( & token:: RArrow ) {
@@ -1506,17 +1490,6 @@ impl<'a> Parser<'a> {
1506
1490
} else {
1507
1491
TyTup ( ts)
1508
1492
}
1509
- } else if self . token == token:: Tilde {
1510
- // OWNED POINTER
1511
- self . bump ( ) ;
1512
- let last_span = self . last_span ;
1513
- match self . token {
1514
- token:: OpenDelim ( token:: Bracket ) => {
1515
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedVector )
1516
- }
1517
- _ => self . obsolete ( last_span, ObsoleteSyntax :: OwnedType )
1518
- }
1519
- TyTup ( vec ! [ self . parse_ty( ) ] )
1520
1493
} else if self . check ( & token:: BinOp ( token:: Star ) ) {
1521
1494
// STAR POINTER (bare pointer?)
1522
1495
self . bump ( ) ;
@@ -2830,20 +2803,6 @@ impl<'a> Parser<'a> {
2830
2803
hi = e. span . hi ;
2831
2804
ex = ExprAddrOf ( m, e) ;
2832
2805
}
2833
- token:: Tilde => {
2834
- self . bump ( ) ;
2835
- let last_span = self . last_span ;
2836
- match self . token {
2837
- token:: OpenDelim ( token:: Bracket ) => {
2838
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedVector )
2839
- } ,
2840
- _ => self . obsolete ( last_span, ObsoleteSyntax :: OwnedExpr )
2841
- }
2842
-
2843
- let e = self . parse_prefix_expr ( ) ;
2844
- hi = e. span . hi ;
2845
- ex = self . mk_unary ( UnUniq , e) ;
2846
- }
2847
2806
token:: DotDot if !self . restrictions . contains ( RESTRICTION_NO_DOTS ) => {
2848
2807
// A range, closed above: `..expr`.
2849
2808
self . bump ( ) ;
@@ -3249,10 +3208,6 @@ impl<'a> Parser<'a> {
3249
3208
span : self . span ,
3250
3209
} ) ) ;
3251
3210
before_slice = false ;
3252
- } else {
3253
- let _ = self . parse_pat ( ) ;
3254
- let span = self . span ;
3255
- self . obsolete ( span, ObsoleteSyntax :: SubsliceMatch ) ;
3256
3211
}
3257
3212
continue
3258
3213
}
@@ -3361,20 +3316,6 @@ impl<'a> Parser<'a> {
3361
3316
span : mk_sp ( lo, hi)
3362
3317
} )
3363
3318
}
3364
- token:: Tilde => {
3365
- // parse ~pat
3366
- self . bump ( ) ;
3367
- let sub = self . parse_pat ( ) ;
3368
- pat = PatBox ( sub) ;
3369
- let last_span = self . last_span ;
3370
- hi = last_span. hi ;
3371
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedPattern ) ;
3372
- return P ( ast:: Pat {
3373
- id : ast:: DUMMY_NODE_ID ,
3374
- node : pat,
3375
- span : mk_sp ( lo, hi)
3376
- } )
3377
- }
3378
3319
token:: BinOp ( token:: And ) | token:: AndAnd => {
3379
3320
// parse &pat and &mut pat
3380
3321
let lo = self . span . lo ;
@@ -4483,16 +4424,6 @@ impl<'a> Parser<'a> {
4483
4424
self_ident_hi = self . last_span . hi ;
4484
4425
eself
4485
4426
}
4486
- token:: Tilde => {
4487
- // We need to make sure it isn't a type
4488
- if self . look_ahead ( 1 , |t| t. is_keyword ( keywords:: Self ) ) {
4489
- self . bump ( ) ;
4490
- drop ( self . expect_self_ident ( ) ) ;
4491
- let last_span = self . last_span ;
4492
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedSelf )
4493
- }
4494
- SelfStatic
4495
- }
4496
4427
token:: BinOp ( token:: Star ) => {
4497
4428
// Possibly "*self" or "*mut self" -- not supported. Try to avoid
4498
4429
// emitting cryptic "unexpected token" errors.
@@ -4533,15 +4464,6 @@ impl<'a> Parser<'a> {
4533
4464
} else {
4534
4465
SelfValue ( self_ident)
4535
4466
}
4536
- } else if self . token . is_mutability ( ) &&
4537
- self . look_ahead ( 1 , |t| * t == token:: Tilde ) &&
4538
- self . look_ahead ( 2 , |t| t. is_keyword ( keywords:: Self ) ) {
4539
- mutbl_self = self . parse_mutability ( ) ;
4540
- self . bump ( ) ;
4541
- drop ( self . expect_self_ident ( ) ) ;
4542
- let last_span = self . last_span ;
4543
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedSelf ) ;
4544
- SelfStatic
4545
4467
} else {
4546
4468
SelfStatic
4547
4469
}
@@ -5422,13 +5344,7 @@ impl<'a> Parser<'a> {
5422
5344
let ( maybe_path, ident) = match self . token {
5423
5345
token:: Ident ( ..) => {
5424
5346
let the_ident = self . parse_ident ( ) ;
5425
- let path = if self . token == token:: Eq {
5426
- self . bump ( ) ;
5427
- let path = self . parse_str ( ) ;
5428
- let span = self . span ;
5429
- self . obsolete ( span, ObsoleteSyntax :: ExternCrateRenaming ) ;
5430
- Some ( path)
5431
- } else if self . eat_keyword ( keywords:: As ) {
5347
+ let path = if self . eat_keyword ( keywords:: As ) {
5432
5348
// skip the ident if there is one
5433
5349
if self . token . is_ident ( ) { self . bump ( ) ; }
5434
5350
@@ -5698,17 +5614,7 @@ impl<'a> Parser<'a> {
5698
5614
}
5699
5615
// either a view item or an item:
5700
5616
if self . eat_keyword ( keywords:: Extern ) {
5701
- let next_is_mod = self . eat_keyword ( keywords:: Mod ) ;
5702
-
5703
- if next_is_mod || self . eat_keyword ( keywords:: Crate ) {
5704
- if next_is_mod {
5705
- let last_span = self . last_span ;
5706
- self . span_err ( mk_sp ( lo, last_span. hi ) ,
5707
- & format ! ( "`extern mod` is obsolete, use \
5708
- `extern crate` instead \
5709
- to refer to external \
5710
- crates.") [ ] )
5711
- }
5617
+ if self . eat_keyword ( keywords:: Crate ) {
5712
5618
return self . parse_item_extern_crate ( lo, visibility, attrs) ;
5713
5619
}
5714
5620
@@ -6075,35 +5981,7 @@ impl<'a> Parser<'a> {
6075
5981
6076
5982
let first_ident = self . parse_ident ( ) ;
6077
5983
let mut path = vec ! ( first_ident) ;
6078
- match self . token {
6079
- token:: Eq => {
6080
- // x = foo::bar
6081
- self . bump ( ) ;
6082
- let path_lo = self . span . lo ;
6083
- path = vec ! ( self . parse_ident( ) ) ;
6084
- while self . check ( & token:: ModSep ) {
6085
- self . bump ( ) ;
6086
- let id = self . parse_ident ( ) ;
6087
- path. push ( id) ;
6088
- }
6089
- let span = mk_sp ( path_lo, self . span . hi ) ;
6090
- self . obsolete ( span, ObsoleteSyntax :: ImportRenaming ) ;
6091
- let path = ast:: Path {
6092
- span : span,
6093
- global : false ,
6094
- segments : path. into_iter ( ) . map ( |identifier| {
6095
- ast:: PathSegment {
6096
- identifier : identifier,
6097
- parameters : ast:: PathParameters :: none ( ) ,
6098
- }
6099
- } ) . collect ( )
6100
- } ;
6101
- return P ( spanned ( lo, self . span . hi ,
6102
- ViewPathSimple ( first_ident, path,
6103
- ast:: DUMMY_NODE_ID ) ) ) ;
6104
- }
6105
-
6106
- token:: ModSep => {
5984
+ if let token:: ModSep = self . token {
6107
5985
// foo::bar or foo::{a,b,c} or foo::*
6108
5986
while self . check ( & token:: ModSep ) {
6109
5987
self . bump ( ) ;
@@ -6156,8 +6034,6 @@ impl<'a> Parser<'a> {
6156
6034
_ => break
6157
6035
}
6158
6036
}
6159
- }
6160
- _ => ( )
6161
6037
}
6162
6038
let mut rename_to = path[ path. len ( ) - 1 u] ;
6163
6039
let path = ast:: Path {
0 commit comments