Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Remove parsing of obsolete pre-1.0 syntaxes
  • Loading branch information
petrochenkov committed Sep 13, 2016
1 parent 03161e9 commit b57f109
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 62 deletions.
15 changes: 3 additions & 12 deletions src/libsyntax/parse/obsolete.rs
Expand Up @@ -19,8 +19,7 @@ use parse::parser;
/// The specific types of unsupported syntax
#[derive(Copy, Clone, PartialEq, Eq, Hash)]
pub enum ObsoleteSyntax {
ClosureKind,
ExternCrateString,
// Nothing here at the moment
}

pub trait ParserObsoleteMethods {
Expand All @@ -36,18 +35,10 @@ pub trait ParserObsoleteMethods {

impl<'a> ParserObsoleteMethods for parser::Parser<'a> {
/// Reports an obsolete syntax non-fatal error.
#[allow(unused_variables)]
fn obsolete(&mut self, sp: Span, kind: ObsoleteSyntax) {
let (kind_str, desc, error) = match kind {
ObsoleteSyntax::ClosureKind => (
"`:`, `&mut:`, or `&:`",
"rely on inference instead",
true,
),
ObsoleteSyntax::ExternCrateString => (
"\"crate-name\"",
"use an identifier not in quotes instead",
false, // warning for now
),
// Nothing here at the moment
};

self.report(sp, kind, kind_str, desc, error);
Expand Down
33 changes: 1 addition & 32 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -47,7 +47,7 @@ use parse;
use parse::classify;
use parse::common::SeqSep;
use parse::lexer::{Reader, TokenAndSpan};
use parse::obsolete::{ParserObsoleteMethods, ObsoleteSyntax};
use parse::obsolete::ObsoleteSyntax;
use parse::token::{self, intern, MatchNt, SubstNt, SpecialVarNt, InternedString};
use parse::token::{keywords, SpecialMacroVar};
use parse::{new_sub_parser_from_file, ParseSess};
Expand Down Expand Up @@ -1165,36 +1165,6 @@ impl<'a> Parser<'a> {
})))
}

/// Parses an obsolete closure kind (`&:`, `&mut:`, or `:`).
pub fn parse_obsolete_closure_kind(&mut self) -> PResult<'a, ()> {
let lo = self.span.lo;
if
self.check(&token::BinOp(token::And)) &&
self.look_ahead(1, |t| t.is_keyword(keywords::Mut)) &&
self.look_ahead(2, |t| *t == token::Colon)
{
self.bump();
self.bump();
self.bump();
} else if
self.token == token::BinOp(token::And) &&
self.look_ahead(1, |t| *t == token::Colon)
{
self.bump();
self.bump();
} else if
self.eat(&token::Colon)
{
/* nothing */
} else {
return Ok(());
}

let span = mk_sp(lo, self.span.hi);
self.obsolete(span, ObsoleteSyntax::ClosureKind);
Ok(())
}

pub fn parse_unsafety(&mut self) -> PResult<'a, Unsafety> {
if self.eat_keyword(keywords::Unsafe) {
return Ok(Unsafety::Unsafe);
Expand Down Expand Up @@ -4728,7 +4698,6 @@ impl<'a> Parser<'a> {
Vec::new()
} else {
self.expect(&token::BinOp(token::Or))?;
self.parse_obsolete_closure_kind()?;
let args = self.parse_seq_to_before_end(
&token::BinOp(token::Or),
SeqSep::trailing_allowed(token::Comma),
Expand Down
18 changes: 0 additions & 18 deletions src/test/parse-fail/obsolete-closure-kind.rs

This file was deleted.

0 comments on commit b57f109

Please sign in to comment.