From 88451878f8eb12a32dbb0c1eded1a91cb6df8305 Mon Sep 17 00:00:00 2001 From: John Clements Date: Tue, 5 Mar 2013 17:02:23 -0800 Subject: [PATCH 1/2] removed unused abstraction over paths and value_paths --- src/libsyntax/ast.rs | 4 ++++ src/libsyntax/ext/tt/transcribe.rs | 1 + src/libsyntax/parse/common.rs | 4 ---- src/libsyntax/parse/parser.rs | 30 +++++++++--------------------- 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 484fff1f9de..fc915823703 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -105,6 +105,10 @@ pub struct Lifetime { ident: ident } +// a "Path" is essentially Rust's notion of a name; +// for instance: core::cmp::Eq . It's represented +// as a sequence of identifiers, along with a bunch +// of supporting information. #[auto_encode] #[auto_decode] #[deriving_eq] diff --git a/src/libsyntax/ext/tt/transcribe.rs b/src/libsyntax/ext/tt/transcribe.rs index 116ecc37d2e..589b7693f9e 100644 --- a/src/libsyntax/ext/tt/transcribe.rs +++ b/src/libsyntax/ext/tt/transcribe.rs @@ -36,6 +36,7 @@ struct TtFrame { pub struct TtReader { sp_diag: span_handler, interner: @ident_interner, + // the unzipped tree: cur: @mut TtFrame, /* for MBE-style macro transcription */ interpolations: std::oldmap::HashMap, diff --git a/src/libsyntax/parse/common.rs b/src/libsyntax/parse/common.rs index cdeb9b2f647..7af2204fafd 100644 --- a/src/libsyntax/parse/common.rs +++ b/src/libsyntax/parse/common.rs @@ -119,10 +119,6 @@ pub impl Parser { id: self.get_id() }) } - fn parse_value_ident(&self) -> ast::ident { - return self.parse_ident(); - } - // consume token 'tok' if it exists. Returns true if the given // token was present, false otherwise. fn eat(&self, tok: &token::Token) -> bool { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 5013b2c919f..07fe5dec61d 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -893,16 +893,9 @@ pub impl Parser { codemap::spanned { node: lit, span: mk_sp(lo, self.last_span.hi) } } - fn parse_path_without_tps(&self) -> @path { - self.parse_path_without_tps_(|p| p.parse_ident(), - |p| p.parse_ident()) - } - - fn parse_path_without_tps_( - &self, - parse_ident: fn(&Parser) -> ident, - parse_last_ident: fn(&Parser) -> ident - ) -> @path { + // parse a path that doesn't have type parameters attached + fn parse_path_without_tps(&self) + -> @ast::path { maybe_whole!(self, nt_path); let lo = self.span.lo; let global = self.eat(&token::MOD_SEP); @@ -913,10 +906,10 @@ pub impl Parser { && self.look_ahead(1u) == token::MOD_SEP; if is_not_last { - ids.push(parse_ident(self)); + ids.push(self.parse_ident()); self.expect(&token::MOD_SEP); } else { - ids.push(parse_last_ident(self)); + ids.push(self.parse_ident()); break; } } @@ -927,12 +920,7 @@ pub impl Parser { types: ~[] } } - fn parse_value_path(&self) -> @path { - self.parse_path_without_tps_(|p| p.parse_ident(), - |p| p.parse_value_ident()) - } - - fn parse_path_with_tps(&self, colons: bool) -> @path { + fn parse_path_with_tps(&self, colons: bool) -> @ast::path { debug!("parse_path_with_tps(colons=%b)", colons); maybe_whole!(self, nt_path); @@ -2282,7 +2270,7 @@ pub impl Parser { } if is_plain_ident(&*self.token) && cannot_be_enum_or_struct { - let name = self.parse_value_path(); + let name = self.parse_path_without_tps(); let sub; if self.eat(&token::AT) { sub = Some(self.parse_pat(refutable)); @@ -2355,7 +2343,7 @@ pub impl Parser { *self.last_span, ~"expected identifier, found path"); } - let name = self.parse_value_path(); + let name = self.parse_path_without_tps(); let sub = if self.eat(&token::AT) { Some(self.parse_pat(refutable)) } else { None }; @@ -2453,7 +2441,7 @@ pub impl Parser { // Potential trouble: if we allow macros with paths instead of // idents, we'd need to look ahead past the whole path here... - let pth = self.parse_value_path(); + let pth = self.parse_path_without_tps(); self.bump(); let id = if *self.token == token::LPAREN { From 8bb537e68daf2a2794bacfe4bd39ac7fad6314fa Mon Sep 17 00:00:00 2001 From: John Clements Date: Wed, 6 Mar 2013 09:30:54 -0800 Subject: [PATCH 2/2] finish removing parse_value_ident --- src/libsyntax/parse/parser.rs | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 07fe5dec61d..267bcf2fd32 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -457,7 +457,7 @@ pub impl Parser { let pur = p.parse_fn_purity(); // NB: at the moment, trait methods are public by default; this // could change. - let ident = p.parse_method_name(); + let ident = p.parse_ident(); let generics = p.parse_generics(); @@ -2102,11 +2102,7 @@ pub impl Parser { } let lo1 = self.last_span.lo; - let fieldname = if self.look_ahead(1u) == token::COLON { - self.parse_ident() - } else { - self.parse_value_ident() - }; + let fieldname = self.parse_ident(); let hi1 = self.last_span.lo; let fieldpath = ast_util::ident_to_path(mk_sp(lo1, hi1), fieldname); @@ -2946,7 +2942,7 @@ pub impl Parser { } fn parse_fn_header(&self) -> (ident, ast::Generics) { - let id = self.parse_value_ident(); + let id = self.parse_ident(); let generics = self.parse_generics(); (id, generics) } @@ -2969,10 +2965,6 @@ pub impl Parser { (ident, item_fn(decl, purity, generics, body), Some(inner_attrs)) } - fn parse_method_name(&self) -> ident { - self.parse_value_ident() - } - fn parse_method(&self) -> @method { let attrs = self.parse_outer_attributes(); let lo = self.span.lo; @@ -2982,7 +2974,7 @@ pub impl Parser { let visa = self.parse_visibility(); let pur = self.parse_fn_purity(); - let ident = self.parse_method_name(); + let ident = self.parse_ident(); let generics = self.parse_generics(); let (self_ty, decl) = do self.parse_fn_decl_with_self() |p| { p.parse_arg() @@ -3106,7 +3098,7 @@ pub impl Parser { } fn parse_item_struct(&self) -> item_info { - let class_name = self.parse_value_ident(); + let class_name = self.parse_ident(); self.parse_region_param(); let generics = self.parse_generics(); if self.eat(&token::COLON) { @@ -3334,7 +3326,7 @@ pub impl Parser { } fn parse_item_const(&self) -> item_info { - let id = self.parse_value_ident(); + let id = self.parse_ident(); self.expect(&token::COLON); let ty = self.parse_ty(false); self.expect(&token::EQ); @@ -3732,7 +3724,7 @@ pub impl Parser { kind = enum_variant_kind(nested_enum_def); needs_comma = false; } else { - ident = self.parse_value_ident(); + ident = self.parse_ident(); if self.eat(&token::LBRACE) { // Parse a struct variant. all_nullary = false;