Delete unnecessary ParserAttr trait.

This commit is contained in:
Eli Friedman 2015-10-23 18:37:21 -07:00
parent 1dd87dcfea
commit c141f47c24
5 changed files with 4 additions and 25 deletions

View file

@ -19,7 +19,6 @@ use ext::base;
use ext::build::AstBuilder; use ext::build::AstBuilder;
use attr; use attr;
use attr::*; use attr::*;
use parse::attr::ParserAttr;
use parse::token; use parse::token;
pub fn expand_cfg<'cx>(cx: &mut ExtCtxt, pub fn expand_cfg<'cx>(cx: &mut ExtCtxt,

View file

@ -85,7 +85,6 @@ use codemap::{BytePos, mk_sp, Span};
use codemap; use codemap;
use parse::lexer::*; //resolve bug? use parse::lexer::*; //resolve bug?
use parse::ParseSess; use parse::ParseSess;
use parse::attr::ParserAttr;
use parse::parser::{LifetimeAndTypesWithoutColons, Parser}; use parse::parser::{LifetimeAndTypesWithoutColons, Parser};
use parse::token::{Eof, DocComment, MatchNt, SubstNt}; use parse::token::{Eof, DocComment, MatchNt, SubstNt};
use parse::token::{Token, Nonterminal}; use parse::token::{Token, Nonterminal};

View file

@ -16,19 +16,9 @@ use parse::token;
use parse::parser::{Parser, TokenType}; use parse::parser::{Parser, TokenType};
use ptr::P; use ptr::P;
/// A parser that can parse attributes. impl<'a> Parser<'a> {
pub trait ParserAttr {
fn parse_outer_attributes(&mut self) -> Vec<ast::Attribute>;
fn parse_inner_attributes(&mut self) -> Vec<ast::Attribute>;
fn parse_attribute(&mut self, permit_inner: bool) -> ast::Attribute;
fn parse_meta_item(&mut self) -> P<ast::MetaItem>;
fn parse_meta_seq(&mut self) -> Vec<P<ast::MetaItem>>;
fn parse_optional_meta(&mut self) -> Vec<P<ast::MetaItem>>;
}
impl<'a> ParserAttr for Parser<'a> {
/// Parse attributes that appear before an item /// Parse attributes that appear before an item
fn parse_outer_attributes(&mut self) -> Vec<ast::Attribute> { pub fn parse_outer_attributes(&mut self) -> Vec<ast::Attribute> {
let mut attrs: Vec<ast::Attribute> = Vec::new(); let mut attrs: Vec<ast::Attribute> = Vec::new();
loop { loop {
debug!("parse_outer_attributes: self.token={:?}", debug!("parse_outer_attributes: self.token={:?}",
@ -120,7 +110,7 @@ impl<'a> ParserAttr for Parser<'a> {
/// terminated by a semicolon. /// terminated by a semicolon.
/// matches inner_attrs* /// matches inner_attrs*
fn parse_inner_attributes(&mut self) -> Vec<ast::Attribute> { pub fn parse_inner_attributes(&mut self) -> Vec<ast::Attribute> {
let mut attrs: Vec<ast::Attribute> = vec![]; let mut attrs: Vec<ast::Attribute> = vec![];
loop { loop {
match self.token { match self.token {
@ -155,7 +145,7 @@ impl<'a> ParserAttr for Parser<'a> {
/// matches meta_item = IDENT /// matches meta_item = IDENT
/// | IDENT = lit /// | IDENT = lit
/// | IDENT meta_seq /// | IDENT meta_seq
fn parse_meta_item(&mut self) -> P<ast::MetaItem> { pub fn parse_meta_item(&mut self) -> P<ast::MetaItem> {
let nt_meta = match self.token { let nt_meta = match self.token {
token::Interpolated(token::NtMeta(ref e)) => { token::Interpolated(token::NtMeta(ref e)) => {
Some(e.clone()) Some(e.clone())
@ -210,11 +200,4 @@ impl<'a> ParserAttr for Parser<'a> {
seq_sep_trailing_allowed(token::Comma), seq_sep_trailing_allowed(token::Comma),
|p| Ok(p.parse_meta_item()))).node |p| Ok(p.parse_meta_item()))).node
} }
fn parse_optional_meta(&mut self) -> Vec<P<ast::MetaItem>> {
match self.token {
token::OpenDelim(token::Paren) => self.parse_meta_seq(),
_ => Vec::new()
}
}
} }

View file

@ -13,7 +13,6 @@
use ast; use ast;
use codemap::{self, Span, CodeMap, FileMap}; use codemap::{self, Span, CodeMap, FileMap};
use diagnostic::{SpanHandler, Handler, Auto, FatalError}; use diagnostic::{SpanHandler, Handler, Auto, FatalError};
use parse::attr::ParserAttr;
use parse::parser::Parser; use parse::parser::Parser;
use parse::token::InternedString; use parse::token::InternedString;
use ptr::P; use ptr::P;

View file

@ -64,7 +64,6 @@ use codemap::{self, Span, BytePos, Spanned, spanned, mk_sp, CodeMap};
use diagnostic; use diagnostic;
use ext::tt::macro_parser; use ext::tt::macro_parser;
use parse; use parse;
use parse::attr::ParserAttr;
use parse::classify; use parse::classify;
use parse::common::{SeqSep, seq_sep_none, seq_sep_trailing_allowed}; use parse::common::{SeqSep, seq_sep_none, seq_sep_trailing_allowed};
use parse::lexer::{Reader, TokenAndSpan}; use parse::lexer::{Reader, TokenAndSpan};