Skip to content

Commit 21a2df6

Browse files
committed
Remove old obsolete syntax errors
1 parent 896cb36 commit 21a2df6

File tree

2 files changed

+4
-168
lines changed

2 files changed

+4
-168
lines changed

src/libsyntax/parse/obsolete.rs

Lines changed: 0 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,6 @@ use ptr::P;
2424
pub enum ObsoleteSyntax {
2525
Sized,
2626
ForSized,
27-
OwnedType,
28-
OwnedExpr,
29-
OwnedPattern,
30-
OwnedVector,
31-
OwnedSelf,
32-
ImportRenaming,
33-
SubsliceMatch,
34-
ExternCrateRenaming,
3527
ProcType,
3628
ProcExpr,
3729
ClosureType,
@@ -69,38 +61,6 @@ impl<'a> ParserObsoleteMethods for parser::Parser<'a> {
6961
"`proc` expression",
7062
"use a `move ||` expression instead",
7163
),
72-
ObsoleteSyntax::OwnedType => (
73-
"`~` notation for owned pointers",
74-
"use `Box<T>` in `std::owned` instead"
75-
),
76-
ObsoleteSyntax::OwnedExpr => (
77-
"`~` notation for owned pointer allocation",
78-
"use the `box` operator instead of `~`"
79-
),
80-
ObsoleteSyntax::OwnedPattern => (
81-
"`~` notation for owned pointer patterns",
82-
"use the `box` operator instead of `~`"
83-
),
84-
ObsoleteSyntax::OwnedVector => (
85-
"`~[T]` is no longer a type",
86-
"use the `Vec` type instead"
87-
),
88-
ObsoleteSyntax::OwnedSelf => (
89-
"`~self` is no longer supported",
90-
"write `self: Box<Self>` instead"
91-
),
92-
ObsoleteSyntax::ImportRenaming => (
93-
"`use foo = bar` syntax",
94-
"write `use bar as foo` instead"
95-
),
96-
ObsoleteSyntax::SubsliceMatch => (
97-
"subslice match syntax",
98-
"instead of `..xs`, write `xs..` in a pattern"
99-
),
100-
ObsoleteSyntax::ExternCrateRenaming => (
101-
"`extern crate foo = bar` syntax",
102-
"write `extern crate bar as foo` instead"
103-
),
10464
ObsoleteSyntax::ClosureType => (
10565
"`|uint| -> bool` closure type syntax",
10666
"use unboxed closures instead, no type annotation needed"

src/libsyntax/parse/parser.rs

Lines changed: 4 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ use parse::attr::ParserAttr;
7171
use parse::classify;
7272
use parse::common::{SeqSep, seq_sep_none, seq_sep_trailing_allowed};
7373
use parse::lexer::{Reader, TokenAndSpan};
74-
use parse::obsolete::*;
74+
use parse::obsolete::{ParserObsoleteMethods, ObsoleteSyntax};
7575
use parse::token::{self, MatchNt, SubstNt, SpecialVarNt, InternedString};
7676
use parse::token::{keywords, special_idents, SpecialMacroVar};
7777
use 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() - 1u];
61336009
let path = ast::Path {

0 commit comments

Comments
 (0)