@@ -71,7 +71,7 @@ use parse::attr::ParserAttr;
7171use parse:: classify;
7272use parse:: common:: { SeqSep , seq_sep_none, seq_sep_trailing_allowed} ;
7373use parse:: lexer:: { Reader , TokenAndSpan } ;
74- use parse:: obsolete:: * ;
74+ use parse:: obsolete:: { ParserObsoleteMethods , ObsoleteSyntax } ;
7575use parse:: token:: { self , MatchNt , SubstNt , SpecialVarNt , InternedString } ;
7676use parse:: token:: { keywords, special_idents, SpecialMacroVar } ;
7777use parse:: { new_sub_parser_from_file, ParseSess } ;
@@ -1404,22 +1404,6 @@ impl<'a> Parser<'a> {
14041404 MutTy { ty : t, mutbl : mutbl }
14051405 }
14061406
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-
14231407 /// Parse optional return type [ -> TY ] in function decl
14241408 pub fn parse_ret_ty ( & mut self ) -> FunctionRetTy {
14251409 if self . eat ( & token:: RArrow ) {
@@ -1506,17 +1490,6 @@ impl<'a> Parser<'a> {
15061490 } else {
15071491 TyTup ( ts)
15081492 }
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( ) ] )
15201493 } else if self . check ( & token:: BinOp ( token:: Star ) ) {
15211494 // STAR POINTER (bare pointer?)
15221495 self . bump ( ) ;
@@ -2800,20 +2773,6 @@ impl<'a> Parser<'a> {
28002773 hi = e. span . hi ;
28012774 ex = ExprAddrOf ( m, e) ;
28022775 }
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- }
28172776 token:: DotDot if !self . restrictions . contains ( RESTRICTION_NO_DOTS ) => {
28182777 // A range, closed above: `..expr`.
28192778 self . bump ( ) ;
@@ -3219,10 +3178,6 @@ impl<'a> Parser<'a> {
32193178 span : self . span ,
32203179 } ) ) ;
32213180 before_slice = false ;
3222- } else {
3223- let _ = self . parse_pat ( ) ;
3224- let span = self . span ;
3225- self . obsolete ( span, ObsoleteSyntax :: SubsliceMatch ) ;
32263181 }
32273182 continue
32283183 }
@@ -3331,20 +3286,6 @@ impl<'a> Parser<'a> {
33313286 span : mk_sp ( lo, hi)
33323287 } )
33333288 }
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- }
33483289 token:: BinOp ( token:: And ) | token:: AndAnd => {
33493290 // parse &pat and &mut pat
33503291 let lo = self . span . lo ;
@@ -4453,16 +4394,6 @@ impl<'a> Parser<'a> {
44534394 self_ident_hi = self . last_span . hi ;
44544395 eself
44554396 }
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- }
44664397 token:: BinOp ( token:: Star ) => {
44674398 // Possibly "*self" or "*mut self" -- not supported. Try to avoid
44684399 // emitting cryptic "unexpected token" errors.
@@ -4503,15 +4434,6 @@ impl<'a> Parser<'a> {
45034434 } else {
45044435 SelfValue ( self_ident)
45054436 }
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
45154437 } else {
45164438 SelfStatic
45174439 }
@@ -5392,13 +5314,7 @@ impl<'a> Parser<'a> {
53925314 let ( maybe_path, ident) = match self . token {
53935315 token:: Ident ( ..) => {
53945316 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 ) {
54025318 // skip the ident if there is one
54035319 if self . token . is_ident ( ) { self . bump ( ) ; }
54045320
@@ -5668,17 +5584,7 @@ impl<'a> Parser<'a> {
56685584 }
56695585 // either a view item or an item:
56705586 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 ) {
56825588 return self . parse_item_extern_crate ( lo, visibility, attrs) ;
56835589 }
56845590
@@ -6045,35 +5951,7 @@ impl<'a> Parser<'a> {
60455951
60465952 let first_ident = self . parse_ident ( ) ;
60475953 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 {
60775955 // foo::bar or foo::{a,b,c} or foo::*
60785956 while self . check ( & token:: ModSep ) {
60795957 self . bump ( ) ;
@@ -6126,8 +6004,6 @@ impl<'a> Parser<'a> {
61266004 _ => break
61276005 }
61286006 }
6129- }
6130- _ => ( )
61316007 }
61326008 let mut rename_to = path[ path. len ( ) - 1 u] ;
61336009 let path = ast:: Path {
0 commit comments