From 966e6c0c370317f06aa85248c17c7081d9736d99 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 22 Jan 2015 12:28:44 +0100 Subject: Add Str trait to InternedString, set get method deprecated --- src/libsyntax/parse/token.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 129c1d20bc0..38e151436bf 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -627,11 +627,19 @@ impl InternedString { } #[inline] + #[deprecated = "use as_slice() instead"] pub fn get<'a>(&'a self) -> &'a str { &self.string[] } } +impl Str for InternedString { + #[inline] + fn as_slice<'a>(&'a self) -> &'a str { + &self.string[] + } +} + impl Deref for InternedString { type Target = str; -- cgit 1.4.1-3-g733a5 From d58c0a75978e068af8b01ab578b743c52635e1f4 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Tue, 3 Feb 2015 00:23:08 +0100 Subject: Replace the get method by the deref one on InternedString --- src/libsyntax/ast.rs | 9 ++++--- src/libsyntax/ast_util.rs | 3 ++- src/libsyntax/attr.rs | 29 ++++++++++---------- src/libsyntax/diagnostics/plugin.rs | 10 ++++--- src/libsyntax/ext/asm.rs | 10 ++++--- src/libsyntax/ext/base.rs | 3 ++- src/libsyntax/ext/build.rs | 3 ++- src/libsyntax/ext/concat.rs | 3 ++- src/libsyntax/ext/concat_idents.rs | 4 ++- src/libsyntax/ext/deriving/bounds.rs | 4 ++- src/libsyntax/ext/deriving/generic/mod.rs | 3 ++- src/libsyntax/ext/deriving/mod.rs | 4 ++- src/libsyntax/ext/deriving/show.rs | 5 ++-- src/libsyntax/ext/env.rs | 8 +++--- src/libsyntax/ext/expand.rs | 44 ++++++++++++++++--------------- src/libsyntax/ext/format.rs | 5 ++-- src/libsyntax/ext/quote.rs | 4 ++- src/libsyntax/ext/source_util.rs | 3 ++- src/libsyntax/ext/tt/macro_parser.rs | 7 ++--- src/libsyntax/feature_gate.rs | 5 ++-- src/libsyntax/parse/parser.rs | 7 ++--- src/libsyntax/parse/token.rs | 15 +---------- src/libsyntax/print/pprust.rs | 33 ++++++++++++----------- src/libsyntax/test.rs | 6 +++-- 24 files changed, 123 insertions(+), 104 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 34eeedeaa76..4c2d09562af 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -68,6 +68,7 @@ use std::fmt::Show; use std::num::Int; use std::rc::Rc; use serialize::{Encodable, Decodable, Encoder, Decoder}; +use std::ops::Deref; // FIXME #6993: in librustc, uses of "ident" should be replaced // by just "Name". @@ -112,13 +113,13 @@ impl fmt::Display for Ident { impl fmt::Debug for Name { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let Name(nm) = *self; - write!(f, "{:?}({})", token::get_name(*self).get(), nm) + write!(f, "{:?}({})", token::get_name(*self).deref(), nm) } } impl fmt::Display for Name { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(token::get_name(*self).get(), f) + fmt::Display::fmt(token::get_name(*self).deref(), f) } } @@ -174,7 +175,7 @@ impl Name { pub fn as_str<'a>(&'a self) -> &'a str { unsafe { // FIXME #12938: can't use copy_lifetime since &str isn't a &T - ::std::mem::transmute::<&str,&str>(token::get_name(*self).get()) + ::std::mem::transmute::<&str,&str>(token::get_name(*self).deref()) } } @@ -193,7 +194,7 @@ pub type Mrk = u32; impl Encodable for Ident { fn encode(&self, s: &mut S) -> Result<(), S::Error> { - s.emit_str(token::get_ident(*self).get()) + s.emit_str(token::get_ident(*self).deref()) } } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index c62f76564a7..3129f80cb5f 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -23,11 +23,12 @@ use visit; use std::cmp; use std::u32; +use std::ops::Deref; pub fn path_name_i(idents: &[Ident]) -> String { // FIXME: Bad copies (#2543 -- same for everything else that says "bad") idents.iter().map(|i| { - token::get_ident(*i).get().to_string() + token::get_ident(*i).deref().to_string() }).collect::>().connect("::") } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 15ea68a19ce..48d35d4ad13 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -29,6 +29,7 @@ use std::cell::{RefCell, Cell}; use std::collections::BitvSet; use std::collections::HashSet; use std::fmt; +use std::ops::Deref; thread_local! { static USED_ATTRS: RefCell = RefCell::new(BitvSet::new()) } @@ -44,7 +45,7 @@ pub fn is_used(attr: &Attribute) -> bool { pub trait AttrMetaMethods { fn check_name(&self, name: &str) -> bool { - name == self.name().get() + name == self.name().deref() } /// Retrieve the name of the meta item, e.g. `foo` in `#[foo]`, @@ -62,7 +63,7 @@ pub trait AttrMetaMethods { impl AttrMetaMethods for Attribute { fn check_name(&self, name: &str) -> bool { - let matches = name == self.name().get(); + let matches = name == self.name().deref(); if matches { mark_used(self); } @@ -142,7 +143,7 @@ impl AttributeMethods for Attribute { let meta = mk_name_value_item_str( InternedString::new("doc"), token::intern_and_get_ident(&strip_doc_comment_decoration( - comment.get())[])); + comment.deref())[])); if self.node.style == ast::AttrOuter { f(&mk_attr_outer(self.node.id, meta)) } else { @@ -209,7 +210,7 @@ pub fn mk_attr_outer(id: AttrId, item: P) -> Attribute { pub fn mk_sugared_doc_attr(id: AttrId, text: InternedString, lo: BytePos, hi: BytePos) -> Attribute { - let style = doc_comment_style(text.get()); + let style = doc_comment_style(text.deref()); let lit = spanned(lo, hi, ast::LitStr(text, ast::CookedStr)); let attr = Attribute_ { id: id, @@ -326,11 +327,11 @@ pub fn requests_inline(attrs: &[Attribute]) -> bool { /// Tests if a cfg-pattern matches the cfg set pub fn cfg_matches(diagnostic: &SpanHandler, cfgs: &[P], cfg: &ast::MetaItem) -> bool { match cfg.node { - ast::MetaList(ref pred, ref mis) if pred.get() == "any" => + ast::MetaList(ref pred, ref mis) if pred.deref() == "any" => mis.iter().any(|mi| cfg_matches(diagnostic, cfgs, &**mi)), - ast::MetaList(ref pred, ref mis) if pred.get() == "all" => + ast::MetaList(ref pred, ref mis) if pred.deref() == "all" => mis.iter().all(|mi| cfg_matches(diagnostic, cfgs, &**mi)), - ast::MetaList(ref pred, ref mis) if pred.get() == "not" => { + ast::MetaList(ref pred, ref mis) if pred.deref() == "not" => { if mis.len() != 1 { diagnostic.span_err(cfg.span, "expected 1 cfg-pattern"); return false; @@ -382,7 +383,7 @@ fn find_stability_generic<'a, 'outer: for attr in attrs { let tag = attr.name(); - let tag = tag.get(); + let tag = tag.deref(); if tag != "deprecated" && tag != "unstable" && tag != "stable" { continue // not a stability level } @@ -394,8 +395,8 @@ fn find_stability_generic<'a, let mut feature = None; let mut since = None; let mut reason = None; - for meta in metas { - if meta.name().get() == "feature" { + for meta in metas.iter() { + if meta.name() == "feature" { match meta.value_str() { Some(v) => feature = Some(v), None => { @@ -404,7 +405,7 @@ fn find_stability_generic<'a, } } } - if meta.name().get() == "since" { + if meta.name().deref() == "since" { match meta.value_str() { Some(v) => since = Some(v), None => { @@ -413,7 +414,7 @@ fn find_stability_generic<'a, } } } - if meta.name().get() == "reason" { + if meta.name().deref() == "reason" { match meta.value_str() { Some(v) => reason = Some(v), None => { @@ -521,11 +522,11 @@ pub fn find_repr_attrs(diagnostic: &SpanHandler, attr: &Attribute) -> Vec { - let hint = match word.get() { + let hint = match word.deref() { // Can't use "extern" because it's not a lexical identifier. "C" => Some(ReprExtern), "packed" => Some(ReprPacked), - _ => match int_type_of_word(word.get()) { + _ => match int_type_of_word(word.deref()) { Some(ity) => Some(ReprInt(item.span, ity)), None => { // Not a word we recognize diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index bd5247bbad6..6917daacaf2 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -10,6 +10,8 @@ use std::cell::RefCell; use std::collections::BTreeMap; +use std::ops::Deref; + use ast; use ast::{Ident, Name, TokenTree}; use codemap::Span; @@ -57,7 +59,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, match diagnostics.insert(code.name, span) { Some(previous_span) => { ecx.span_warn(span, &format!( - "diagnostic code {} already used", token::get_ident(code).get() + "diagnostic code {} already used", token::get_ident(code).deref() )[]); ecx.span_note(previous_span, "previous invocation"); }, @@ -68,7 +70,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if !diagnostics.contains_key(&code.name) { ecx.span_err(span, &format!( - "used diagnostic code {} not registered", token::get_ident(code).get() + "used diagnostic code {} not registered", token::get_ident(code).deref() )[]); } }); @@ -93,12 +95,12 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if diagnostics.insert(code.name, description).is_some() { ecx.span_err(span, &format!( - "diagnostic code {} already registered", token::get_ident(*code).get() + "diagnostic code {} already registered", token::get_ident(*code).deref() )[]); } }); let sym = Ident::new(token::gensym(&( - "__register_diagnostic_".to_string() + token::get_ident(*code).get() + "__register_diagnostic_".to_string() + token::get_ident(*code).deref() )[])); MacItems::new(vec![quote_item!(ecx, mod $sym {}).unwrap()].into_iter()) } diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 4258eb32fdf..8a12557e477 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -22,6 +22,8 @@ use parse::token::InternedString; use parse::token; use ptr::P; +use std::ops::Deref; + enum State { Asm, Outputs, @@ -102,7 +104,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) // It's the opposite of '=&' which means that the memory // cannot be shared with any other operand (usually when // a register is clobbered early.) - let output = match constraint.get().slice_shift_char() { + let output = match constraint.deref().slice_shift_char() { Some(('=', _)) => None, Some(('+', operand)) => { Some(token::intern_and_get_ident(&format!( @@ -129,9 +131,9 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) let (constraint, _str_style) = p.parse_str(); - if constraint.get().starts_with("=") { + if constraint.deref().starts_with("=") { cx.span_err(p.last_span, "input operand constraint contains '='"); - } else if constraint.get().starts_with("+") { + } else if constraint.deref().starts_with("+") { cx.span_err(p.last_span, "input operand constraint contains '+'"); } @@ -213,7 +215,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) MacExpr::new(P(ast::Expr { id: ast::DUMMY_NODE_ID, node: ast::ExprInlineAsm(ast::InlineAsm { - asm: token::intern_and_get_ident(asm.get()), + asm: token::intern_and_get_ident(asm.deref()), asm_str_style: asm_str_style.unwrap(), outputs: outputs, inputs: inputs, diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index a184cc5c2b2..21f00f0934d 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -28,6 +28,7 @@ use fold::Folder; use std::collections::HashMap; use std::rc::Rc; +use std::ops::Deref; pub trait ItemDecorator { fn expand(&self, @@ -790,7 +791,7 @@ pub fn get_single_str_from_tts(cx: &mut ExtCtxt, cx.span_err(sp, &format!("{} takes 1 argument", name)[]); } expr_to_string(cx, ret, "argument must be a string literal").map(|(s, _)| { - s.get().to_string() + s.deref().to_string() }) } diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 53c35ef34cd..18373219aa1 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -21,6 +21,7 @@ use parse::token::InternedString; use parse::token; use ptr::P; +use std::ops::Deref; // Transitional reexports so qquote can find the paths it is looking for mod syntax { @@ -576,7 +577,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { fn expr_field_access(&self, sp: Span, expr: P, ident: ast::Ident) -> P { let field_name = token::get_ident(ident); let field_span = Span { - lo: sp.lo - Pos::from_usize(field_name.get().len()), + lo: sp.lo - Pos::from_usize(field_name.deref().len()), hi: sp.hi, expn_id: sp.expn_id, }; diff --git a/src/libsyntax/ext/concat.rs b/src/libsyntax/ext/concat.rs index 4e10cc9aacc..9dbc097be27 100644 --- a/src/libsyntax/ext/concat.rs +++ b/src/libsyntax/ext/concat.rs @@ -15,6 +15,7 @@ use ext::build::AstBuilder; use parse::token; use std::string::String; +use std::ops::Deref; pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, sp: codemap::Span, @@ -32,7 +33,7 @@ pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, ast::LitStr(ref s, _) | ast::LitFloat(ref s, _) | ast::LitFloatUnsuffixed(ref s) => { - accumulator.push_str(s.get()); + accumulator.push_str(s.deref()); } ast::LitChar(c) => { accumulator.push(c); diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs index 1af3ba1d326..feadaaf29c4 100644 --- a/src/libsyntax/ext/concat_idents.rs +++ b/src/libsyntax/ext/concat_idents.rs @@ -16,6 +16,8 @@ use parse::token; use parse::token::{str_to_ident}; use ptr::P; +use std::ops::Deref; + pub fn expand_syntax_ext<'cx>(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box { let mut res_str = String::new(); @@ -31,7 +33,7 @@ pub fn expand_syntax_ext<'cx>(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree] } else { match *e { ast::TtToken(_, token::Ident(ident, _)) => { - res_str.push_str(token::get_ident(ident).get()) + res_str.push_str(token::get_ident(ident).deref()) }, _ => { cx.span_err(sp, "concat_idents! requires ident args."); diff --git a/src/libsyntax/ext/deriving/bounds.rs b/src/libsyntax/ext/deriving/bounds.rs index bce48747b60..dcef20a9931 100644 --- a/src/libsyntax/ext/deriving/bounds.rs +++ b/src/libsyntax/ext/deriving/bounds.rs @@ -15,6 +15,8 @@ use ext::deriving::generic::*; use ext::deriving::generic::ty::*; use ptr::P; +use std::ops::Deref; + pub fn expand_deriving_bound(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, @@ -24,7 +26,7 @@ pub fn expand_deriving_bound(cx: &mut ExtCtxt, { let name = match mitem.node { MetaWord(ref tname) => { - match tname.get() { + match tname.deref() { "Copy" => "Copy", "Send" | "Sync" => { return cx.span_err(span, diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 7d72a7ec358..4a67ebc190f 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -189,6 +189,7 @@ use self::StructType::*; use std::cell::RefCell; use std::vec; +use std::ops::Deref; use abi::Abi; use abi; @@ -363,7 +364,7 @@ impl<'a> TraitDef<'a> { // generated implementations are linted let mut attrs = newitem.attrs.clone(); attrs.extend(item.attrs.iter().filter(|a| { - match a.name().get() { + match a.name().deref() { "allow" | "warn" | "deny" | "forbid" => true, _ => false, } diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs index d3d7fee3a18..dd093f3ac2c 100644 --- a/src/libsyntax/ext/deriving/mod.rs +++ b/src/libsyntax/ext/deriving/mod.rs @@ -18,6 +18,8 @@ use ext::base::ExtCtxt; use codemap::Span; use ptr::P; +use std::ops::Deref; + pub mod bounds; pub mod clone; pub mod encodable; @@ -74,7 +76,7 @@ pub fn expand_meta_derive(cx: &mut ExtCtxt, |i| push(i))) } - match tname.get() { + match tname.deref() { "Clone" => expand!(clone::expand_deriving_clone), "Hash" => expand!(hash::expand_deriving_hash), diff --git a/src/libsyntax/ext/deriving/show.rs b/src/libsyntax/ext/deriving/show.rs index ec5941f58f3..b315b1bfe18 100644 --- a/src/libsyntax/ext/deriving/show.rs +++ b/src/libsyntax/ext/deriving/show.rs @@ -20,6 +20,7 @@ use parse::token; use ptr::P; use std::collections::HashMap; +use std::ops::Deref; pub fn expand_deriving_show(cx: &mut ExtCtxt, span: Span, @@ -72,7 +73,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, } }; - let mut format_string = String::from_str(token::get_ident(name).get()); + let mut format_string = String::from_str(token::get_ident(name).deref()); // the internal fields we're actually formatting let mut exprs = Vec::new(); @@ -107,7 +108,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, let name = token::get_ident(field.name.unwrap()); format_string.push_str(" "); - format_string.push_str(name.get()); + format_string.push_str(name.deref()); format_string.push_str(": {:?}"); exprs.push(field.self_.clone()); diff --git a/src/libsyntax/ext/env.rs b/src/libsyntax/ext/env.rs index 9aa454ae8d5..cd7fbb4fa73 100644 --- a/src/libsyntax/ext/env.rs +++ b/src/libsyntax/ext/env.rs @@ -22,6 +22,8 @@ use ext::build::AstBuilder; use parse::token; use std::env; +use std::os; +use std::ops::Deref; pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box { @@ -101,9 +103,9 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } } - let e = match env::var_string(var.get()) { - Err(..) => { - cx.span_err(sp, msg.get()); + let e = match os::getenv(var.deref()) { + None => { + cx.span_err(sp, msg.deref()); cx.expr_usize(sp, 0) } Ok(s) => cx.expr_str(sp, token::intern_and_get_ident(&s[])) diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index eaee67f9a61..2439c348046 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -32,6 +32,8 @@ use util::small_vector::SmallVector; use visit; use visit::Visitor; +use std::ops::Deref; + pub fn expand_type(t: P, fld: &mut MacroExpander, impl_ty: Option>) @@ -375,7 +377,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("macro undefined: '{}!'", - extnamestr.get())[]); + extnamestr.deref())[]); // let compilation continue None @@ -385,7 +387,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extnamestr.get().to_string(), + name: extnamestr.deref().to_string(), format: MacroBang, span: exp_span, }, @@ -411,7 +413,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("non-expression macro in expression position: {}", - &extnamestr.get()[] + &extnamestr.deref()[] )[]); return None; } @@ -422,7 +424,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("'{}' is not a tt-style macro", - extnamestr.get())[]); + extnamestr.deref())[]); None } } @@ -506,14 +508,14 @@ fn expand_item_modifiers(mut it: P, fld: &mut MacroExpander) for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.get())) { + match fld.cx.syntax_env.find(&intern(mname.deref())) { Some(rc) => match *rc { Modifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.get().to_string(), + name: mname.deref().to_string(), format: MacroAttribute, span: None, } @@ -613,7 +615,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.get().to_string(), + name: extnamestr.deref().to_string(), format: MacroBang, span: span } @@ -626,13 +628,13 @@ pub fn expand_item_mac(it: P, if it.ident.name == parse::token::special_idents::invalid.name { fld.cx.span_err(path_span, &format!("macro {}! expects an ident argument", - extnamestr.get())[]); + extnamestr.deref())[]); return SmallVector::zero(); } fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.get().to_string(), + name: extnamestr.deref().to_string(), format: MacroBang, span: span } @@ -651,7 +653,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.get().to_string(), + name: extnamestr.deref().to_string(), format: MacroBang, span: None, } @@ -677,7 +679,7 @@ pub fn expand_item_mac(it: P, _ => { fld.cx.span_err(it.span, &format!("{}! is not legal in item position", - extnamestr.get())[]); + extnamestr.deref())[]); return SmallVector::zero(); } } @@ -696,7 +698,7 @@ pub fn expand_item_mac(it: P, None => { fld.cx.span_err(path_span, &format!("non-item macro in item position: {}", - extnamestr.get())[]); + extnamestr.deref())[]); return SmallVector::zero(); } }; @@ -950,7 +952,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extnamestr.get().to_string(), + name: extnamestr.deref().to_string(), format: MacroBang, span: tt_span } @@ -968,7 +970,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { pth.span, &format!( "non-pattern macro in pattern position: {}", - extnamestr.get() + extnamestr.deref() )[] ); return DummyResult::raw_pat(span); @@ -981,7 +983,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { _ => { fld.cx.span_err(span, &format!("{}! is not legal in pattern position", - extnamestr.get())[]); + extnamestr.deref())[]); return DummyResult::raw_pat(span); } } @@ -1065,7 +1067,7 @@ fn expand_annotatable(a: Annotatable, for attr in a.attrs() { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.get())) { + match fld.cx.syntax_env.find(&intern(mname.deref())) { Some(rc) => match *rc { Decorator(ref dec) => { let it = match a { @@ -1079,7 +1081,7 @@ fn expand_annotatable(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.get().to_string(), + name: mname.deref().to_string(), format: MacroAttribute, span: None } @@ -1180,7 +1182,7 @@ fn modifiers(attrs: &Vec, fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(attr.name().get())) { + match fld.cx.syntax_env.find(&intern(attr.name().deref())) { Some(rc) => match *rc { Modifier(_) => true, _ => false @@ -1195,7 +1197,7 @@ fn multi_modifiers(attrs: &[ast::Attribute], fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(attr.name().get())) { + match fld.cx.syntax_env.find(&intern(attr.name().deref())) { Some(rc) => match *rc { MultiModifier(_) => true, _ => false @@ -1220,14 +1222,14 @@ fn expand_item_multi_modifier(mut it: Annotatable, for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.get())) { + match fld.cx.syntax_env.find(&intern(mname.deref())) { Some(rc) => match *rc { MultiModifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.get().to_string(), + name: mname.deref().to_string(), format: MacroAttribute, span: None, } diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index 56da24de8bb..5df5e1babd1 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -23,6 +23,7 @@ use ptr::P; use std::collections::HashMap; use std::iter::repeat; +use std::ops::Deref; #[derive(PartialEq)] enum ArgumentType { @@ -118,7 +119,7 @@ fn parse_args(ecx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } }; let interned_name = token::get_ident(ident); - let name = interned_name.get(); + let name = interned_name.deref(); p.expect(&token::Eq); let e = p.parse_expr(); match names.get(name) { @@ -672,7 +673,7 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span, None => return DummyResult::raw_expr(sp) }; - let mut parser = parse::Parser::new(fmt.get()); + let mut parser = parse::Parser::new(fmt.deref()); loop { match parser.next() { Some(piece) => { diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 7376b235238..b3c686abcf6 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -25,6 +25,8 @@ use ptr::P; /// as antiquotes (splices). pub mod rt { + use std::ops::Deref; + use ast; use codemap::Spanned; use ext::base::ExtCtxt; @@ -161,7 +163,7 @@ pub mod rt { impl ToSource for ast::Ident { fn to_source(&self) -> String { - token::get_ident(*self).get().to_string() + token::get_ident(*self).deref().to_string() } } diff --git a/src/libsyntax/ext/source_util.rs b/src/libsyntax/ext/source_util.rs index fbc591834d0..0458a56d050 100644 --- a/src/libsyntax/ext/source_util.rs +++ b/src/libsyntax/ext/source_util.rs @@ -22,6 +22,7 @@ use util::small_vector::SmallVector; use std::old_io::File; use std::rc::Rc; +use std::ops::Deref; // These macros all relate to the file system; they either return // the column/row/filename of the expression, or they include @@ -73,7 +74,7 @@ pub fn expand_mod(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) base::check_zero_tts(cx, sp, tts, "module_path!"); let string = cx.mod_path() .iter() - .map(|x| token::get_ident(*x).get().to_string()) + .map(|x| token::get_ident(*x).deref().to_string()) .collect::>() .connect("::"); base::MacExpr::new(cx.expr_str( diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 823efdd3eed..da233c79ea4 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -99,6 +99,7 @@ use std::mem; use std::rc::Rc; use std::collections::HashMap; use std::collections::hash_map::Entry::{Vacant, Occupied}; +use std::ops::Deref; // To avoid costly uniqueness checks, we require that `MatchSeq` always has // a nonempty body. @@ -229,7 +230,7 @@ pub fn nameize(p_s: &ParseSess, ms: &[TokenTree], res: &[Rc]) p_s.span_diagnostic .span_fatal(sp, &format!("duplicated bind name: {}", - string.get())[]) + string.deref())[]) } } } @@ -487,8 +488,8 @@ pub fn parse(sess: &ParseSess, let name_string = token::get_ident(name); let match_cur = ei.match_cur; (&mut ei.matches[match_cur]).push(Rc::new(MatchedNonterminal( - parse_nt(&mut rust_parser, span, name_string.get())))); - ei.idx += 1; + parse_nt(&mut rust_parser, span, name_string.deref())))); + ei.idx += 1us; ei.match_cur += 1; } _ => panic!() diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 36701e7e25c..7447c004024 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -36,6 +36,7 @@ use parse::token::{self, InternedString}; use std::slice; use std::ascii::AsciiExt; +use std::ops::Deref; // If you change this list without updating src/doc/reference.md, @cmr will be sad // Don't ever remove anything from this list; set them to 'Removed'. @@ -251,7 +252,7 @@ impl<'a> PostExpansionVisitor<'a> { impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { fn visit_name(&mut self, sp: Span, name: ast::Name) { - if !token::get_name(name).get().is_ascii() { + if !token::get_name(name).deref().is_ascii() { self.gate_feature("non_ascii_idents", sp, "non-ascii idents are not fully supported."); } @@ -378,7 +379,7 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { let links_to_llvm = match attr::first_attr_value_str_by_name(&i.attrs, "link_name") { - Some(val) => val.get().starts_with("llvm."), + Some(val) => val.deref().starts_with("llvm."), _ => false }; if links_to_llvm { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index cae23c5a2cc..3ff51f99307 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -84,6 +84,7 @@ use std::mem; use std::num::Float; use std::rc::Rc; use std::slice; +use std::ops::Deref; bitflags! { flags Restrictions: u8 { @@ -5133,7 +5134,7 @@ impl<'a> Parser<'a> { outer_attrs, "path") { Some(d) => (dir_path.join(d), true), None => { - let mod_name = mod_string.get().to_string(); + let mod_name = mod_string.deref().to_string(); let default_path_str = format!("{}.rs", mod_name); let secondary_path_str = format!("{}/mod.rs", mod_name); let default_path = dir_path.join(&default_path_str[]); @@ -5145,7 +5146,7 @@ impl<'a> Parser<'a> { self.span_err(id_sp, "cannot declare a new module at this location"); let this_module = match self.mod_path_stack.last() { - Some(name) => name.get().to_string(), + Some(name) => name.deref().to_string(), None => self.root_module_name.as_ref().unwrap().clone(), }; self.span_note(id_sp, @@ -5191,7 +5192,7 @@ impl<'a> Parser<'a> { }; self.eval_src_mod_from_path(file_path, owns_directory, - mod_string.get().to_string(), id_sp) + mod_string.deref().to_string(), id_sp) } fn eval_src_mod_from_path(&mut self, diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 38e151436bf..755ccfb0094 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -625,19 +625,6 @@ impl InternedString { string: string, } } - - #[inline] - #[deprecated = "use as_slice() instead"] - pub fn get<'a>(&'a self) -> &'a str { - &self.string[] - } -} - -impl Str for InternedString { - #[inline] - fn as_slice<'a>(&'a self) -> &'a str { - &self.string[] - } } impl Deref for InternedString { @@ -652,7 +639,7 @@ impl BytesContainer for InternedString { // of `BytesContainer`, which is itself a workaround for the lack of // DST. unsafe { - let this = self.get(); + let this = self.deref(); mem::transmute::<&[u8],&[u8]>(this.container_as_bytes()) } } diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 542cc41c950..455e5043042 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -30,6 +30,7 @@ use ptr::P; use std::{ascii, mem}; use std::old_io::{self, IoResult}; use std::iter; +use std::ops::Deref; pub enum AnnNode<'a> { NodeIdent(&'a ast::Ident), @@ -258,7 +259,7 @@ pub fn token_to_string(tok: &Token) -> String { } /* Name components */ - token::Ident(s, _) => token::get_ident(s).get().to_string(), + token::Ident(s, _) => token::get_ident(s).deref().to_string(), token::Lifetime(s) => format!("{}", token::get_ident(s)), token::Underscore => "_".to_string(), @@ -798,7 +799,7 @@ impl<'a> State<'a> { try!(self.head(&visibility_qualified(item.vis, "extern crate")[])); if let Some((ref p, style)) = *optional_path { - try!(self.print_string(p.get(), style)); + try!(self.print_string(p.deref(), style)); try!(space(&mut self.s)); try!(word(&mut self.s, "as")); try!(space(&mut self.s)); @@ -1313,7 +1314,7 @@ impl<'a> State<'a> { try!(self.hardbreak_if_not_bol()); try!(self.maybe_print_comment(attr.span.lo)); if attr.node.is_sugared_doc { - word(&mut self.s, attr.value_str().unwrap().get()) + word(&mut self.s, attr.value_str().unwrap().deref()) } else { match attr.node.style { ast::AttrInner => try!(word(&mut self.s, "#![")), @@ -1847,17 +1848,17 @@ impl<'a> State<'a> { ast::ExprInlineAsm(ref a) => { try!(word(&mut self.s, "asm!")); try!(self.popen()); - try!(self.print_string(a.asm.get(), a.asm_str_style)); + try!(self.print_string(a.asm.deref(), a.asm_str_style)); try!(self.word_space(":")); try!(self.commasep(Inconsistent, &a.outputs[], |s, &(ref co, ref o, is_rw)| { - match co.get().slice_shift_char() { + match co.deref().slice_shift_char() { Some(('=', operand)) if is_rw => { try!(s.print_string(&format!("+{}", operand)[], ast::CookedStr)) } - _ => try!(s.print_string(co.get(), ast::CookedStr)) + _ => try!(s.print_string(co.deref(), ast::CookedStr)) } try!(s.popen()); try!(s.print_expr(&**o)); @@ -1869,7 +1870,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.inputs[], |s, &(ref co, ref o)| { - try!(s.print_string(co.get(), ast::CookedStr)); + try!(s.print_string(co.deref(), ast::CookedStr)); try!(s.popen()); try!(s.print_expr(&**o)); try!(s.pclose()); @@ -1880,7 +1881,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.clobbers[], |s, co| { - try!(s.print_string(co.get(), ast::CookedStr)); + try!(s.print_string(co.deref(), ast::CookedStr)); Ok(()) })); @@ -1954,7 +1955,7 @@ impl<'a> State<'a> { let encoded = ident.encode_with_hygiene(); try!(word(&mut self.s, &encoded[])) } else { - try!(word(&mut self.s, token::get_ident(ident).get())) + try!(word(&mut self.s, token::get_ident(ident).deref())) } self.ann.post(self, NodeIdent(&ident)) } @@ -1964,7 +1965,7 @@ impl<'a> State<'a> { } pub fn print_name(&mut self, name: ast::Name) -> IoResult<()> { - try!(word(&mut self.s, token::get_name(name).get())); + try!(word(&mut self.s, token::get_name(name).deref())); self.ann.post(self, NodeName(&name)) } @@ -2532,15 +2533,15 @@ impl<'a> State<'a> { try!(self.ibox(indent_unit)); match item.node { ast::MetaWord(ref name) => { - try!(word(&mut self.s, name.get())); + try!(word(&mut self.s, name.deref())); } ast::MetaNameValue(ref name, ref value) => { - try!(self.word_space(name.get())); + try!(self.word_space(name.deref())); try!(self.word_space("=")); try!(self.print_literal(value)); } ast::MetaList(ref name, ref items) => { - try!(word(&mut self.s, name.get())); + try!(word(&mut self.s, name.deref())); try!(self.popen()); try!(self.commasep(Consistent, &items[], @@ -2731,7 +2732,7 @@ impl<'a> State<'a> { _ => () } match lit.node { - ast::LitStr(ref st, style) => self.print_string(st.get(), style), + ast::LitStr(ref st, style) => self.print_string(st.deref(), style), ast::LitByte(byte) => { let mut res = String::from_str("b'"); ascii::escape_default(byte, |c| res.push(c as char)); @@ -2772,10 +2773,10 @@ impl<'a> State<'a> { word(&mut self.s, &format!( "{}{}", - f.get(), + f.deref(), &ast_util::float_ty_to_string(t)[])[]) } - ast::LitFloatUnsuffixed(ref f) => word(&mut self.s, f.get()), + ast::LitFloatUnsuffixed(ref f) => word(&mut self.s, f.deref()), ast::LitBool(val) => { if val { word(&mut self.s, "true") } else { word(&mut self.s, "false") } } diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index d9d56889512..14f8dc5aa3d 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -37,6 +37,8 @@ use {ast, ast_util}; use ptr::P; use util::small_vector::SmallVector; +use std::ops::Deref; + enum ShouldFail { No, Yes(Option), @@ -512,7 +514,7 @@ fn mk_test_module(cx: &mut TestCtxt) -> (P, Option>) { }); let reexport = cx.reexport_test_harness_main.as_ref().map(|s| { // building `use = __test::main` - let reexport_ident = token::str_to_ident(s.get()); + let reexport_ident = token::str_to_ident(s.deref()); let use_path = nospan(ast::ViewPathSimple(reexport_ident, @@ -575,7 +577,7 @@ fn mk_tests(cx: &TestCtxt) -> P { fn is_test_crate(krate: &ast::Crate) -> bool { match attr::find_crate_name(&krate.attrs[]) { - Some(ref s) if "test" == &s.get()[] => true, + Some(ref s) if "test" == &s.deref()[] => true, _ => false } } -- cgit 1.4.1-3-g733a5 From 8b12d3ddf981e5450d8159b29db6ee2197064c8a Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Tue, 3 Feb 2015 23:31:06 +0100 Subject: Libsyntax has been updated --- src/librustc/middle/check_match.rs | 4 +-- src/librustc_back/svh.rs | 2 +- src/libsyntax/ast.rs | 9 +++---- src/libsyntax/ast_util.rs | 3 +-- src/libsyntax/attr.rs | 25 +++++++++--------- src/libsyntax/diagnostics/plugin.rs | 9 +++---- src/libsyntax/ext/asm.rs | 10 +++---- src/libsyntax/ext/base.rs | 3 +-- src/libsyntax/ext/build.rs | 4 +-- src/libsyntax/ext/concat.rs | 3 +-- src/libsyntax/ext/concat_idents.rs | 4 +-- src/libsyntax/ext/deriving/bounds.rs | 4 +-- src/libsyntax/ext/deriving/generic/mod.rs | 3 +-- src/libsyntax/ext/deriving/mod.rs | 4 +-- src/libsyntax/ext/deriving/show.rs | 5 ++-- src/libsyntax/ext/env.rs | 5 ++-- src/libsyntax/ext/expand.rs | 44 +++++++++++++++---------------- src/libsyntax/ext/format.rs | 7 ++--- src/libsyntax/ext/quote.rs | 4 +-- src/libsyntax/ext/source_util.rs | 3 +-- src/libsyntax/ext/tt/macro_parser.rs | 5 ++-- src/libsyntax/feature_gate.rs | 6 ++--- src/libsyntax/parse/parser.rs | 7 +++-- src/libsyntax/parse/token.rs | 2 +- src/libsyntax/print/pprust.rs | 33 +++++++++++------------ src/libsyntax/test.rs | 6 ++--- 26 files changed, 93 insertions(+), 121 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 418cdf95718..38985a8ce40 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -249,11 +249,11 @@ fn check_for_bindings_named_the_same_as_variants(cx: &MatchCheckCtxt, pat: &Pat) span_warn!(cx.tcx.sess, p.span, E0170, "pattern binding `{}` is named the same as one \ of the variants of the type `{}`", - token::get_ident(ident.node).get(), ty_to_string(cx.tcx, pat_ty)); + token::get_ident(&ident.node)[], ty_to_string(cx.tcx, pat_ty)); span_help!(cx.tcx.sess, p.span, "if you meant to match on a variant, \ consider making the path in the pattern qualified: `{}::{}`", - ty_to_string(cx.tcx, pat_ty), token::get_ident(ident.node).get()); + ty_to_string(cx.tcx, pat_ty), &token::get_ident(ident.node)[]); } } } diff --git a/src/librustc_back/svh.rs b/src/librustc_back/svh.rs index 2823b2e9d74..c33d10bfbab 100644 --- a/src/librustc_back/svh.rs +++ b/src/librustc_back/svh.rs @@ -329,7 +329,7 @@ mod svh_visitor { // macro invocations, namely macro_rules definitions, // *can* appear as items, even in the expanded crate AST. - if macro_name(mac).get() == "macro_rules" { + if ¯o_name(mac)[] == "macro_rules" { // Pretty-printing definition to a string strips out // surface artifacts (currently), such as the span // information, yielding a content-based hash. diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 4c2d09562af..7849b7548c4 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -68,7 +68,6 @@ use std::fmt::Show; use std::num::Int; use std::rc::Rc; use serialize::{Encodable, Decodable, Encoder, Decoder}; -use std::ops::Deref; // FIXME #6993: in librustc, uses of "ident" should be replaced // by just "Name". @@ -113,13 +112,13 @@ impl fmt::Display for Ident { impl fmt::Debug for Name { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let Name(nm) = *self; - write!(f, "{:?}({})", token::get_name(*self).deref(), nm) + write!(f, "{:?}({})", token::get_name(*self), nm) } } impl fmt::Display for Name { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(token::get_name(*self).deref(), f) + fmt::Display::fmt(&token::get_name(*self)[], f) } } @@ -175,7 +174,7 @@ impl Name { pub fn as_str<'a>(&'a self) -> &'a str { unsafe { // FIXME #12938: can't use copy_lifetime since &str isn't a &T - ::std::mem::transmute::<&str,&str>(token::get_name(*self).deref()) + ::std::mem::transmute::<&str,&str>(&token::get_name(*self)[]) } } @@ -194,7 +193,7 @@ pub type Mrk = u32; impl Encodable for Ident { fn encode(&self, s: &mut S) -> Result<(), S::Error> { - s.emit_str(token::get_ident(*self).deref()) + s.emit_str(&token::get_ident(*self)[]) } } diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 3129f80cb5f..b8d4c90f745 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -23,12 +23,11 @@ use visit; use std::cmp; use std::u32; -use std::ops::Deref; pub fn path_name_i(idents: &[Ident]) -> String { // FIXME: Bad copies (#2543 -- same for everything else that says "bad") idents.iter().map(|i| { - token::get_ident(*i).deref().to_string() + token::get_ident(*i).to_string() }).collect::>().connect("::") } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index 48d35d4ad13..cd82d7c9b14 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -29,7 +29,6 @@ use std::cell::{RefCell, Cell}; use std::collections::BitvSet; use std::collections::HashSet; use std::fmt; -use std::ops::Deref; thread_local! { static USED_ATTRS: RefCell = RefCell::new(BitvSet::new()) } @@ -45,7 +44,7 @@ pub fn is_used(attr: &Attribute) -> bool { pub trait AttrMetaMethods { fn check_name(&self, name: &str) -> bool { - name == self.name().deref() + name == &self.name()[] } /// Retrieve the name of the meta item, e.g. `foo` in `#[foo]`, @@ -63,7 +62,7 @@ pub trait AttrMetaMethods { impl AttrMetaMethods for Attribute { fn check_name(&self, name: &str) -> bool { - let matches = name == self.name().deref(); + let matches = name == &self.name()[]; if matches { mark_used(self); } @@ -143,7 +142,7 @@ impl AttributeMethods for Attribute { let meta = mk_name_value_item_str( InternedString::new("doc"), token::intern_and_get_ident(&strip_doc_comment_decoration( - comment.deref())[])); + &comment[])[])); if self.node.style == ast::AttrOuter { f(&mk_attr_outer(self.node.id, meta)) } else { @@ -210,7 +209,7 @@ pub fn mk_attr_outer(id: AttrId, item: P) -> Attribute { pub fn mk_sugared_doc_attr(id: AttrId, text: InternedString, lo: BytePos, hi: BytePos) -> Attribute { - let style = doc_comment_style(text.deref()); + let style = doc_comment_style(&text[]); let lit = spanned(lo, hi, ast::LitStr(text, ast::CookedStr)); let attr = Attribute_ { id: id, @@ -327,11 +326,11 @@ pub fn requests_inline(attrs: &[Attribute]) -> bool { /// Tests if a cfg-pattern matches the cfg set pub fn cfg_matches(diagnostic: &SpanHandler, cfgs: &[P], cfg: &ast::MetaItem) -> bool { match cfg.node { - ast::MetaList(ref pred, ref mis) if pred.deref() == "any" => + ast::MetaList(ref pred, ref mis) if &pred[] == "any" => mis.iter().any(|mi| cfg_matches(diagnostic, cfgs, &**mi)), - ast::MetaList(ref pred, ref mis) if pred.deref() == "all" => + ast::MetaList(ref pred, ref mis) if &pred[] == "all" => mis.iter().all(|mi| cfg_matches(diagnostic, cfgs, &**mi)), - ast::MetaList(ref pred, ref mis) if pred.deref() == "not" => { + ast::MetaList(ref pred, ref mis) if &pred[] == "not" => { if mis.len() != 1 { diagnostic.span_err(cfg.span, "expected 1 cfg-pattern"); return false; @@ -383,7 +382,7 @@ fn find_stability_generic<'a, 'outer: for attr in attrs { let tag = attr.name(); - let tag = tag.deref(); + let tag = &tag[]; if tag != "deprecated" && tag != "unstable" && tag != "stable" { continue // not a stability level } @@ -405,7 +404,7 @@ fn find_stability_generic<'a, } } } - if meta.name().deref() == "since" { + if &meta.name()[] == "since" { match meta.value_str() { Some(v) => since = Some(v), None => { @@ -414,7 +413,7 @@ fn find_stability_generic<'a, } } } - if meta.name().deref() == "reason" { + if &meta.name()[] == "reason" { match meta.value_str() { Some(v) => reason = Some(v), None => { @@ -522,11 +521,11 @@ pub fn find_repr_attrs(diagnostic: &SpanHandler, attr: &Attribute) -> Vec { - let hint = match word.deref() { + let hint = match &word[] { // Can't use "extern" because it's not a lexical identifier. "C" => Some(ReprExtern), "packed" => Some(ReprPacked), - _ => match int_type_of_word(word.deref()) { + _ => match int_type_of_word(&word[]) { Some(ity) => Some(ReprInt(item.span, ity)), None => { // Not a word we recognize diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index 6917daacaf2..4a3c1f48252 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -10,7 +10,6 @@ use std::cell::RefCell; use std::collections::BTreeMap; -use std::ops::Deref; use ast; use ast::{Ident, Name, TokenTree}; @@ -59,7 +58,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, match diagnostics.insert(code.name, span) { Some(previous_span) => { ecx.span_warn(span, &format!( - "diagnostic code {} already used", token::get_ident(code).deref() + "diagnostic code {} already used", &token::get_ident(code)[] )[]); ecx.span_note(previous_span, "previous invocation"); }, @@ -70,7 +69,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if !diagnostics.contains_key(&code.name) { ecx.span_err(span, &format!( - "used diagnostic code {} not registered", token::get_ident(code).deref() + "used diagnostic code {} not registered", &token::get_ident(code)[] )[]); } }); @@ -95,12 +94,12 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if diagnostics.insert(code.name, description).is_some() { ecx.span_err(span, &format!( - "diagnostic code {} already registered", token::get_ident(*code).deref() + "diagnostic code {} already registered", &token::get_ident(*code)[] )[]); } }); let sym = Ident::new(token::gensym(&( - "__register_diagnostic_".to_string() + token::get_ident(*code).deref() + "__register_diagnostic_".to_string() + &token::get_ident(*code)[] )[])); MacItems::new(vec![quote_item!(ecx, mod $sym {}).unwrap()].into_iter()) } diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 8a12557e477..8c710545cb0 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -22,8 +22,6 @@ use parse::token::InternedString; use parse::token; use ptr::P; -use std::ops::Deref; - enum State { Asm, Outputs, @@ -104,7 +102,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) // It's the opposite of '=&' which means that the memory // cannot be shared with any other operand (usually when // a register is clobbered early.) - let output = match constraint.deref().slice_shift_char() { + let output = match constraint.slice_shift_char() { Some(('=', _)) => None, Some(('+', operand)) => { Some(token::intern_and_get_ident(&format!( @@ -131,9 +129,9 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) let (constraint, _str_style) = p.parse_str(); - if constraint.deref().starts_with("=") { + if constraint.starts_with("=") { cx.span_err(p.last_span, "input operand constraint contains '='"); - } else if constraint.deref().starts_with("+") { + } else if constraint.starts_with("+") { cx.span_err(p.last_span, "input operand constraint contains '+'"); } @@ -215,7 +213,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) MacExpr::new(P(ast::Expr { id: ast::DUMMY_NODE_ID, node: ast::ExprInlineAsm(ast::InlineAsm { - asm: token::intern_and_get_ident(asm.deref()), + asm: token::intern_and_get_ident(&asm[]), asm_str_style: asm_str_style.unwrap(), outputs: outputs, inputs: inputs, diff --git a/src/libsyntax/ext/base.rs b/src/libsyntax/ext/base.rs index 21f00f0934d..b5f6893a8c2 100644 --- a/src/libsyntax/ext/base.rs +++ b/src/libsyntax/ext/base.rs @@ -28,7 +28,6 @@ use fold::Folder; use std::collections::HashMap; use std::rc::Rc; -use std::ops::Deref; pub trait ItemDecorator { fn expand(&self, @@ -791,7 +790,7 @@ pub fn get_single_str_from_tts(cx: &mut ExtCtxt, cx.span_err(sp, &format!("{} takes 1 argument", name)[]); } expr_to_string(cx, ret, "argument must be a string literal").map(|(s, _)| { - s.deref().to_string() + s.to_string() }) } diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 18373219aa1..55faf692e98 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -21,8 +21,6 @@ use parse::token::InternedString; use parse::token; use ptr::P; -use std::ops::Deref; - // Transitional reexports so qquote can find the paths it is looking for mod syntax { pub use ext; @@ -577,7 +575,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> { fn expr_field_access(&self, sp: Span, expr: P, ident: ast::Ident) -> P { let field_name = token::get_ident(ident); let field_span = Span { - lo: sp.lo - Pos::from_usize(field_name.deref().len()), + lo: sp.lo - Pos::from_usize(field_name.len()), hi: sp.hi, expn_id: sp.expn_id, }; diff --git a/src/libsyntax/ext/concat.rs b/src/libsyntax/ext/concat.rs index 9dbc097be27..849d8bff365 100644 --- a/src/libsyntax/ext/concat.rs +++ b/src/libsyntax/ext/concat.rs @@ -15,7 +15,6 @@ use ext::build::AstBuilder; use parse::token; use std::string::String; -use std::ops::Deref; pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, sp: codemap::Span, @@ -33,7 +32,7 @@ pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, ast::LitStr(ref s, _) | ast::LitFloat(ref s, _) | ast::LitFloatUnsuffixed(ref s) => { - accumulator.push_str(s.deref()); + accumulator.push_str(&s[]); } ast::LitChar(c) => { accumulator.push(c); diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs index feadaaf29c4..14de5803604 100644 --- a/src/libsyntax/ext/concat_idents.rs +++ b/src/libsyntax/ext/concat_idents.rs @@ -16,8 +16,6 @@ use parse::token; use parse::token::{str_to_ident}; use ptr::P; -use std::ops::Deref; - pub fn expand_syntax_ext<'cx>(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box { let mut res_str = String::new(); @@ -33,7 +31,7 @@ pub fn expand_syntax_ext<'cx>(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree] } else { match *e { ast::TtToken(_, token::Ident(ident, _)) => { - res_str.push_str(token::get_ident(ident).deref()) + res_str.push_str(&token::get_ident(ident)[]) }, _ => { cx.span_err(sp, "concat_idents! requires ident args."); diff --git a/src/libsyntax/ext/deriving/bounds.rs b/src/libsyntax/ext/deriving/bounds.rs index dcef20a9931..1c82ca5d2ad 100644 --- a/src/libsyntax/ext/deriving/bounds.rs +++ b/src/libsyntax/ext/deriving/bounds.rs @@ -15,8 +15,6 @@ use ext::deriving::generic::*; use ext::deriving::generic::ty::*; use ptr::P; -use std::ops::Deref; - pub fn expand_deriving_bound(cx: &mut ExtCtxt, span: Span, mitem: &MetaItem, @@ -26,7 +24,7 @@ pub fn expand_deriving_bound(cx: &mut ExtCtxt, { let name = match mitem.node { MetaWord(ref tname) => { - match tname.deref() { + match &tname[] { "Copy" => "Copy", "Send" | "Sync" => { return cx.span_err(span, diff --git a/src/libsyntax/ext/deriving/generic/mod.rs b/src/libsyntax/ext/deriving/generic/mod.rs index 4a67ebc190f..28573ef757b 100644 --- a/src/libsyntax/ext/deriving/generic/mod.rs +++ b/src/libsyntax/ext/deriving/generic/mod.rs @@ -189,7 +189,6 @@ use self::StructType::*; use std::cell::RefCell; use std::vec; -use std::ops::Deref; use abi::Abi; use abi; @@ -364,7 +363,7 @@ impl<'a> TraitDef<'a> { // generated implementations are linted let mut attrs = newitem.attrs.clone(); attrs.extend(item.attrs.iter().filter(|a| { - match a.name().deref() { + match &a.name()[] { "allow" | "warn" | "deny" | "forbid" => true, _ => false, } diff --git a/src/libsyntax/ext/deriving/mod.rs b/src/libsyntax/ext/deriving/mod.rs index dd093f3ac2c..318b748ad7f 100644 --- a/src/libsyntax/ext/deriving/mod.rs +++ b/src/libsyntax/ext/deriving/mod.rs @@ -18,8 +18,6 @@ use ext::base::ExtCtxt; use codemap::Span; use ptr::P; -use std::ops::Deref; - pub mod bounds; pub mod clone; pub mod encodable; @@ -76,7 +74,7 @@ pub fn expand_meta_derive(cx: &mut ExtCtxt, |i| push(i))) } - match tname.deref() { + match &tname[] { "Clone" => expand!(clone::expand_deriving_clone), "Hash" => expand!(hash::expand_deriving_hash), diff --git a/src/libsyntax/ext/deriving/show.rs b/src/libsyntax/ext/deriving/show.rs index b315b1bfe18..49f766eb957 100644 --- a/src/libsyntax/ext/deriving/show.rs +++ b/src/libsyntax/ext/deriving/show.rs @@ -20,7 +20,6 @@ use parse::token; use ptr::P; use std::collections::HashMap; -use std::ops::Deref; pub fn expand_deriving_show(cx: &mut ExtCtxt, span: Span, @@ -73,7 +72,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, } }; - let mut format_string = String::from_str(token::get_ident(name).deref()); + let mut format_string = String::from_str(&token::get_ident(name)[]); // the internal fields we're actually formatting let mut exprs = Vec::new(); @@ -108,7 +107,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, let name = token::get_ident(field.name.unwrap()); format_string.push_str(" "); - format_string.push_str(name.deref()); + format_string.push_str(&name[]); format_string.push_str(": {:?}"); exprs.push(field.self_.clone()); diff --git a/src/libsyntax/ext/env.rs b/src/libsyntax/ext/env.rs index 63d563adf26..2298686e8c1 100644 --- a/src/libsyntax/ext/env.rs +++ b/src/libsyntax/ext/env.rs @@ -23,7 +23,6 @@ use parse::token; use std::env; use std::os; -use std::ops::Deref; pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box { @@ -103,9 +102,9 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } } - let e = match os::getenv(var.deref()) { + let e = match os::getenv(&var[]) { None => { - cx.span_err(sp, msg.deref()); + cx.span_err(sp, &msg[]); cx.expr_usize(sp, 0) } Some(s) => cx.expr_str(sp, token::intern_and_get_ident(&s[])) diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 2439c348046..e43ca9db8b1 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -32,8 +32,6 @@ use util::small_vector::SmallVector; use visit; use visit::Visitor; -use std::ops::Deref; - pub fn expand_type(t: P, fld: &mut MacroExpander, impl_ty: Option>) @@ -377,7 +375,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("macro undefined: '{}!'", - extnamestr.deref())[]); + &extnamestr[])[]); // let compilation continue None @@ -387,7 +385,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extnamestr.deref().to_string(), + name: extnamestr.to_string(), format: MacroBang, span: exp_span, }, @@ -413,7 +411,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("non-expression macro in expression position: {}", - &extnamestr.deref()[] + &extnamestr[] )[]); return None; } @@ -424,7 +422,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("'{}' is not a tt-style macro", - extnamestr.deref())[]); + &extnamestr[])[]); None } } @@ -508,14 +506,14 @@ fn expand_item_modifiers(mut it: P, fld: &mut MacroExpander) for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.deref())) { + match fld.cx.syntax_env.find(&intern(&mname[])) { Some(rc) => match *rc { Modifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.deref().to_string(), + name: mname.to_string(), format: MacroAttribute, span: None, } @@ -615,7 +613,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.deref().to_string(), + name: extnamestr.to_string(), format: MacroBang, span: span } @@ -628,13 +626,13 @@ pub fn expand_item_mac(it: P, if it.ident.name == parse::token::special_idents::invalid.name { fld.cx.span_err(path_span, &format!("macro {}! expects an ident argument", - extnamestr.deref())[]); + &extnamestr[])[]); return SmallVector::zero(); } fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.deref().to_string(), + name: extnamestr.to_string(), format: MacroBang, span: span } @@ -653,7 +651,7 @@ pub fn expand_item_mac(it: P, fld.cx.bt_push(ExpnInfo { call_site: it.span, callee: NameAndSpan { - name: extnamestr.deref().to_string(), + name: extnamestr.to_string(), format: MacroBang, span: None, } @@ -679,7 +677,7 @@ pub fn expand_item_mac(it: P, _ => { fld.cx.span_err(it.span, &format!("{}! is not legal in item position", - extnamestr.deref())[]); + &extnamestr[])[]); return SmallVector::zero(); } } @@ -698,7 +696,7 @@ pub fn expand_item_mac(it: P, None => { fld.cx.span_err(path_span, &format!("non-item macro in item position: {}", - extnamestr.deref())[]); + &extnamestr[])[]); return SmallVector::zero(); } }; @@ -952,7 +950,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { fld.cx.bt_push(ExpnInfo { call_site: span, callee: NameAndSpan { - name: extnamestr.deref().to_string(), + name: extnamestr.to_string(), format: MacroBang, span: tt_span } @@ -970,7 +968,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { pth.span, &format!( "non-pattern macro in pattern position: {}", - extnamestr.deref() + &extnamestr[] )[] ); return DummyResult::raw_pat(span); @@ -983,7 +981,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { _ => { fld.cx.span_err(span, &format!("{}! is not legal in pattern position", - extnamestr.deref())[]); + &extnamestr[])[]); return DummyResult::raw_pat(span); } } @@ -1067,7 +1065,7 @@ fn expand_annotatable(a: Annotatable, for attr in a.attrs() { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.deref())) { + match fld.cx.syntax_env.find(&intern(&mname[])) { Some(rc) => match *rc { Decorator(ref dec) => { let it = match a { @@ -1081,7 +1079,7 @@ fn expand_annotatable(a: Annotatable, fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.deref().to_string(), + name: mname.to_string(), format: MacroAttribute, span: None } @@ -1182,7 +1180,7 @@ fn modifiers(attrs: &Vec, fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(attr.name().deref())) { + match fld.cx.syntax_env.find(&intern(&attr.name()[])) { Some(rc) => match *rc { Modifier(_) => true, _ => false @@ -1197,7 +1195,7 @@ fn multi_modifiers(attrs: &[ast::Attribute], fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(attr.name().deref())) { + match fld.cx.syntax_env.find(&intern(&attr.name()[])) { Some(rc) => match *rc { MultiModifier(_) => true, _ => false @@ -1222,14 +1220,14 @@ fn expand_item_multi_modifier(mut it: Annotatable, for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(mname.deref())) { + match fld.cx.syntax_env.find(&intern(&mname[])) { Some(rc) => match *rc { MultiModifier(ref mac) => { attr::mark_used(attr); fld.cx.bt_push(ExpnInfo { call_site: attr.span, callee: NameAndSpan { - name: mname.deref().to_string(), + name: mname.to_string(), format: MacroAttribute, span: None, } diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index 5df5e1babd1..af357e45a7c 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -23,7 +23,6 @@ use ptr::P; use std::collections::HashMap; use std::iter::repeat; -use std::ops::Deref; #[derive(PartialEq)] enum ArgumentType { @@ -119,7 +118,8 @@ fn parse_args(ecx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } }; let interned_name = token::get_ident(ident); - let name = interned_name.deref(); + let name = &interned_name[]; + p.expect(&token::Eq); let e = p.parse_expr(); match names.get(name) { @@ -673,7 +673,8 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span, None => return DummyResult::raw_expr(sp) }; - let mut parser = parse::Parser::new(fmt.deref()); + let mut parser = parse::Parser::new(&fmt[]); + loop { match parser.next() { Some(piece) => { diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index b3c686abcf6..67990895d07 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -25,8 +25,6 @@ use ptr::P; /// as antiquotes (splices). pub mod rt { - use std::ops::Deref; - use ast; use codemap::Spanned; use ext::base::ExtCtxt; @@ -163,7 +161,7 @@ pub mod rt { impl ToSource for ast::Ident { fn to_source(&self) -> String { - token::get_ident(*self).deref().to_string() + token::get_ident(*self).to_string() } } diff --git a/src/libsyntax/ext/source_util.rs b/src/libsyntax/ext/source_util.rs index 0458a56d050..be02ba5ddc2 100644 --- a/src/libsyntax/ext/source_util.rs +++ b/src/libsyntax/ext/source_util.rs @@ -22,7 +22,6 @@ use util::small_vector::SmallVector; use std::old_io::File; use std::rc::Rc; -use std::ops::Deref; // These macros all relate to the file system; they either return // the column/row/filename of the expression, or they include @@ -74,7 +73,7 @@ pub fn expand_mod(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) base::check_zero_tts(cx, sp, tts, "module_path!"); let string = cx.mod_path() .iter() - .map(|x| token::get_ident(*x).deref().to_string()) + .map(|x| token::get_ident(*x).to_string()) .collect::>() .connect("::"); base::MacExpr::new(cx.expr_str( diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index da233c79ea4..21c65d7fbf6 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -99,7 +99,6 @@ use std::mem; use std::rc::Rc; use std::collections::HashMap; use std::collections::hash_map::Entry::{Vacant, Occupied}; -use std::ops::Deref; // To avoid costly uniqueness checks, we require that `MatchSeq` always has // a nonempty body. @@ -230,7 +229,7 @@ pub fn nameize(p_s: &ParseSess, ms: &[TokenTree], res: &[Rc]) p_s.span_diagnostic .span_fatal(sp, &format!("duplicated bind name: {}", - string.deref())[]) + &string[])[]) } } } @@ -488,7 +487,7 @@ pub fn parse(sess: &ParseSess, let name_string = token::get_ident(name); let match_cur = ei.match_cur; (&mut ei.matches[match_cur]).push(Rc::new(MatchedNonterminal( - parse_nt(&mut rust_parser, span, name_string.deref())))); + parse_nt(&mut rust_parser, span, &name_string[])))); ei.idx += 1us; ei.match_cur += 1; } diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 7447c004024..26d16c1c720 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -21,6 +21,7 @@ //! For the purpose of future feature-tracking, once code for detection of feature //! gate usage is added, *do not remove it again* even once the feature //! becomes stable. + use self::Status::*; use abi::RustIntrinsic; @@ -36,7 +37,6 @@ use parse::token::{self, InternedString}; use std::slice; use std::ascii::AsciiExt; -use std::ops::Deref; // If you change this list without updating src/doc/reference.md, @cmr will be sad // Don't ever remove anything from this list; set them to 'Removed'. @@ -252,7 +252,7 @@ impl<'a> PostExpansionVisitor<'a> { impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { fn visit_name(&mut self, sp: Span, name: ast::Name) { - if !token::get_name(name).deref().is_ascii() { + if !token::get_name(name).is_ascii() { self.gate_feature("non_ascii_idents", sp, "non-ascii idents are not fully supported."); } @@ -379,7 +379,7 @@ impl<'a, 'v> Visitor<'v> for PostExpansionVisitor<'a> { let links_to_llvm = match attr::first_attr_value_str_by_name(&i.attrs, "link_name") { - Some(val) => val.deref().starts_with("llvm."), + Some(val) => val.starts_with("llvm."), _ => false }; if links_to_llvm { diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index 3ff51f99307..3107f47de78 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -84,7 +84,6 @@ use std::mem; use std::num::Float; use std::rc::Rc; use std::slice; -use std::ops::Deref; bitflags! { flags Restrictions: u8 { @@ -5134,7 +5133,7 @@ impl<'a> Parser<'a> { outer_attrs, "path") { Some(d) => (dir_path.join(d), true), None => { - let mod_name = mod_string.deref().to_string(); + let mod_name = mod_string.to_string(); let default_path_str = format!("{}.rs", mod_name); let secondary_path_str = format!("{}/mod.rs", mod_name); let default_path = dir_path.join(&default_path_str[]); @@ -5146,7 +5145,7 @@ impl<'a> Parser<'a> { self.span_err(id_sp, "cannot declare a new module at this location"); let this_module = match self.mod_path_stack.last() { - Some(name) => name.deref().to_string(), + Some(name) => name.to_string(), None => self.root_module_name.as_ref().unwrap().clone(), }; self.span_note(id_sp, @@ -5192,7 +5191,7 @@ impl<'a> Parser<'a> { }; self.eval_src_mod_from_path(file_path, owns_directory, - mod_string.deref().to_string(), id_sp) + mod_string.to_string(), id_sp) } fn eval_src_mod_from_path(&mut self, diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 755ccfb0094..45f4f044ea4 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -639,7 +639,7 @@ impl BytesContainer for InternedString { // of `BytesContainer`, which is itself a workaround for the lack of // DST. unsafe { - let this = self.deref(); + let this = &self[]; mem::transmute::<&[u8],&[u8]>(this.container_as_bytes()) } } diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 455e5043042..a244c9de62b 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -30,7 +30,6 @@ use ptr::P; use std::{ascii, mem}; use std::old_io::{self, IoResult}; use std::iter; -use std::ops::Deref; pub enum AnnNode<'a> { NodeIdent(&'a ast::Ident), @@ -259,7 +258,7 @@ pub fn token_to_string(tok: &Token) -> String { } /* Name components */ - token::Ident(s, _) => token::get_ident(s).deref().to_string(), + token::Ident(s, _) => token::get_ident(s).to_string(), token::Lifetime(s) => format!("{}", token::get_ident(s)), token::Underscore => "_".to_string(), @@ -799,7 +798,7 @@ impl<'a> State<'a> { try!(self.head(&visibility_qualified(item.vis, "extern crate")[])); if let Some((ref p, style)) = *optional_path { - try!(self.print_string(p.deref(), style)); + try!(self.print_string(p, style)); try!(space(&mut self.s)); try!(word(&mut self.s, "as")); try!(space(&mut self.s)); @@ -1314,7 +1313,7 @@ impl<'a> State<'a> { try!(self.hardbreak_if_not_bol()); try!(self.maybe_print_comment(attr.span.lo)); if attr.node.is_sugared_doc { - word(&mut self.s, attr.value_str().unwrap().deref()) + word(&mut self.s, &attr.value_str().unwrap()[]) } else { match attr.node.style { ast::AttrInner => try!(word(&mut self.s, "#![")), @@ -1848,17 +1847,17 @@ impl<'a> State<'a> { ast::ExprInlineAsm(ref a) => { try!(word(&mut self.s, "asm!")); try!(self.popen()); - try!(self.print_string(a.asm.deref(), a.asm_str_style)); + try!(self.print_string(&a.asm[], a.asm_str_style)); try!(self.word_space(":")); try!(self.commasep(Inconsistent, &a.outputs[], |s, &(ref co, ref o, is_rw)| { - match co.deref().slice_shift_char() { + match co.slice_shift_char() { Some(('=', operand)) if is_rw => { try!(s.print_string(&format!("+{}", operand)[], ast::CookedStr)) } - _ => try!(s.print_string(co.deref(), ast::CookedStr)) + _ => try!(s.print_string(&co[], ast::CookedStr)) } try!(s.popen()); try!(s.print_expr(&**o)); @@ -1870,7 +1869,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.inputs[], |s, &(ref co, ref o)| { - try!(s.print_string(co.deref(), ast::CookedStr)); + try!(s.print_string(&co[], ast::CookedStr)); try!(s.popen()); try!(s.print_expr(&**o)); try!(s.pclose()); @@ -1881,7 +1880,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.clobbers[], |s, co| { - try!(s.print_string(co.deref(), ast::CookedStr)); + try!(s.print_string(&co[], ast::CookedStr)); Ok(()) })); @@ -1955,7 +1954,7 @@ impl<'a> State<'a> { let encoded = ident.encode_with_hygiene(); try!(word(&mut self.s, &encoded[])) } else { - try!(word(&mut self.s, token::get_ident(ident).deref())) + try!(word(&mut self.s, &token::get_ident(ident)[])) } self.ann.post(self, NodeIdent(&ident)) } @@ -1965,7 +1964,7 @@ impl<'a> State<'a> { } pub fn print_name(&mut self, name: ast::Name) -> IoResult<()> { - try!(word(&mut self.s, token::get_name(name).deref())); + try!(word(&mut self.s, &token::get_name(name)[])); self.ann.post(self, NodeName(&name)) } @@ -2533,15 +2532,15 @@ impl<'a> State<'a> { try!(self.ibox(indent_unit)); match item.node { ast::MetaWord(ref name) => { - try!(word(&mut self.s, name.deref())); + try!(word(&mut self.s, &name[])); } ast::MetaNameValue(ref name, ref value) => { - try!(self.word_space(name.deref())); + try!(self.word_space(&name[])); try!(self.word_space("=")); try!(self.print_literal(value)); } ast::MetaList(ref name, ref items) => { - try!(word(&mut self.s, name.deref())); + try!(word(&mut self.s, &name[])); try!(self.popen()); try!(self.commasep(Consistent, &items[], @@ -2732,7 +2731,7 @@ impl<'a> State<'a> { _ => () } match lit.node { - ast::LitStr(ref st, style) => self.print_string(st.deref(), style), + ast::LitStr(ref st, style) => self.print_string(&st[], style), ast::LitByte(byte) => { let mut res = String::from_str("b'"); ascii::escape_default(byte, |c| res.push(c as char)); @@ -2773,10 +2772,10 @@ impl<'a> State<'a> { word(&mut self.s, &format!( "{}{}", - f.deref(), + &f[], &ast_util::float_ty_to_string(t)[])[]) } - ast::LitFloatUnsuffixed(ref f) => word(&mut self.s, f.deref()), + ast::LitFloatUnsuffixed(ref f) => word(&mut self.s, &f[]), ast::LitBool(val) => { if val { word(&mut self.s, "true") } else { word(&mut self.s, "false") } } diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index 14f8dc5aa3d..ddebf07ece5 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -37,8 +37,6 @@ use {ast, ast_util}; use ptr::P; use util::small_vector::SmallVector; -use std::ops::Deref; - enum ShouldFail { No, Yes(Option), @@ -514,7 +512,7 @@ fn mk_test_module(cx: &mut TestCtxt) -> (P, Option>) { }); let reexport = cx.reexport_test_harness_main.as_ref().map(|s| { // building `use = __test::main` - let reexport_ident = token::str_to_ident(s.deref()); + let reexport_ident = token::str_to_ident(&s[]); let use_path = nospan(ast::ViewPathSimple(reexport_ident, @@ -577,7 +575,7 @@ fn mk_tests(cx: &TestCtxt) -> P { fn is_test_crate(krate: &ast::Crate) -> bool { match attr::find_crate_name(&krate.attrs[]) { - Some(ref s) if "test" == &s.deref()[] => true, + Some(ref s) if "test" == &s[] => true, _ => false } } -- cgit 1.4.1-3-g733a5 From 7b973ba827076fcee194521b21a3b30caab41012 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 21:48:12 +0100 Subject: Update to last version, remove "[]" as much as possible --- src/librustc/lint/builtin.rs | 12 ++++++------ src/librustc/lint/context.rs | 4 ++-- src/librustc/metadata/creader.rs | 4 ++-- src/librustc/metadata/encoder.rs | 6 +++--- src/librustc/middle/check_match.rs | 4 ++-- src/librustc/middle/infer/error_reporting.rs | 2 +- src/librustc/middle/stability.rs | 6 +++--- src/librustc/middle/traits/error_reporting.rs | 2 +- src/librustc/middle/weak_lang_items.rs | 2 +- src/librustc/util/ppaux.rs | 2 +- src/librustc_borrowck/borrowck/mod.rs | 4 ++-- src/librustc_resolve/build_reduced_graph.rs | 2 +- src/librustc_resolve/lib.rs | 28 +++++++++++++-------------- src/librustc_trans/back/link.rs | 2 +- src/librustc_trans/save/mod.rs | 14 +++++++------- src/librustc_trans/trans/asm.rs | 2 +- src/librustc_trans/trans/base.rs | 8 ++++---- src/librustc_trans/trans/consts.rs | 4 ++-- src/librustc_trans/trans/debuginfo.rs | 14 +++++++------- src/librustc_trans/trans/foreign.rs | 6 +++--- src/librustc_typeck/astconv.rs | 3 +-- src/librustc_typeck/check/mod.rs | 6 +++--- src/libsyntax/ast.rs | 6 +++--- src/libsyntax/attr.rs | 6 +++--- src/libsyntax/diagnostics/plugin.rs | 8 ++++---- src/libsyntax/ext/asm.rs | 2 +- src/libsyntax/ext/concat.rs | 2 +- src/libsyntax/ext/concat_idents.rs | 2 +- src/libsyntax/ext/deriving/show.rs | 4 ++-- src/libsyntax/ext/env.rs | 6 +++--- src/libsyntax/ext/expand.rs | 24 +++++++++++------------ src/libsyntax/ext/format.rs | 2 +- src/libsyntax/ext/tt/macro_parser.rs | 4 ++-- src/libsyntax/parse/token.rs | 2 +- src/libsyntax/print/pprust.rs | 22 ++++++++++----------- src/libsyntax/test.rs | 2 +- 36 files changed, 114 insertions(+), 115 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/librustc/lint/builtin.rs b/src/librustc/lint/builtin.rs index 30863c81aa2..44e40ee297f 100644 --- a/src/librustc/lint/builtin.rs +++ b/src/librustc/lint/builtin.rs @@ -801,10 +801,10 @@ impl LintPass for UnusedResults { None => {} Some(s) => { msg.push_str(": "); - msg.push_str(&s[]); + msg.push_str(&s); } } - cx.span_lint(UNUSED_MUST_USE, sp, &msg[]); + cx.span_lint(UNUSED_MUST_USE, sp, &msg); return true; } } @@ -844,7 +844,7 @@ impl NonCamelCaseTypes { let s = token::get_ident(ident); if !is_camel_case(ident) { - let c = to_camel_case(&s[]); + let c = to_camel_case(&s); let m = if c.is_empty() { format!("{} `{}` should have a camel case name such as `CamelCase`", sort, s) } else { @@ -996,7 +996,7 @@ impl NonSnakeCase { let s = token::get_ident(ident); if !is_snake_case(ident) { - let sc = NonSnakeCase::to_snake_case(&s[]); + let sc = NonSnakeCase::to_snake_case(&s); if sc != &s[] { cx.span_lint(NON_SNAKE_CASE, span, &*format!("{} `{}` should have a snake case name such as `{}`", @@ -1078,7 +1078,7 @@ impl NonUpperCaseGlobals { let s = token::get_ident(ident); if s.chars().any(|c| c.is_lowercase()) { - let uc: String = NonSnakeCase::to_snake_case(&s[]).chars() + let uc: String = NonSnakeCase::to_snake_case(&s).chars() .map(|c| c.to_uppercase()).collect(); if uc != &s[] { cx.span_lint(NON_UPPER_CASE_GLOBALS, span, @@ -1241,7 +1241,7 @@ impl LintPass for UnusedImportBraces { match items[0].node { ast::PathListIdent {ref name, ..} => { let m = format!("braces around {} is unnecessary", - &token::get_ident(*name)[]); + &token::get_ident(*name)); cx.span_lint(UNUSED_IMPORT_BRACES, item.span, &m[]); }, diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs index 0db7c802abb..18628f6903f 100644 --- a/src/librustc/lint/context.rs +++ b/src/librustc/lint/context.rs @@ -341,7 +341,7 @@ pub fn gather_attrs(attrs: &[ast::Attribute]) -> Vec> { let mut out = vec!(); for attr in attrs { - let level = match Level::from_str(&attr.name()[]) { + let level = match Level::from_str(&attr.name()) { None => continue, Some(lvl) => lvl, }; @@ -499,7 +499,7 @@ impl<'a, 'tcx> Context<'a, 'tcx> { continue; } Ok((lint_name, level, span)) => { - match self.lints.find_lint(&lint_name[], &self.tcx.sess, Some(span)) { + match self.lints.find_lint(&lint_name, &self.tcx.sess, Some(span)) { Some(lint_id) => vec![(lint_id, level, span)], None => { match self.lints.lint_groups.get(&lint_name[]) { diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index 304ff80845c..d15c902c7e1 100644 --- a/src/librustc/metadata/creader.rs +++ b/src/librustc/metadata/creader.rs @@ -170,7 +170,7 @@ impl<'a> CrateReader<'a> { fn process_crate(&self, c: &ast::Crate) { for a in c.attrs.iter().filter(|m| m.name() == "link_args") { match a.value_str() { - Some(ref linkarg) => self.sess.cstore.add_used_link_args(&linkarg[]), + Some(ref linkarg) => self.sess.cstore.add_used_link_args(&linkarg), None => { /* fallthrough */ } } } @@ -237,7 +237,7 @@ impl<'a> CrateReader<'a> { .collect::>(); for m in &link_args { match m.value_str() { - Some(linkarg) => self.sess.cstore.add_used_link_args(&linkarg[]), + Some(linkarg) => self.sess.cstore.add_used_link_args(&linkarg), None => { /* fallthrough */ } } } diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index e0ea1573681..37055f851b4 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -86,7 +86,7 @@ pub struct EncodeContext<'a, 'tcx: 'a> { } fn encode_name(rbml_w: &mut Encoder, name: ast::Name) { - rbml_w.wr_tagged_str(tag_paths_data_name, &token::get_name(name)[]); + rbml_w.wr_tagged_str(tag_paths_data_name, &token::get_name(name)); } fn encode_impl_type_basename(rbml_w: &mut Encoder, name: ast::Ident) { @@ -372,7 +372,7 @@ fn encode_path>(rbml_w: &mut Encoder, path: PI) { ast_map::PathMod(_) => tag_path_elem_mod, ast_map::PathName(_) => tag_path_elem_name }; - rbml_w.wr_tagged_str(tag, &token::get_name(pe.name())[]); + rbml_w.wr_tagged_str(tag, &token::get_name(pe.name())); } rbml_w.end_tag(); } @@ -1695,7 +1695,7 @@ fn encode_paren_sugar(rbml_w: &mut Encoder, paren_sugar: bool) { fn encode_associated_type_names(rbml_w: &mut Encoder, names: &[ast::Name]) { rbml_w.start_tag(tag_associated_type_names); for &name in names { - rbml_w.wr_tagged_str(tag_associated_type_name, &token::get_name(name)[]); + rbml_w.wr_tagged_str(tag_associated_type_name, &token::get_name(name)); } rbml_w.end_tag(); } diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 12573bf0ffd..dda34426bfc 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -249,11 +249,11 @@ fn check_for_bindings_named_the_same_as_variants(cx: &MatchCheckCtxt, pat: &Pat) span_warn!(cx.tcx.sess, p.span, E0170, "pattern binding `{}` is named the same as one \ of the variants of the type `{}`", - &token::get_ident(ident.node)[], ty_to_string(cx.tcx, pat_ty)); + &token::get_ident(ident.node), ty_to_string(cx.tcx, pat_ty)); span_help!(cx.tcx.sess, p.span, "if you meant to match on a variant, \ consider making the path in the pattern qualified: `{}::{}`", - ty_to_string(cx.tcx, pat_ty), &token::get_ident(ident.node)[]); + ty_to_string(cx.tcx, pat_ty), &token::get_ident(ident.node)); } } } diff --git a/src/librustc/middle/infer/error_reporting.rs b/src/librustc/middle/infer/error_reporting.rs index 90b43dd7f7d..1b513a13588 100644 --- a/src/librustc/middle/infer/error_reporting.rs +++ b/src/librustc/middle/infer/error_reporting.rs @@ -1439,7 +1439,7 @@ impl<'a, 'tcx> ErrorReportingHelpers<'tcx> for InferCtxt<'a, 'tcx> { } infer::BoundRegionInCoherence(name) => { format!(" for lifetime parameter `{}` in coherence check", - &token::get_name(name)[]) + &token::get_name(name)) } infer::UpvarRegion(ref upvar_id, _) => { format!(" for capture of `{}` by closure", diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index 9b9e3ec9474..e817573b89c 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -239,12 +239,12 @@ impl<'a, 'tcx> Checker<'a, 'tcx> { if !self.active_features.contains(feature) { let msg = match *reason { Some(ref r) => format!("use of unstable library feature '{}': {}", - &feature[], &r[]), - None => format!("use of unstable library feature '{}'", &feature[]) + &feature, &r), + None => format!("use of unstable library feature '{}'", &feature) }; emit_feature_warn(&self.tcx.sess.parse_sess.span_diagnostic, - &feature[], span, &msg[]); + &feature, span, &msg); } } Some(..) => { diff --git a/src/librustc/middle/traits/error_reporting.rs b/src/librustc/middle/traits/error_reporting.rs index 0343d9af28d..2197cbeb85d 100644 --- a/src/librustc/middle/traits/error_reporting.rs +++ b/src/librustc/middle/traits/error_reporting.rs @@ -86,7 +86,7 @@ fn report_on_unimplemented<'a, 'tcx>(infcx: &InferCtxt<'a, 'tcx>, }).collect::>(); generic_map.insert("Self".to_string(), trait_ref.self_ty().user_string(infcx.tcx)); - let parser = Parser::new(&istring[]); + let parser = Parser::new(&istring); let mut errored = false; let err: String = parser.filter_map(|p| { match p { diff --git a/src/librustc/middle/weak_lang_items.rs b/src/librustc/middle/weak_lang_items.rs index 7456cc8cb0f..ee3fd681a00 100644 --- a/src/librustc/middle/weak_lang_items.rs +++ b/src/librustc/middle/weak_lang_items.rs @@ -110,7 +110,7 @@ impl<'a, 'v> Visitor<'v> for Context<'a> { fn visit_foreign_item(&mut self, i: &ast::ForeignItem) { match lang_items::extract(&i.attrs) { None => {} - Some(lang_item) => self.register(&lang_item[], i.span), + Some(lang_item) => self.register(&lang_item, i.span), } visit::walk_foreign_item(self, i) } diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index a7a5ea4c7b4..c72b7fdf7ad 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -277,7 +277,7 @@ pub fn ty_to_string<'tcx>(cx: &ctxt<'tcx>, typ: &ty::TyS<'tcx>) -> String { match ident { Some(i) => { s.push(' '); - s.push_str(&token::get_ident(i)[]); + s.push_str(&token::get_ident(i)); } _ => { } } diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index 03f004ccb67..3abb1b694e6 100644 --- a/src/librustc_borrowck/borrowck/mod.rs +++ b/src/librustc_borrowck/borrowck/mod.rs @@ -907,7 +907,7 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> { match loan_path.kind { LpUpvar(ty::UpvarId{ var_id: id, closure_expr_id: _ }) | LpVar(id) => { - out.push_str(&ty::local_var_name_str(self.tcx, id)[]); + out.push_str(&ty::local_var_name_str(self.tcx, id)); } LpDowncast(ref lp_base, variant_def_id) => { @@ -924,7 +924,7 @@ impl<'a, 'tcx> BorrowckCtxt<'a, 'tcx> { match fname { mc::NamedField(fname) => { out.push('.'); - out.push_str(&token::get_name(fname)[]); + out.push_str(&token::get_name(fname)); } mc::PositionalField(idx) => { out.push('.'); diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index fe42817a9c4..2f25f34a92a 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -1020,7 +1020,7 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { self.handle_external_def(def, def_visibility, &*child_name_bindings, - &token::get_name(name)[], + &token::get_name(name), name, root); } diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 0d87f2a17df..a261599a706 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -1093,7 +1093,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { } else { result.push_str("::") } - result.push_str(&token::get_name(*name)[]); + result.push_str(&token::get_name(*name)); }; result } @@ -1708,7 +1708,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { debug!("(resolving glob import) writing resolution `{}` in `{}` \ to `{}`", - &token::get_name(name)[], + &token::get_name(name), self.module_to_string(&*containing_module), self.module_to_string(module_)); @@ -1725,7 +1725,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { let msg = format!("a {} named `{}` has already been imported \ in this module", namespace_name, - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_directive.span, E0251, "{}", msg); } else { let target = Target::new(containing_module.clone(), @@ -1757,7 +1757,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { name: Name, namespace: Namespace) { debug!("check_for_conflicting_import: {}; target exists: {}", - &token::get_name(name)[], + &token::get_name(name), target.is_some()); match *target { @@ -1768,7 +1768,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { TypeNS => "type", ValueNS => "value", }, - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_span, E0252, "{}", &msg[]); } Some(_) | None => {} @@ -1804,7 +1804,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { let msg = format!("import `{0}` conflicts with imported \ crate in this module \ (maybe you meant `use {0}::*`?)", - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_span, E0254, "{}", &msg[]); } Some(_) | None => {} @@ -1826,7 +1826,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { if let Some(ref value) = *name_bindings.value_def.borrow() { let msg = format!("import `{}` conflicts with value \ in this module", - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_span, E0255, "{}", &msg[]); if let Some(span) = value.value_span { self.session.span_note(span, @@ -1844,7 +1844,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { None => { let msg = format!("import `{}` conflicts with type in \ this module", - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_span, E0256, "{}", &msg[]); if let Some(span) = ty.type_span { self.session.span_note(span, @@ -1866,7 +1866,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { _ => { let msg = format!("import `{}` conflicts with existing \ submodule", - &token::get_name(name)[]); + &token::get_name(name)); span_err!(self.session, import_span, E0258, "{}", &msg[]); if let Some(span) = ty.type_span { self.session.span_note(span, @@ -1892,7 +1892,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { span_err!(self.session, span, E0259, "an external crate named `{}` has already \ been imported into this module", - &token::get_name(name)[]); + &token::get_name(name)); } } @@ -1906,7 +1906,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { "the name `{}` conflicts with an external \ crate that has been imported into this \ module", - &token::get_name(name)[]); + &token::get_name(name)); } } @@ -2417,7 +2417,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { allow_private_imports: bool) -> ResolveResult<(Target, bool)> { debug!("(resolving name in module) resolving `{}` in `{}`", - &token::get_name(name)[], + &token::get_name(name), self.module_to_string(&*module_)); // First, check the direct children of the module. @@ -2493,7 +2493,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { // We're out of luck. debug!("(resolving name in module) failed to resolve `{}`", - &token::get_name(name)[]); + &token::get_name(name)); return Failed(None); } @@ -4372,7 +4372,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { let mut smallest = 0; for (i, other) in maybes.iter().enumerate() { - values[i] = lev_distance(name, &other[]); + values[i] = lev_distance(name, &other); if values[i] <= values[smallest] { smallest = i; diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index bfeb73bb546..9f26e9182ab 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -293,7 +293,7 @@ pub fn mangle>(path: PI, // First, connect each component with pairs. for e in path { - push(&mut n, &token::get_name(e.name())[]) + push(&mut n, &token::get_name(e.name())) } match hash { diff --git a/src/librustc_trans/save/mod.rs b/src/librustc_trans/save/mod.rs index 49fd040b25a..e80564097df 100644 --- a/src/librustc_trans/save/mod.rs +++ b/src/librustc_trans/save/mod.rs @@ -355,7 +355,7 @@ impl <'l, 'tcx> DxrVisitor<'l, 'tcx> { }, }; - let qualname = format!("{}::{}", qualname, &get_ident(method.pe_ident())[]); + let qualname = format!("{}::{}", qualname, &get_ident(method.pe_ident())); let qualname = &qualname[]; // record the decl for this def (if it has one) @@ -525,7 +525,7 @@ impl <'l, 'tcx> DxrVisitor<'l, 'tcx> { self.fmt.static_str(item.span, sub_span, item.id, - &get_ident(item.ident)[], + &get_ident(item.ident), &qualname[], &value[], &ty_to_string(&*typ)[], @@ -548,7 +548,7 @@ impl <'l, 'tcx> DxrVisitor<'l, 'tcx> { self.fmt.static_str(item.span, sub_span, item.id, - &get_ident(item.ident)[], + &get_ident(item.ident), &qualname[], "", &ty_to_string(&*typ)[], @@ -607,7 +607,7 @@ impl <'l, 'tcx> DxrVisitor<'l, 'tcx> { } for variant in &enum_definition.variants { let name = get_ident(variant.node.name); - let name = &name[]; + let name = &name; let mut qualname = enum_name.clone(); qualname.push_str("::"); qualname.push_str(name); @@ -1094,7 +1094,7 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DxrVisitor<'l, 'tcx> { sub_span, item.id, mod_id, - &get_ident(ident)[], + &get_ident(ident), self.cur_scope); self.write_sub_paths_truncated(path, true); } @@ -1149,7 +1149,7 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DxrVisitor<'l, 'tcx> { } ast::ItemExternCrate(ref s) => { let name = get_ident(item.ident); - let name = &name[]; + let name = &name; let location = match *s { Some((ref s, _)) => s.to_string(), None => name.to_string(), @@ -1259,7 +1259,7 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DxrVisitor<'l, 'tcx> { }, }; - qualname.push_str(&get_ident(method_type.ident)[]); + qualname.push_str(&get_ident(method_type.ident)); let qualname = &qualname[]; let sub_span = self.span.sub_span_after_keyword(method_type.span, keywords::Fn); diff --git a/src/librustc_trans/trans/asm.rs b/src/librustc_trans/trans/asm.rs index 7ec371cec25..e419be65fc4 100644 --- a/src/librustc_trans/trans/asm.rs +++ b/src/librustc_trans/trans/asm.rs @@ -83,7 +83,7 @@ pub fn trans_inline_asm<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, ia: &ast::InlineAsm) .connect(","); let mut clobbers = ia.clobbers.iter() - .map(|s| format!("~{{{}}}", &s[])) + .map(|s| format!("~{{{}}}", &s)) .collect::>() .connect(","); let more_clobbers = get_clobbers(); diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 089292fa64e..6a97d393ba8 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -2248,7 +2248,7 @@ pub fn update_linkage(ccx: &CrateContext, let item = ccx.tcx().map.get(id); if let ast_map::NodeItem(i) = item { if let Some(name) = attr::first_attr_value_str_by_name(&i.attrs, "linkage") { - if let Some(linkage) = llvm_linkage_by_name(&name[]) { + if let Some(linkage) = llvm_linkage_by_name(&name) { llvm::SetLinkage(llval, linkage); } else { ccx.sess().span_fatal(i.span, "invalid linkage specified"); @@ -2824,9 +2824,9 @@ pub fn get_item_val(ccx: &CrateContext, id: ast::NodeId) -> ValueRef { match attr::first_attr_value_str_by_name(&i.attrs[], "link_section") { Some(sect) => { - if contains_null(§[]) { + if contains_null(§) { ccx.sess().fatal(&format!("Illegal null byte in link_section value: `{}`", - §[])[]); + §)[]); } unsafe { let buf = CString::from_slice(sect.as_bytes()); @@ -2869,7 +2869,7 @@ pub fn get_item_val(ccx: &CrateContext, id: ast::NodeId) -> ValueRef { let abi = ccx.tcx().map.get_foreign_abi(id); let ty = ty::node_id_to_type(ccx.tcx(), ni.id); let name = foreign::link_name(&*ni); - foreign::register_foreign_item_fn(ccx, abi, ty, &name[]) + foreign::register_foreign_item_fn(ccx, abi, ty, &name) } ast::ForeignItemStatic(..) => { foreign::register_static(ccx, &*ni) diff --git a/src/librustc_trans/trans/consts.rs b/src/librustc_trans/trans/consts.rs index 18968e6f885..15fa566d548 100644 --- a/src/librustc_trans/trans/consts.rs +++ b/src/librustc_trans/trans/consts.rs @@ -58,13 +58,13 @@ pub fn const_lit(cx: &CrateContext, e: &ast::Expr, lit: &ast::Lit) } } ast::LitFloat(ref fs, t) => { - C_floating(&fs[], Type::float_from_ty(cx, t)) + C_floating(&fs, Type::float_from_ty(cx, t)) } ast::LitFloatUnsuffixed(ref fs) => { let lit_float_ty = ty::node_id_to_type(cx.tcx(), e.id); match lit_float_ty.sty { ty::ty_float(t) => { - C_floating(&fs[], Type::float_from_ty(cx, t)) + C_floating(&fs, Type::float_from_ty(cx, t)) } _ => { cx.sess().span_bug(lit.span, diff --git a/src/librustc_trans/trans/debuginfo.rs b/src/librustc_trans/trans/debuginfo.rs index 400f03dbb51..c57afcf2ada 100644 --- a/src/librustc_trans/trans/debuginfo.rs +++ b/src/librustc_trans/trans/debuginfo.rs @@ -1350,7 +1350,7 @@ pub fn create_function_debug_context<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, // Get_template_parameters() will append a `<...>` clause to the function // name if necessary. - let mut function_name = String::from_str(&token::get_ident(ident)[]); + let mut function_name = String::from_str(&token::get_ident(ident)); let template_parameters = get_template_parameters(cx, generics, param_substs, @@ -2237,13 +2237,13 @@ impl<'tcx> EnumMemberDescriptionFactory<'tcx> { .get_unique_type_id_of_enum_variant( cx, self.enum_type, - &non_null_variant_name[]); + &non_null_variant_name); // Now we can create the metadata of the artificial struct let artificial_struct_metadata = composite_type_metadata(cx, artificial_struct_llvm_type, - &non_null_variant_name[], + &non_null_variant_name, unique_type_id, &[sole_struct_member_description], self.containing_scope, @@ -2373,7 +2373,7 @@ fn describe_enum_variant<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, // Could do some consistency checks here: size, align, field count, discr type let variant_name = token::get_name(variant_info.name); - let variant_name = &variant_name[]; + let variant_name = &variant_name; let unique_type_id = debug_context(cx).type_map .borrow_mut() .get_unique_type_id_of_enum_variant( @@ -3847,7 +3847,7 @@ fn push_debuginfo_type_name<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, let mut path_element_count = 0; for path_element in path { let name = token::get_name(path_element.name()); - output.push_str(&name[]); + output.push_str(&name); output.push_str("::"); path_element_count += 1; } @@ -3862,7 +3862,7 @@ fn push_debuginfo_type_name<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, let name = token::get_name(path.last() .expect("debuginfo: Empty item path?") .name()); - output.push_str(&name[]); + output.push_str(&name); } }); } @@ -3913,7 +3913,7 @@ impl NamespaceTreeNode { } let string = token::get_name(node.name); output.push_str(&format!("{}", string.len())[]); - output.push_str(&string[]); + output.push_str(&string); } let mut name = String::from_str("_ZN"); diff --git a/src/librustc_trans/trans/foreign.rs b/src/librustc_trans/trans/foreign.rs index a2fe5fa3f17..80b27a8b985 100644 --- a/src/librustc_trans/trans/foreign.rs +++ b/src/librustc_trans/trans/foreign.rs @@ -118,7 +118,7 @@ pub fn register_static(ccx: &CrateContext, // static and call it a day. Some linkages (like weak) will make it such // that the static actually has a null value. Some(name) => { - let linkage = match llvm_linkage_by_name(&name[]) { + let linkage = match llvm_linkage_by_name(&name) { Some(linkage) => linkage, None => { ccx.sess().span_fatal(foreign_item.span, @@ -146,7 +146,7 @@ pub fn register_static(ccx: &CrateContext, // `extern_with_linkage_foo` will instead be initialized to // zero. let mut real_name = "_rust_extern_with_linkage_".to_string(); - real_name.push_str(&ident[]); + real_name.push_str(&ident); let real_name = CString::from_vec(real_name.into_bytes()); let g2 = llvm::LLVMAddGlobal(ccx.llmod(), llty.to_ref(), real_name.as_ptr()); @@ -468,7 +468,7 @@ pub fn trans_foreign_mod(ccx: &CrateContext, foreign_mod: &ast::ForeignMod) { } register_foreign_item_fn(ccx, abi, ty, - &lname[]); + &lname); // Unlike for other items, we shouldn't call // `base::update_linkage` here. Foreign items have // special linkage requirements, which are handled diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 22393a7a291..60771d126b5 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -1164,8 +1164,7 @@ pub fn ast_ty_to_ty<'tcx>( path.segments .last() .unwrap() - .identifier) - []); + .identifier)); this.tcx().types.err } def::DefAssociatedPath(provenance, assoc_ident) => { diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 5b89954c586..9c0d6f7dae3 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -805,7 +805,7 @@ fn check_trait_on_unimplemented<'a, 'tcx>(ccx: &CrateCtxt<'a, 'tcx>, a.check_name("rustc_on_unimplemented") }) { if let Some(ref istring) = attr.value_str() { - let parser = Parser::new(&istring[]); + let parser = Parser::new(&istring); let types = &*generics.ty_params; for token in parser { match token { @@ -3104,7 +3104,7 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>, tcx : &ty::ctxt<'tcx>, skip : Vec<&str>) { let ident = token::get_ident(field.node); - let name = &ident[]; + let name = &ident; // only find fits with at least one matching letter let mut best_dist = name.len(); let fields = ty::lookup_struct_fields(tcx, id); @@ -3286,7 +3286,7 @@ fn check_expr_with_unifier<'a, 'tcx, F>(fcx: &FnCtxt<'a, 'tcx>, let (_, seen) = class_field_map[name]; if !seen { missing_fields.push( - format!("`{}`", &token::get_name(name)[])) + format!("`{}`", &token::get_name(name))) } } diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 7849b7548c4..7e1bf7a2230 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -118,7 +118,7 @@ impl fmt::Debug for Name { impl fmt::Display for Name { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - fmt::Display::fmt(&token::get_name(*self)[], f) + fmt::Display::fmt(&token::get_name(*self), f) } } @@ -174,7 +174,7 @@ impl Name { pub fn as_str<'a>(&'a self) -> &'a str { unsafe { // FIXME #12938: can't use copy_lifetime since &str isn't a &T - ::std::mem::transmute::<&str,&str>(&token::get_name(*self)[]) + ::std::mem::transmute::<&str,&str>(&token::get_name(*self)) } } @@ -193,7 +193,7 @@ pub type Mrk = u32; impl Encodable for Ident { fn encode(&self, s: &mut S) -> Result<(), S::Error> { - s.emit_str(&token::get_ident(*self)[]) + s.emit_str(&token::get_ident(*self)) } } diff --git a/src/libsyntax/attr.rs b/src/libsyntax/attr.rs index cd82d7c9b14..a3afe5780d0 100644 --- a/src/libsyntax/attr.rs +++ b/src/libsyntax/attr.rs @@ -142,7 +142,7 @@ impl AttributeMethods for Attribute { let meta = mk_name_value_item_str( InternedString::new("doc"), token::intern_and_get_ident(&strip_doc_comment_decoration( - &comment[])[])); + &comment)[])); if self.node.style == ast::AttrOuter { f(&mk_attr_outer(self.node.id, meta)) } else { @@ -209,7 +209,7 @@ pub fn mk_attr_outer(id: AttrId, item: P) -> Attribute { pub fn mk_sugared_doc_attr(id: AttrId, text: InternedString, lo: BytePos, hi: BytePos) -> Attribute { - let style = doc_comment_style(&text[]); + let style = doc_comment_style(&text); let lit = spanned(lo, hi, ast::LitStr(text, ast::CookedStr)); let attr = Attribute_ { id: id, @@ -525,7 +525,7 @@ pub fn find_repr_attrs(diagnostic: &SpanHandler, attr: &Attribute) -> Vec Some(ReprExtern), "packed" => Some(ReprPacked), - _ => match int_type_of_word(&word[]) { + _ => match int_type_of_word(&word) { Some(ity) => Some(ReprInt(item.span, ity)), None => { // Not a word we recognize diff --git a/src/libsyntax/diagnostics/plugin.rs b/src/libsyntax/diagnostics/plugin.rs index 4a3c1f48252..833a6d52acb 100644 --- a/src/libsyntax/diagnostics/plugin.rs +++ b/src/libsyntax/diagnostics/plugin.rs @@ -58,7 +58,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, match diagnostics.insert(code.name, span) { Some(previous_span) => { ecx.span_warn(span, &format!( - "diagnostic code {} already used", &token::get_ident(code)[] + "diagnostic code {} already used", &token::get_ident(code) )[]); ecx.span_note(previous_span, "previous invocation"); }, @@ -69,7 +69,7 @@ pub fn expand_diagnostic_used<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if !diagnostics.contains_key(&code.name) { ecx.span_err(span, &format!( - "used diagnostic code {} not registered", &token::get_ident(code)[] + "used diagnostic code {} not registered", &token::get_ident(code) )[]); } }); @@ -94,12 +94,12 @@ pub fn expand_register_diagnostic<'cx>(ecx: &'cx mut ExtCtxt, with_registered_diagnostics(|diagnostics| { if diagnostics.insert(code.name, description).is_some() { ecx.span_err(span, &format!( - "diagnostic code {} already registered", &token::get_ident(*code)[] + "diagnostic code {} already registered", &token::get_ident(*code) )[]); } }); let sym = Ident::new(token::gensym(&( - "__register_diagnostic_".to_string() + &token::get_ident(*code)[] + "__register_diagnostic_".to_string() + &token::get_ident(*code) )[])); MacItems::new(vec![quote_item!(ecx, mod $sym {}).unwrap()].into_iter()) } diff --git a/src/libsyntax/ext/asm.rs b/src/libsyntax/ext/asm.rs index 8c710545cb0..1ceda2e08dd 100644 --- a/src/libsyntax/ext/asm.rs +++ b/src/libsyntax/ext/asm.rs @@ -213,7 +213,7 @@ pub fn expand_asm<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) MacExpr::new(P(ast::Expr { id: ast::DUMMY_NODE_ID, node: ast::ExprInlineAsm(ast::InlineAsm { - asm: token::intern_and_get_ident(&asm[]), + asm: token::intern_and_get_ident(&asm), asm_str_style: asm_str_style.unwrap(), outputs: outputs, inputs: inputs, diff --git a/src/libsyntax/ext/concat.rs b/src/libsyntax/ext/concat.rs index 849d8bff365..80d128959ea 100644 --- a/src/libsyntax/ext/concat.rs +++ b/src/libsyntax/ext/concat.rs @@ -32,7 +32,7 @@ pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, ast::LitStr(ref s, _) | ast::LitFloat(ref s, _) | ast::LitFloatUnsuffixed(ref s) => { - accumulator.push_str(&s[]); + accumulator.push_str(&s); } ast::LitChar(c) => { accumulator.push(c); diff --git a/src/libsyntax/ext/concat_idents.rs b/src/libsyntax/ext/concat_idents.rs index 14de5803604..364cacd735c 100644 --- a/src/libsyntax/ext/concat_idents.rs +++ b/src/libsyntax/ext/concat_idents.rs @@ -31,7 +31,7 @@ pub fn expand_syntax_ext<'cx>(cx: &mut ExtCtxt, sp: Span, tts: &[ast::TokenTree] } else { match *e { ast::TtToken(_, token::Ident(ident, _)) => { - res_str.push_str(&token::get_ident(ident)[]) + res_str.push_str(&token::get_ident(ident)) }, _ => { cx.span_err(sp, "concat_idents! requires ident args."); diff --git a/src/libsyntax/ext/deriving/show.rs b/src/libsyntax/ext/deriving/show.rs index 49f766eb957..821fdeaa86a 100644 --- a/src/libsyntax/ext/deriving/show.rs +++ b/src/libsyntax/ext/deriving/show.rs @@ -72,7 +72,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, } }; - let mut format_string = String::from_str(&token::get_ident(name)[]); + let mut format_string = String::from_str(&token::get_ident(name)); // the internal fields we're actually formatting let mut exprs = Vec::new(); @@ -107,7 +107,7 @@ fn show_substructure(cx: &mut ExtCtxt, span: Span, let name = token::get_ident(field.name.unwrap()); format_string.push_str(" "); - format_string.push_str(&name[]); + format_string.push_str(&name); format_string.push_str(": {:?}"); exprs.push(field.self_.clone()); diff --git a/src/libsyntax/ext/env.rs b/src/libsyntax/ext/env.rs index 2298686e8c1..8f3c9177b9c 100644 --- a/src/libsyntax/ext/env.rs +++ b/src/libsyntax/ext/env.rs @@ -102,12 +102,12 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } } - let e = match os::getenv(&var[]) { + let e = match os::getenv(&var) { None => { - cx.span_err(sp, &msg[]); + cx.span_err(sp, &msg); cx.expr_usize(sp, 0) } - Some(s) => cx.expr_str(sp, token::intern_and_get_ident(&s[])) + Some(s) => cx.expr_str(sp, token::intern_and_get_ident(&s)) }; MacExpr::new(e) } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index e43ca9db8b1..61aae4e98b4 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -375,7 +375,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("macro undefined: '{}!'", - &extnamestr[])[]); + &extnamestr)[]); // let compilation continue None @@ -422,7 +422,7 @@ fn expand_mac_invoc(mac: ast::Mac, span: codemap::Span, fld.cx.span_err( pth.span, &format!("'{}' is not a tt-style macro", - &extnamestr[])[]); + &extnamestr)[]); None } } @@ -506,7 +506,7 @@ fn expand_item_modifiers(mut it: P, fld: &mut MacroExpander) for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(&mname[])) { + match fld.cx.syntax_env.find(&intern(&mname)) { Some(rc) => match *rc { Modifier(ref mac) => { attr::mark_used(attr); @@ -626,7 +626,7 @@ pub fn expand_item_mac(it: P, if it.ident.name == parse::token::special_idents::invalid.name { fld.cx.span_err(path_span, &format!("macro {}! expects an ident argument", - &extnamestr[])[]); + &extnamestr)[]); return SmallVector::zero(); } fld.cx.bt_push(ExpnInfo { @@ -677,7 +677,7 @@ pub fn expand_item_mac(it: P, _ => { fld.cx.span_err(it.span, &format!("{}! is not legal in item position", - &extnamestr[])[]); + &extnamestr)[]); return SmallVector::zero(); } } @@ -696,7 +696,7 @@ pub fn expand_item_mac(it: P, None => { fld.cx.span_err(path_span, &format!("non-item macro in item position: {}", - &extnamestr[])[]); + &extnamestr)[]); return SmallVector::zero(); } }; @@ -968,7 +968,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { pth.span, &format!( "non-pattern macro in pattern position: {}", - &extnamestr[] + &extnamestr )[] ); return DummyResult::raw_pat(span); @@ -981,7 +981,7 @@ fn expand_pat(p: P, fld: &mut MacroExpander) -> P { _ => { fld.cx.span_err(span, &format!("{}! is not legal in pattern position", - &extnamestr[])[]); + &extnamestr)[]); return DummyResult::raw_pat(span); } } @@ -1065,7 +1065,7 @@ fn expand_annotatable(a: Annotatable, for attr in a.attrs() { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(&mname[])) { + match fld.cx.syntax_env.find(&intern(&mname)) { Some(rc) => match *rc { Decorator(ref dec) => { let it = match a { @@ -1180,7 +1180,7 @@ fn modifiers(attrs: &Vec, fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(&attr.name()[])) { + match fld.cx.syntax_env.find(&intern(&attr.name())) { Some(rc) => match *rc { Modifier(_) => true, _ => false @@ -1195,7 +1195,7 @@ fn multi_modifiers(attrs: &[ast::Attribute], fld: &MacroExpander) -> (Vec, Vec) { attrs.iter().cloned().partition(|attr| { - match fld.cx.syntax_env.find(&intern(&attr.name()[])) { + match fld.cx.syntax_env.find(&intern(&attr.name())) { Some(rc) => match *rc { MultiModifier(_) => true, _ => false @@ -1220,7 +1220,7 @@ fn expand_item_multi_modifier(mut it: Annotatable, for attr in &modifiers { let mname = attr.name(); - match fld.cx.syntax_env.find(&intern(&mname[])) { + match fld.cx.syntax_env.find(&intern(&mname)) { Some(rc) => match *rc { MultiModifier(ref mac) => { attr::mark_used(attr); diff --git a/src/libsyntax/ext/format.rs b/src/libsyntax/ext/format.rs index af357e45a7c..96055e3635a 100644 --- a/src/libsyntax/ext/format.rs +++ b/src/libsyntax/ext/format.rs @@ -673,7 +673,7 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span, None => return DummyResult::raw_expr(sp) }; - let mut parser = parse::Parser::new(&fmt[]); + let mut parser = parse::Parser::new(&fmt); loop { match parser.next() { diff --git a/src/libsyntax/ext/tt/macro_parser.rs b/src/libsyntax/ext/tt/macro_parser.rs index 21c65d7fbf6..d752e34c112 100644 --- a/src/libsyntax/ext/tt/macro_parser.rs +++ b/src/libsyntax/ext/tt/macro_parser.rs @@ -229,7 +229,7 @@ pub fn nameize(p_s: &ParseSess, ms: &[TokenTree], res: &[Rc]) p_s.span_diagnostic .span_fatal(sp, &format!("duplicated bind name: {}", - &string[])[]) + &string)[]) } } } @@ -487,7 +487,7 @@ pub fn parse(sess: &ParseSess, let name_string = token::get_ident(name); let match_cur = ei.match_cur; (&mut ei.matches[match_cur]).push(Rc::new(MatchedNonterminal( - parse_nt(&mut rust_parser, span, &name_string[])))); + parse_nt(&mut rust_parser, span, &name_string)))); ei.idx += 1us; ei.match_cur += 1; } diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 45f4f044ea4..39bc7f6f5af 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -639,7 +639,7 @@ impl BytesContainer for InternedString { // of `BytesContainer`, which is itself a workaround for the lack of // DST. unsafe { - let this = &self[]; + let this = &self; mem::transmute::<&[u8],&[u8]>(this.container_as_bytes()) } } diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index a244c9de62b..c177cd1fafa 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1313,7 +1313,7 @@ impl<'a> State<'a> { try!(self.hardbreak_if_not_bol()); try!(self.maybe_print_comment(attr.span.lo)); if attr.node.is_sugared_doc { - word(&mut self.s, &attr.value_str().unwrap()[]) + word(&mut self.s, &attr.value_str().unwrap()) } else { match attr.node.style { ast::AttrInner => try!(word(&mut self.s, "#![")), @@ -1847,7 +1847,7 @@ impl<'a> State<'a> { ast::ExprInlineAsm(ref a) => { try!(word(&mut self.s, "asm!")); try!(self.popen()); - try!(self.print_string(&a.asm[], a.asm_str_style)); + try!(self.print_string(&a.asm, a.asm_str_style)); try!(self.word_space(":")); try!(self.commasep(Inconsistent, &a.outputs[], @@ -1857,7 +1857,7 @@ impl<'a> State<'a> { try!(s.print_string(&format!("+{}", operand)[], ast::CookedStr)) } - _ => try!(s.print_string(&co[], ast::CookedStr)) + _ => try!(s.print_string(&co, ast::CookedStr)) } try!(s.popen()); try!(s.print_expr(&**o)); @@ -1869,7 +1869,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.inputs[], |s, &(ref co, ref o)| { - try!(s.print_string(&co[], ast::CookedStr)); + try!(s.print_string(&co, ast::CookedStr)); try!(s.popen()); try!(s.print_expr(&**o)); try!(s.pclose()); @@ -1880,7 +1880,7 @@ impl<'a> State<'a> { try!(self.commasep(Inconsistent, &a.clobbers[], |s, co| { - try!(s.print_string(&co[], ast::CookedStr)); + try!(s.print_string(&co, ast::CookedStr)); Ok(()) })); @@ -1954,7 +1954,7 @@ impl<'a> State<'a> { let encoded = ident.encode_with_hygiene(); try!(word(&mut self.s, &encoded[])) } else { - try!(word(&mut self.s, &token::get_ident(ident)[])) + try!(word(&mut self.s, &token::get_ident(ident))) } self.ann.post(self, NodeIdent(&ident)) } @@ -1964,7 +1964,7 @@ impl<'a> State<'a> { } pub fn print_name(&mut self, name: ast::Name) -> IoResult<()> { - try!(word(&mut self.s, &token::get_name(name)[])); + try!(word(&mut self.s, &token::get_name(name))); self.ann.post(self, NodeName(&name)) } @@ -2532,7 +2532,7 @@ impl<'a> State<'a> { try!(self.ibox(indent_unit)); match item.node { ast::MetaWord(ref name) => { - try!(word(&mut self.s, &name[])); + try!(word(&mut self.s, &name)); } ast::MetaNameValue(ref name, ref value) => { try!(self.word_space(&name[])); @@ -2540,7 +2540,7 @@ impl<'a> State<'a> { try!(self.print_literal(value)); } ast::MetaList(ref name, ref items) => { - try!(word(&mut self.s, &name[])); + try!(word(&mut self.s, &name)); try!(self.popen()); try!(self.commasep(Consistent, &items[], @@ -2731,7 +2731,7 @@ impl<'a> State<'a> { _ => () } match lit.node { - ast::LitStr(ref st, style) => self.print_string(&st[], style), + ast::LitStr(ref st, style) => self.print_string(&st, style), ast::LitByte(byte) => { let mut res = String::from_str("b'"); ascii::escape_default(byte, |c| res.push(c as char)); @@ -2772,7 +2772,7 @@ impl<'a> State<'a> { word(&mut self.s, &format!( "{}{}", - &f[], + &f, &ast_util::float_ty_to_string(t)[])[]) } ast::LitFloatUnsuffixed(ref f) => word(&mut self.s, &f[]), diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index ddebf07ece5..1a8cb2b376a 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -512,7 +512,7 @@ fn mk_test_module(cx: &mut TestCtxt) -> (P, Option>) { }); let reexport = cx.reexport_test_harness_main.as_ref().map(|s| { // building `use = __test::main` - let reexport_ident = token::str_to_ident(&s[]); + let reexport_ident = token::str_to_ident(&s); let use_path = nospan(ast::ViewPathSimple(reexport_ident, -- cgit 1.4.1-3-g733a5 From 9e20035e339da2feb9f0a07cc8e49bd3b4d2b8b6 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 5 Feb 2015 15:11:51 +0100 Subject: Fix infinite loop error --- src/libsyntax/parse/token.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/libsyntax/parse') diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 39bc7f6f5af..45f4f044ea4 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -639,7 +639,7 @@ impl BytesContainer for InternedString { // of `BytesContainer`, which is itself a workaround for the lack of // DST. unsafe { - let this = &self; + let this = &self[]; mem::transmute::<&[u8],&[u8]>(this.container_as_bytes()) } } -- cgit 1.4.1-3-g733a5 From a2e01c62d5b6259d55b6688c8b059ac28e5dd03e Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 5 Feb 2015 15:19:23 +0100 Subject: librustdoc has been updated Fixes run build error Fix test failure Fix tests' errors --- src/librustdoc/clean/mod.rs | 36 ++++++++++++++-------------- src/librustdoc/html/highlight.rs | 2 +- src/librustdoc/visit_ast.rs | 4 ++-- src/libsyntax/ext/expand.rs | 6 ++--- src/libsyntax/parse/mod.rs | 8 +++---- src/test/auxiliary/lint_group_plugin_test.rs | 4 ++-- src/test/auxiliary/lint_plugin_test.rs | 2 +- src/test/run-pass/issue-15149.rs | 2 ++ 8 files changed, 33 insertions(+), 31 deletions(-) (limited to 'src/libsyntax/parse') diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 248ce99ff9b..e707e83c389 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -410,12 +410,12 @@ pub enum Attribute { impl Clean for ast::MetaItem { fn clean(&self, cx: &DocContext) -> Attribute { match self.node { - ast::MetaWord(ref s) => Word(s.get().to_string()), + ast::MetaWord(ref s) => Word(s.to_string()), ast::MetaList(ref s, ref l) => { - List(s.get().to_string(), l.clean(cx)) + List(s.to_string(), l.clean(cx)) } ast::MetaNameValue(ref s, ref v) => { - NameValue(s.get().to_string(), lit_to_string(v)) + NameValue(s.to_string(), lit_to_string(v)) } } } @@ -700,19 +700,19 @@ impl Lifetime { impl Clean for ast::Lifetime { fn clean(&self, _: &DocContext) -> Lifetime { - Lifetime(token::get_name(self.name).get().to_string()) + Lifetime(token::get_name(self.name).to_string()) } } impl Clean for ast::LifetimeDef { fn clean(&self, _: &DocContext) -> Lifetime { - Lifetime(token::get_name(self.lifetime.name).get().to_string()) + Lifetime(token::get_name(self.lifetime.name).to_string()) } } impl Clean for ty::RegionParameterDef { fn clean(&self, _: &DocContext) -> Lifetime { - Lifetime(token::get_name(self.name).get().to_string()) + Lifetime(token::get_name(self.name).to_string()) } } @@ -721,7 +721,7 @@ impl Clean> for ty::Region { match *self { ty::ReStatic => Some(Lifetime::statik()), ty::ReLateBound(_, ty::BrNamed(_, name)) => - Some(Lifetime(token::get_name(name).get().to_string())), + Some(Lifetime(token::get_name(name).to_string())), ty::ReEarlyBound(_, _, _, name) => Some(Lifetime(name.clean(cx))), ty::ReLateBound(..) | @@ -1953,20 +1953,20 @@ fn path_to_string(p: &ast::Path) -> String { } else { first = false; } - s.push_str(i.get()); + s.push_str(&i); } s } impl Clean for ast::Ident { fn clean(&self, _: &DocContext) -> String { - token::get_ident(*self).get().to_string() + token::get_ident(*self).to_string() } } impl Clean for ast::Name { fn clean(&self, _: &DocContext) -> String { - token::get_name(*self).get().to_string() + token::get_name(*self).to_string() } } @@ -2158,7 +2158,7 @@ impl Clean> for doctree::Import { // forcefully don't inline if this is not public or if the // #[doc(no_inline)] attribute is present. let denied = self.vis != ast::Public || self.attrs.iter().any(|a| { - a.name().get() == "doc" && match a.meta_item_list() { + &a.name()[] == "doc" && match a.meta_item_list() { Some(l) => attr::contains_name(l, "no_inline"), None => false, } @@ -2311,7 +2311,7 @@ impl ToSource for syntax::codemap::Span { fn lit_to_string(lit: &ast::Lit) -> String { match lit.node { - ast::LitStr(ref st, _) => st.get().to_string(), + ast::LitStr(ref st, _) => st.to_string(), ast::LitBinary(ref data) => format!("{:?}", data), ast::LitByte(b) => { let mut res = String::from_str("b'"); @@ -2323,8 +2323,8 @@ fn lit_to_string(lit: &ast::Lit) -> String { }, ast::LitChar(c) => format!("'{}'", c), ast::LitInt(i, _t) => i.to_string(), - ast::LitFloat(ref f, _t) => f.get().to_string(), - ast::LitFloatUnsuffixed(ref f) => f.get().to_string(), + ast::LitFloat(ref f, _t) => f.to_string(), + ast::LitFloatUnsuffixed(ref f) => f.to_string(), ast::LitBool(b) => b.to_string(), } } @@ -2336,7 +2336,7 @@ fn name_from_pat(p: &ast::Pat) -> String { match p.node { PatWild(PatWildSingle) => "_".to_string(), PatWild(PatWildMulti) => "..".to_string(), - PatIdent(_, ref p, _) => token::get_ident(p.node).get().to_string(), + PatIdent(_, ref p, _) => token::get_ident(p.node).to_string(), PatEnum(ref p, _) => path_to_string(p), PatStruct(ref name, ref fields, etc) => { format!("{} {{ {}{} }}", path_to_string(name), @@ -2486,11 +2486,11 @@ impl Clean for attr::Stability { fn clean(&self, _: &DocContext) -> Stability { Stability { level: self.level, - feature: self.feature.get().to_string(), + feature: self.feature.to_string(), since: self.since.as_ref().map_or("".to_string(), - |interned| interned.get().to_string()), + |interned| interned.to_string()), reason: self.reason.as_ref().map_or("".to_string(), - |interned| interned.get().to_string()), + |interned| interned.to_string()), } } } diff --git a/src/librustdoc/html/highlight.rs b/src/librustdoc/html/highlight.rs index 143b4cdee48..6acd1537946 100644 --- a/src/librustdoc/html/highlight.rs +++ b/src/librustdoc/html/highlight.rs @@ -142,7 +142,7 @@ fn doit(sess: &parse::ParseSess, mut lexer: lexer::StringReader, // keywords are also included in the identifier set token::Ident(ident, _is_mod_sep) => { - match token::get_ident(ident).get() { + match &token::get_ident(ident)[] { "ref" | "mut" => "kw-2", "self" => "self", diff --git a/src/librustdoc/visit_ast.rs b/src/librustdoc/visit_ast.rs index 5bcda778cbb..ac1a0285412 100644 --- a/src/librustdoc/visit_ast.rs +++ b/src/librustdoc/visit_ast.rs @@ -237,7 +237,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { ast::ItemExternCrate(ref p) => { let path = match *p { None => None, - Some((ref x, _)) => Some(x.get().to_string()), + Some((ref x, _)) => Some(x.to_string()), }; om.extern_crates.push(ExternCrate { name: name, @@ -253,7 +253,7 @@ impl<'a, 'tcx> RustdocVisitor<'a, 'tcx> { let please_inline = item.attrs.iter().any(|item| { match item.meta_item_list() { Some(list) => { - list.iter().any(|i| i.name().get() == "inline") + list.iter().any(|i| &i.name()[] == "inline") } None => false, } diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs index 61aae4e98b4..33712dae900 100644 --- a/src/libsyntax/ext/expand.rs +++ b/src/libsyntax/ext/expand.rs @@ -1862,7 +1862,7 @@ mod test { .collect(); println!("varref #{}: {:?}, resolves to {}",idx, varref_idents, varref_name); let string = token::get_ident(final_varref_ident); - println!("varref's first segment's string: \"{}\"", string.get()); + println!("varref's first segment's string: \"{}\"", &string[]); println!("binding #{}: {}, resolves to {}", binding_idx, bindings[binding_idx], binding_name); mtwt::with_sctable(|x| mtwt::display_sctable(x)); @@ -1915,7 +1915,7 @@ foo_module!(); let cxbinds: Vec<&ast::Ident> = bindings.iter().filter(|b| { let ident = token::get_ident(**b); - let string = ident.get(); + let string = &ident[]; "xx" == string }).collect(); let cxbinds: &[&ast::Ident] = &cxbinds[]; @@ -1929,7 +1929,7 @@ foo_module!(); // the xx binding should bind all of the xx varrefs: for (idx,v) in varrefs.iter().filter(|p| { p.segments.len() == 1 - && "xx" == token::get_ident(p.segments[0].identifier).get() + && "xx" == &token::get_ident(p.segments[0].identifier)[] }).enumerate() { if mtwt::resolve(v.segments[0].identifier) != resolved_binding { println!("uh oh, xx binding didn't match xx varref:"); diff --git a/src/libsyntax/parse/mod.rs b/src/libsyntax/parse/mod.rs index 6ff5c77f507..56ab36355a9 100644 --- a/src/libsyntax/parse/mod.rs +++ b/src/libsyntax/parse/mod.rs @@ -1201,19 +1201,19 @@ mod test { let source = "/// doc comment\r\nfn foo() {}".to_string(); let item = parse_item_from_source_str(name.clone(), source, Vec::new(), &sess).unwrap(); let doc = first_attr_value_str_by_name(&item.attrs, "doc").unwrap(); - assert_eq!(doc.get(), "/// doc comment"); + assert_eq!(&doc[], "/// doc comment"); let source = "/// doc comment\r\n/// line 2\r\nfn foo() {}".to_string(); let item = parse_item_from_source_str(name.clone(), source, Vec::new(), &sess).unwrap(); - let docs = item.attrs.iter().filter(|a| a.name().get() == "doc") - .map(|a| a.value_str().unwrap().get().to_string()).collect::>(); + let docs = item.attrs.iter().filter(|a| &a.name()[] == "doc") + .map(|a| a.value_str().unwrap().to_string()).collect::>(); let b: &[_] = &["/// doc comment".to_string(), "/// line 2".to_string()]; assert_eq!(&docs[], b); let source = "/** doc comment\r\n * with CRLF */\r\nfn foo() {}".to_string(); let item = parse_item_from_source_str(name, source, Vec::new(), &sess).unwrap(); let doc = first_attr_value_str_by_name(&item.attrs, "doc").unwrap(); - assert_eq!(doc.get(), "/** doc comment\n * with CRLF */"); + assert_eq!(&doc[], "/** doc comment\n * with CRLF */"); } #[test] diff --git a/src/test/auxiliary/lint_group_plugin_test.rs b/src/test/auxiliary/lint_group_plugin_test.rs index ae9804423bb..36b3091852b 100644 --- a/src/test/auxiliary/lint_group_plugin_test.rs +++ b/src/test/auxiliary/lint_group_plugin_test.rs @@ -37,9 +37,9 @@ impl LintPass for Pass { fn check_item(&mut self, cx: &Context, it: &ast::Item) { let name = token::get_ident(it.ident); - if name.get() == "lintme" { + if &name[] == "lintme" { cx.span_lint(TEST_LINT, it.span, "item is named 'lintme'"); - } else if name.get() == "pleaselintme" { + } else if &name[] == "pleaselintme" { cx.span_lint(PLEASE_LINT, it.span, "item is named 'pleaselintme'"); } } diff --git a/src/test/auxiliary/lint_plugin_test.rs b/src/test/auxiliary/lint_plugin_test.rs index 06051b87493..9020bb7b0fb 100644 --- a/src/test/auxiliary/lint_plugin_test.rs +++ b/src/test/auxiliary/lint_plugin_test.rs @@ -35,7 +35,7 @@ impl LintPass for Pass { fn check_item(&mut self, cx: &Context, it: &ast::Item) { let name = token::get_ident(it.ident); - if name.get() == "lintme" { + if &name[] == "lintme" { cx.span_lint(TEST_LINT, it.span, "item is named 'lintme'"); } } diff --git a/src/test/run-pass/issue-15149.rs b/src/test/run-pass/issue-15149.rs index 24f7a6af782..30a3183c808 100644 --- a/src/test/run-pass/issue-15149.rs +++ b/src/test/run-pass/issue-15149.rs @@ -1,3 +1,5 @@ +// no-prefer-dynamic + // Copyright 2014 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. -- cgit 1.4.1-3-g733a5