@@ -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 ( ) ;
@@ -2800,20 +2773,6 @@ impl<'a> Parser<'a> {
2800
2773
hi = e. span . hi ;
2801
2774
ex = ExprAddrOf ( m, e) ;
2802
2775
}
2803
- token:: Tilde => {
2804
- self . bump ( ) ;
2805
- let last_span = self . last_span ;
2806
- match self . token {
2807
- token:: OpenDelim ( token:: Bracket ) => {
2808
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedVector )
2809
- } ,
2810
- _ => self . obsolete ( last_span, ObsoleteSyntax :: OwnedExpr )
2811
- }
2812
-
2813
- let e = self . parse_prefix_expr ( ) ;
2814
- hi = e. span . hi ;
2815
- ex = self . mk_unary ( UnUniq , e) ;
2816
- }
2817
2776
token:: DotDot if !self . restrictions . contains ( RESTRICTION_NO_DOTS ) => {
2818
2777
// A range, closed above: `..expr`.
2819
2778
self . bump ( ) ;
@@ -3219,10 +3178,6 @@ impl<'a> Parser<'a> {
3219
3178
span : self . span ,
3220
3179
} ) ) ;
3221
3180
before_slice = false ;
3222
- } else {
3223
- let _ = self . parse_pat ( ) ;
3224
- let span = self . span ;
3225
- self . obsolete ( span, ObsoleteSyntax :: SubsliceMatch ) ;
3226
3181
}
3227
3182
continue
3228
3183
}
@@ -3331,20 +3286,6 @@ impl<'a> Parser<'a> {
3331
3286
span : mk_sp ( lo, hi)
3332
3287
} )
3333
3288
}
3334
- token:: Tilde => {
3335
- // parse ~pat
3336
- self . bump ( ) ;
3337
- let sub = self . parse_pat ( ) ;
3338
- pat = PatBox ( sub) ;
3339
- let last_span = self . last_span ;
3340
- hi = last_span. hi ;
3341
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedPattern ) ;
3342
- return P ( ast:: Pat {
3343
- id : ast:: DUMMY_NODE_ID ,
3344
- node : pat,
3345
- span : mk_sp ( lo, hi)
3346
- } )
3347
- }
3348
3289
token:: BinOp ( token:: And ) | token:: AndAnd => {
3349
3290
// parse &pat and &mut pat
3350
3291
let lo = self . span . lo ;
@@ -4453,16 +4394,6 @@ impl<'a> Parser<'a> {
4453
4394
self_ident_hi = self . last_span . hi ;
4454
4395
eself
4455
4396
}
4456
- token:: Tilde => {
4457
- // We need to make sure it isn't a type
4458
- if self . look_ahead ( 1 , |t| t. is_keyword ( keywords:: Self ) ) {
4459
- self . bump ( ) ;
4460
- drop ( self . expect_self_ident ( ) ) ;
4461
- let last_span = self . last_span ;
4462
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedSelf )
4463
- }
4464
- SelfStatic
4465
- }
4466
4397
token:: BinOp ( token:: Star ) => {
4467
4398
// Possibly "*self" or "*mut self" -- not supported. Try to avoid
4468
4399
// emitting cryptic "unexpected token" errors.
@@ -4503,15 +4434,6 @@ impl<'a> Parser<'a> {
4503
4434
} else {
4504
4435
SelfValue ( self_ident)
4505
4436
}
4506
- } else if self . token . is_mutability ( ) &&
4507
- self . look_ahead ( 1 , |t| * t == token:: Tilde ) &&
4508
- self . look_ahead ( 2 , |t| t. is_keyword ( keywords:: Self ) ) {
4509
- mutbl_self = self . parse_mutability ( ) ;
4510
- self . bump ( ) ;
4511
- drop ( self . expect_self_ident ( ) ) ;
4512
- let last_span = self . last_span ;
4513
- self . obsolete ( last_span, ObsoleteSyntax :: OwnedSelf ) ;
4514
- SelfStatic
4515
4437
} else {
4516
4438
SelfStatic
4517
4439
}
@@ -5392,13 +5314,7 @@ impl<'a> Parser<'a> {
5392
5314
let ( maybe_path, ident) = match self . token {
5393
5315
token:: Ident ( ..) => {
5394
5316
let the_ident = self . parse_ident ( ) ;
5395
- let path = if self . token == token:: Eq {
5396
- self . bump ( ) ;
5397
- let path = self . parse_str ( ) ;
5398
- let span = self . span ;
5399
- self . obsolete ( span, ObsoleteSyntax :: ExternCrateRenaming ) ;
5400
- Some ( path)
5401
- } else if self . eat_keyword ( keywords:: As ) {
5317
+ let path = if self . eat_keyword ( keywords:: As ) {
5402
5318
// skip the ident if there is one
5403
5319
if self . token . is_ident ( ) { self . bump ( ) ; }
5404
5320
@@ -5668,17 +5584,7 @@ impl<'a> Parser<'a> {
5668
5584
}
5669
5585
// either a view item or an item:
5670
5586
if self . eat_keyword ( keywords:: Extern ) {
5671
- let next_is_mod = self . eat_keyword ( keywords:: Mod ) ;
5672
-
5673
- if next_is_mod || self . eat_keyword ( keywords:: Crate ) {
5674
- if next_is_mod {
5675
- let last_span = self . last_span ;
5676
- self . span_err ( mk_sp ( lo, last_span. hi ) ,
5677
- & format ! ( "`extern mod` is obsolete, use \
5678
- `extern crate` instead \
5679
- to refer to external \
5680
- crates.") [ ] )
5681
- }
5587
+ if self . eat_keyword ( keywords:: Crate ) {
5682
5588
return self . parse_item_extern_crate ( lo, visibility, attrs) ;
5683
5589
}
5684
5590
@@ -6045,35 +5951,7 @@ impl<'a> Parser<'a> {
6045
5951
6046
5952
let first_ident = self . parse_ident ( ) ;
6047
5953
let mut path = vec ! ( first_ident) ;
6048
- match self . token {
6049
- token:: Eq => {
6050
- // x = foo::bar
6051
- self . bump ( ) ;
6052
- let path_lo = self . span . lo ;
6053
- path = vec ! ( self . parse_ident( ) ) ;
6054
- while self . check ( & token:: ModSep ) {
6055
- self . bump ( ) ;
6056
- let id = self . parse_ident ( ) ;
6057
- path. push ( id) ;
6058
- }
6059
- let span = mk_sp ( path_lo, self . span . hi ) ;
6060
- self . obsolete ( span, ObsoleteSyntax :: ImportRenaming ) ;
6061
- let path = ast:: Path {
6062
- span : span,
6063
- global : false ,
6064
- segments : path. into_iter ( ) . map ( |identifier| {
6065
- ast:: PathSegment {
6066
- identifier : identifier,
6067
- parameters : ast:: PathParameters :: none ( ) ,
6068
- }
6069
- } ) . collect ( )
6070
- } ;
6071
- return P ( spanned ( lo, self . span . hi ,
6072
- ViewPathSimple ( first_ident, path,
6073
- ast:: DUMMY_NODE_ID ) ) ) ;
6074
- }
6075
-
6076
- token:: ModSep => {
5954
+ if let token:: ModSep = self . token {
6077
5955
// foo::bar or foo::{a,b,c} or foo::*
6078
5956
while self . check ( & token:: ModSep ) {
6079
5957
self . bump ( ) ;
@@ -6126,8 +6004,6 @@ impl<'a> Parser<'a> {
6126
6004
_ => break
6127
6005
}
6128
6006
}
6129
- }
6130
- _ => ( )
6131
6007
}
6132
6008
let mut rename_to = path[ path. len ( ) - 1 u] ;
6133
6009
let path = ast:: Path {
0 commit comments