From 966e6c0c370317f06aa85248c17c7081d9736d99 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 22 Jan 2015 12:28:44 +0100 Subject: [PATCH 01/14] Add Str trait to InternedString, set get method deprecated --- src/libsyntax/parse/token.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 129c1d20bc04c..38e151436bf50 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; From d58c0a75978e068af8b01ab578b743c52635e1f4 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Tue, 3 Feb 2015 00:23:08 +0100 Subject: [PATCH 02/14] 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(-) diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 34eeedeaa7650..4c2d09562af3b 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 c62f76564a701..3129f80cb5fac 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 15ea68a19ce85..48d35d4ad138e 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 bd5247bbad6a7..6917daacaf2fa 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 4258eb32fdf0f..8a12557e47768 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 a184cc5c2b296..21f00f0934d6c 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 53c35ef34cd0d..18373219aa1d4 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 4e10cc9aacc08..9dbc097be275f 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 1af3ba1d326bc..feadaaf29c48a 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 bce48747b6069..dcef20a9931d4 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 7d72a7ec358c8..4a67ebc190f49 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 d3d7fee3a189a..dd093f3ac2c05 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 ec5941f58f3f0..b315b1bfe18dc 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 9aa454ae8d5c9..cd7fbb4fa73af 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 eaee67f9a6174..2439c34804673 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 56da24de8bbe2..5df5e1babd1db 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 7376b2352388a..b3c686abcf6f3 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 fbc591834d07f..0458a56d05051 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 823efdd3eed22..da233c79ea4c9 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 36701e7e25c3f..7447c00402417 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 cae23c5a2ccc5..3ff51f99307ac 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 38e151436bf50..755ccfb009432 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 542cc41c950f6..455e50430421a 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 d9d5688951288..14f8dc5aa3d32 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 } } From 12f1f4c5467b0f4cbdb66c67eca7e5227dbb1284 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Tue, 3 Feb 2015 19:59:29 +0100 Subject: [PATCH 03/14] Update HEAD:master --- src/libsyntax/ext/env.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsyntax/ext/env.rs b/src/libsyntax/ext/env.rs index cd7fbb4fa73af..63d563adf267b 100644 --- a/src/libsyntax/ext/env.rs +++ b/src/libsyntax/ext/env.rs @@ -108,7 +108,7 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) cx.span_err(sp, msg.deref()); cx.expr_usize(sp, 0) } - Ok(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) } From 8b12d3ddf981e5450d8159b29db6ee2197064c8a Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Tue, 3 Feb 2015 23:31:06 +0100 Subject: [PATCH 04/14] 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(-) diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 418cdf957183f..38985a8ce4035 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 2823b2e9d74c3..c33d10bfbab39 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 4c2d09562af3b..7849b7548c4bd 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 3129f80cb5fac..b8d4c90f74523 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 48d35d4ad138e..cd82d7c9b1489 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 6917daacaf2fa..4a3c1f48252fc 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 8a12557e47768..8c710545cb0e8 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 21f00f0934d6c..b5f6893a8c279 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 18373219aa1d4..55faf692e98f3 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 9dbc097be275f..849d8bff36575 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 feadaaf29c48a..14de5803604af 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 dcef20a9931d4..1c82ca5d2add7 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 4a67ebc190f49..28573ef757b12 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 dd093f3ac2c05..318b748ad7ff2 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 b315b1bfe18dc..49f766eb957a8 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 63d563adf267b..2298686e8c1bb 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 2439c34804673..e43ca9db8b1ce 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 5df5e1babd1db..af357e45a7c7a 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 b3c686abcf6f3..67990895d071a 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 0458a56d05051..be02ba5ddc220 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 da233c79ea4c9..21c65d7fbf646 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 7447c00402417..26d16c1c720af 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 3ff51f99307ac..3107f47de7859 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 755ccfb009432..45f4f044ea4d1 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 455e50430421a..a244c9de62b4c 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 14f8dc5aa3d32..ddebf07ece59d 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 } } From 664c41b42790c6eb9a73975149c9f39397e6120e Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 00:03:39 +0100 Subject: [PATCH 05/14] librustc has been updated --- src/librustc/lint/builtin.rs | 28 +++++++++---------- src/librustc/lint/context.rs | 6 ++-- src/librustc/metadata/creader.rs | 12 ++++---- src/librustc/metadata/csearch.rs | 2 +- src/librustc/metadata/encoder.rs | 18 ++++++------ src/librustc/middle/check_match.rs | 2 +- src/librustc/middle/const_eval.rs | 2 +- src/librustc/middle/dead.rs | 2 +- src/librustc/middle/infer/error_reporting.rs | 18 +++++------- src/librustc/middle/lang_items.rs | 2 +- src/librustc/middle/liveness.rs | 2 +- src/librustc/middle/mem_categorization.rs | 2 +- src/librustc/middle/stability.rs | 8 +++--- src/librustc/middle/traits/error_reporting.rs | 2 +- src/librustc/middle/ty.rs | 2 +- src/librustc/middle/weak_lang_items.rs | 4 +-- src/librustc/plugin/load.rs | 2 +- src/librustc/util/ppaux.rs | 14 +++++----- 18 files changed, 62 insertions(+), 66 deletions(-) diff --git a/src/librustc/lint/builtin.rs b/src/librustc/lint/builtin.rs index 34565383c5a76..30863c81aa26b 100644 --- a/src/librustc/lint/builtin.rs +++ b/src/librustc/lint/builtin.rs @@ -699,7 +699,7 @@ impl LintPass for UnusedAttributes { if !attr::is_used(attr) { cx.span_lint(UNUSED_ATTRIBUTES, attr.span, "unused attribute"); - if CRATE_ATTRS.contains(&attr.name().get()) { + if CRATE_ATTRS.contains(&&attr.name()[]) { let msg = match attr.node.style { ast::AttrOuter => "crate-level attribute should be an inner \ attribute: add an exclamation mark: #![foo]", @@ -801,7 +801,7 @@ impl LintPass for UnusedResults { None => {} Some(s) => { msg.push_str(": "); - msg.push_str(s.get()); + msg.push_str(&s[]); } } cx.span_lint(UNUSED_MUST_USE, sp, &msg[]); @@ -826,8 +826,8 @@ impl NonCamelCaseTypes { fn check_case(&self, cx: &Context, sort: &str, ident: ast::Ident, span: Span) { fn is_camel_case(ident: ast::Ident) -> bool { let ident = token::get_ident(ident); - if ident.get().is_empty() { return true; } - let ident = ident.get().trim_matches('_'); + if ident.is_empty() { return true; } + let ident = ident.trim_matches('_'); // start with a non-lowercase letter rather than non-uppercase // ones (some scripts don't have a concept of upper/lowercase) @@ -844,7 +844,7 @@ impl NonCamelCaseTypes { let s = token::get_ident(ident); if !is_camel_case(ident) { - let c = to_camel_case(s.get()); + 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 { @@ -977,8 +977,8 @@ impl NonSnakeCase { fn check_snake_case(&self, cx: &Context, sort: &str, ident: ast::Ident, span: Span) { fn is_snake_case(ident: ast::Ident) -> bool { let ident = token::get_ident(ident); - if ident.get().is_empty() { return true; } - let ident = ident.get().trim_left_matches('\''); + if ident.is_empty() { return true; } + let ident = ident.trim_left_matches('\''); let ident = ident.trim_matches('_'); let mut allow_underscore = true; @@ -996,8 +996,8 @@ impl NonSnakeCase { let s = token::get_ident(ident); if !is_snake_case(ident) { - let sc = NonSnakeCase::to_snake_case(s.get()); - if sc != s.get() { + 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 `{}`", sort, s, sc)); @@ -1077,10 +1077,10 @@ impl NonUpperCaseGlobals { fn check_upper_case(cx: &Context, sort: &str, ident: ast::Ident, span: Span) { let s = token::get_ident(ident); - if s.get().chars().any(|c| c.is_lowercase()) { - let uc: String = NonSnakeCase::to_snake_case(s.get()).chars() + if s.chars().any(|c| c.is_lowercase()) { + let uc: String = NonSnakeCase::to_snake_case(&s[]).chars() .map(|c| c.to_uppercase()).collect(); - if uc != s.get() { + if uc != &s[] { cx.span_lint(NON_UPPER_CASE_GLOBALS, span, &format!("{} `{}` should have an upper case name such as `{}`", sort, s, uc)); @@ -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).get()); + &token::get_ident(*name)[]); cx.span_lint(UNUSED_IMPORT_BRACES, item.span, &m[]); }, @@ -1358,7 +1358,7 @@ impl UnusedMut { pat_util::pat_bindings(&cx.tcx.def_map, &**p, |mode, id, _, path1| { let ident = path1.node; if let ast::BindByValue(ast::MutMutable) = mode { - if !token::get_ident(ident).get().starts_with("_") { + if !token::get_ident(ident).starts_with("_") { match mutables.entry(ident.name.usize()) { Vacant(entry) => { entry.insert(vec![id]); }, Occupied(mut entry) => { entry.get_mut().push(id); }, diff --git a/src/librustc/lint/context.rs b/src/librustc/lint/context.rs index 844ad2be26444..0db7c802abbdd 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().get()) { + let level = match Level::from_str(&attr.name()[]) { None => continue, Some(lvl) => lvl, }; @@ -499,10 +499,10 @@ impl<'a, 'tcx> Context<'a, 'tcx> { continue; } Ok((lint_name, level, span)) => { - match self.lints.find_lint(lint_name.get(), &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.get()) { + match self.lints.lint_groups.get(&lint_name[]) { Some(&(ref v, _)) => v.iter() .map(|lint_id: &LintId| (*lint_id, level, span)) diff --git a/src/librustc/metadata/creader.rs b/src/librustc/metadata/creader.rs index 34bd1724e521b..304ff80845cf0 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.get()), + Some(ref linkarg) => self.sess.cstore.add_used_link_args(&linkarg[]), None => { /* fallthrough */ } } } @@ -184,15 +184,15 @@ impl<'a> CrateReader<'a> { ident, path_opt); let name = match *path_opt { Some((ref path_str, _)) => { - let name = path_str.get().to_string(); + let name = path_str.to_string(); validate_crate_name(Some(self.sess), &name[], Some(i.span)); name } - None => ident.get().to_string(), + None => ident.to_string(), }; Some(CrateInfo { - ident: ident.get().to_string(), + ident: ident.to_string(), name: name, id: i.id, should_link: should_link(i), @@ -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.get()), + Some(linkarg) => self.sess.cstore.add_used_link_args(&linkarg[]), None => { /* fallthrough */ } } } @@ -289,7 +289,7 @@ impl<'a> CrateReader<'a> { } }; register_native_lib(self.sess, Some(m.span), - n.get().to_string(), kind); + n.to_string(), kind); } None => {} } diff --git a/src/librustc/metadata/csearch.rs b/src/librustc/metadata/csearch.rs index 070ab248f24b2..b151856e30941 100644 --- a/src/librustc/metadata/csearch.rs +++ b/src/librustc/metadata/csearch.rs @@ -383,7 +383,7 @@ pub fn is_staged_api(cstore: &cstore::CStore, def: ast::DefId) -> bool { let cdata = cstore.get_crate_data(def.krate); let attrs = decoder::get_crate_attributes(cdata.data()); for attr in &attrs { - if attr.name().get() == "staged_api" { + if &attr.name()[] == "staged_api" { match attr.node.value.node { ast::MetaWord(_) => return true, _ => (/*pass*/) } } } diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 5fb047ea93b60..e0ea157368154 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -86,11 +86,11 @@ 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).get()); + 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) { - rbml_w.wr_tagged_str(tag_item_impl_type_basename, token::get_ident(name).get()); + rbml_w.wr_tagged_str(tag_item_impl_type_basename, &token::get_ident(name)); } pub fn encode_def_id(rbml_w: &mut Encoder, id: DefId) { @@ -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()).get()); + rbml_w.wr_tagged_str(tag, &token::get_name(pe.name())[]); } rbml_w.end_tag(); } @@ -915,7 +915,7 @@ fn encode_method_argument_names(rbml_w: &mut Encoder, rbml_w.start_tag(tag_method_argument_name); if let ast::PatIdent(_, ref path1, _) = arg.pat.node { let name = token::get_ident(path1.node); - rbml_w.writer.write_all(name.get().as_bytes()); + rbml_w.writer.write_all(name.as_bytes()); } rbml_w.end_tag(); } @@ -1636,7 +1636,7 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) { ast::MetaWord(ref name) => { rbml_w.start_tag(tag_meta_item_word); rbml_w.start_tag(tag_meta_item_name); - rbml_w.writer.write_all(name.get().as_bytes()); + rbml_w.writer.write_all(name.as_bytes()); rbml_w.end_tag(); rbml_w.end_tag(); } @@ -1645,10 +1645,10 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) { ast::LitStr(ref value, _) => { rbml_w.start_tag(tag_meta_item_name_value); rbml_w.start_tag(tag_meta_item_name); - rbml_w.writer.write_all(name.get().as_bytes()); + rbml_w.writer.write_all(name.as_bytes()); rbml_w.end_tag(); rbml_w.start_tag(tag_meta_item_value); - rbml_w.writer.write_all(value.get().as_bytes()); + rbml_w.writer.write_all(value.as_bytes()); rbml_w.end_tag(); rbml_w.end_tag(); } @@ -1658,7 +1658,7 @@ fn encode_meta_item(rbml_w: &mut Encoder, mi: &ast::MetaItem) { ast::MetaList(ref name, ref items) => { rbml_w.start_tag(tag_meta_item_list); rbml_w.start_tag(tag_meta_item_name); - rbml_w.writer.write_all(name.get().as_bytes()); + rbml_w.writer.write_all(name.as_bytes()); rbml_w.end_tag(); for inner_item in items { encode_meta_item(rbml_w, &**inner_item); @@ -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).get()); + 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 38985a8ce4035..12573bf0ffd1a 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -249,7 +249,7 @@ 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: `{}::{}`", diff --git a/src/librustc/middle/const_eval.rs b/src/librustc/middle/const_eval.rs index fa5d5227be535..6bb0516c89b6f 100644 --- a/src/librustc/middle/const_eval.rs +++ b/src/librustc/middle/const_eval.rs @@ -610,7 +610,7 @@ pub fn lit_to_const(lit: &ast::Lit) -> const_val { ast::LitInt(n, ast::UnsignedIntLit(_)) => const_uint(n), ast::LitFloat(ref n, _) | ast::LitFloatUnsuffixed(ref n) => { - const_float(n.get().parse::().unwrap() as f64) + const_float(n.parse::().unwrap() as f64) } ast::LitBool(b) => const_bool(b) } diff --git a/src/librustc/middle/dead.rs b/src/librustc/middle/dead.rs index 90d26f0f6bf53..a157d5d712b58 100644 --- a/src/librustc/middle/dead.rs +++ b/src/librustc/middle/dead.rs @@ -321,7 +321,7 @@ fn has_allow_dead_code_or_lang_attr(attrs: &[ast::Attribute]) -> bool { for attr in lint::gather_attrs(attrs) { match attr { Ok((ref name, lint::Allow, _)) - if name.get() == dead_code => return true, + if &name[] == dead_code => return true, _ => (), } } diff --git a/src/librustc/middle/infer/error_reporting.rs b/src/librustc/middle/infer/error_reporting.rs index 05f0c247a7592..90b43dd7f7d62 100644 --- a/src/librustc/middle/infer/error_reporting.rs +++ b/src/librustc/middle/infer/error_reporting.rs @@ -514,7 +514,6 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> { lifetime of captured variable `{}`...", ty::local_var_name_str(self.tcx, upvar_id.var_id) - .get() .to_string()); note_and_explain_region( self.tcx, @@ -526,7 +525,6 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> { &format!("...but `{}` is only valid for ", ty::local_var_name_str(self.tcx, upvar_id.var_id) - .get() .to_string())[], sup, ""); @@ -570,8 +568,7 @@ impl<'a, 'tcx> ErrorReporting<'tcx> for InferCtxt<'a, 'tcx> { &format!("captured variable `{}` does not \ outlive the enclosing closure", ty::local_var_name_str(self.tcx, - id).get() - .to_string())[]); + id).to_string())[]); note_and_explain_region( self.tcx, "captured variable is valid for ", @@ -959,7 +956,7 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> { // choice of lifetime name deterministic and thus easier to test. let mut names = Vec::new(); for rn in region_names { - let lt_name = token::get_name(*rn).get().to_string(); + let lt_name = token::get_name(*rn).to_string(); names.push(lt_name); } names.sort(); @@ -1438,15 +1435,15 @@ impl<'a, 'tcx> ErrorReportingHelpers<'tcx> for InferCtxt<'a, 'tcx> { } infer::EarlyBoundRegion(_, name) => { format!(" for lifetime parameter `{}`", - token::get_name(name).get()) + &token::get_name(name)) } infer::BoundRegionInCoherence(name) => { format!(" for lifetime parameter `{}` in coherence check", - token::get_name(name).get()) + &token::get_name(name)[]) } infer::UpvarRegion(ref upvar_id, _) => { format!(" for capture of `{}` by closure", - ty::local_var_name_str(self.tcx, upvar_id.var_id).get().to_string()) + ty::local_var_name_str(self.tcx, upvar_id.var_id).to_string()) } }; @@ -1527,7 +1524,6 @@ impl<'a, 'tcx> ErrorReportingHelpers<'tcx> for InferCtxt<'a, 'tcx> { &format!( "...so that closure can access `{}`", ty::local_var_name_str(self.tcx, upvar_id.var_id) - .get() .to_string())[]) } infer::InfStackClosure(span) => { @@ -1553,7 +1549,7 @@ impl<'a, 'tcx> ErrorReportingHelpers<'tcx> for InferCtxt<'a, 'tcx> { does not outlive the enclosing closure", ty::local_var_name_str( self.tcx, - id).get().to_string())[]); + id).to_string())[]); } infer::IndexSlice(span) => { self.tcx.sess.span_note( @@ -1730,7 +1726,7 @@ impl LifeGiver { fn with_taken(taken: &[ast::LifetimeDef]) -> LifeGiver { let mut taken_ = HashSet::new(); for lt in taken { - let lt_name = token::get_name(lt.lifetime.name).get().to_string(); + let lt_name = token::get_name(lt.lifetime.name).to_string(); taken_.insert(lt_name); } LifeGiver { diff --git a/src/librustc/middle/lang_items.rs b/src/librustc/middle/lang_items.rs index 8a293a6772778..05969d4ea4398 100644 --- a/src/librustc/middle/lang_items.rs +++ b/src/librustc/middle/lang_items.rs @@ -149,7 +149,7 @@ impl<'a, 'v> Visitor<'v> for LanguageItemCollector<'a> { fn visit_item(&mut self, item: &ast::Item) { match extract(&item.attrs) { Some(value) => { - let item_index = self.item_refs.get(value.get()).map(|x| *x); + let item_index = self.item_refs.get(&value[]).map(|x| *x); match item_index { Some(item_index) => { diff --git a/src/librustc/middle/liveness.rs b/src/librustc/middle/liveness.rs index c0fabb2a3481d..fcc5d70a7a564 100644 --- a/src/librustc/middle/liveness.rs +++ b/src/librustc/middle/liveness.rs @@ -333,7 +333,7 @@ impl<'a, 'tcx> IrMaps<'a, 'tcx> { fn variable_name(&self, var: Variable) -> String { match self.var_kinds[var.get()] { Local(LocalInfo { ident: nm, .. }) | Arg(_, nm) => { - token::get_ident(nm).get().to_string() + token::get_ident(nm).to_string() }, ImplicitRet => "".to_string(), CleanExit => "".to_string() diff --git a/src/librustc/middle/mem_categorization.rs b/src/librustc/middle/mem_categorization.rs index 156ff43e2bab3..3e7aa0ff1d04e 100644 --- a/src/librustc/middle/mem_categorization.rs +++ b/src/librustc/middle/mem_categorization.rs @@ -1543,7 +1543,7 @@ impl<'tcx> Repr<'tcx> for InteriorKind { fn repr(&self, _tcx: &ty::ctxt) -> String { match *self { InteriorField(NamedField(fld)) => { - token::get_name(fld).get().to_string() + token::get_name(fld).to_string() } InteriorField(PositionalField(i)) => format!("#{}", i), InteriorElement(_) => "[]".to_string(), diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index dfbd11957da44..9b9e3ec947420 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -180,7 +180,7 @@ impl Index { pub fn new(krate: &Crate) -> Index { let mut staged_api = false; for attr in &krate.attrs { - if attr.name().get() == "staged_api" { + if &attr.name()[] == "staged_api" { match attr.node.value.node { ast::MetaWord(_) => { attr::mark_used(attr); @@ -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.get(), r.get()), - None => format!("use of unstable library feature '{}'", feature.get()) + &feature[], &r[]), + None => format!("use of unstable library feature '{}'", &feature[]) }; emit_feature_warn(&self.tcx.sess.parse_sess.span_diagnostic, - feature.get(), 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 a1f3737cbb208..0343d9af28d6a 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.get()); + let parser = Parser::new(&istring[]); let mut errored = false; let err: String = parser.filter_map(|p| { match p { diff --git a/src/librustc/middle/ty.rs b/src/librustc/middle/ty.rs index 6964a0b9db817..d60a2d2af36b6 100644 --- a/src/librustc/middle/ty.rs +++ b/src/librustc/middle/ty.rs @@ -4644,7 +4644,7 @@ pub fn field_idx_strict(tcx: &ctxt, name: ast::Name, fields: &[field]) "no field named `{}` found in the list of fields `{:?}`", token::get_name(name), fields.iter() - .map(|f| token::get_name(f.name).get().to_string()) + .map(|f| token::get_name(f.name).to_string()) .collect::>())[]); } diff --git a/src/librustc/middle/weak_lang_items.rs b/src/librustc/middle/weak_lang_items.rs index b23d05ca64cf9..7456cc8cb0f66 100644 --- a/src/librustc/middle/weak_lang_items.rs +++ b/src/librustc/middle/weak_lang_items.rs @@ -55,7 +55,7 @@ pub fn check_crate(krate: &ast::Crate, pub fn link_name(attrs: &[ast::Attribute]) -> Option { lang_items::extract(attrs).and_then(|name| { - $(if name.get() == stringify!($name) { + $(if &name[] == stringify!($name) { Some(InternedString::new(stringify!($sym))) } else)* { None @@ -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.get(), i.span), + Some(lang_item) => self.register(&lang_item[], i.span), } visit::walk_foreign_item(self, i) } diff --git a/src/librustc/plugin/load.rs b/src/librustc/plugin/load.rs index a7592226fd67b..1a15e169d6ade 100644 --- a/src/librustc/plugin/load.rs +++ b/src/librustc/plugin/load.rs @@ -109,7 +109,7 @@ impl<'a, 'v> Visitor<'v> for PluginLoader<'a> { let mut reexport = HashSet::new(); for attr in &item.attrs { let mut used = true; - match attr.name().get() { + match &attr.name()[] { "phase" => { self.sess.span_err(attr.span, "#[phase] is deprecated; use \ #[macro_use], #[plugin], and/or #[no_link]"); diff --git a/src/librustc/util/ppaux.rs b/src/librustc/util/ppaux.rs index d39e1b8977a0e..a7a5ea4c7b46c 100644 --- a/src/librustc/util/ppaux.rs +++ b/src/librustc/util/ppaux.rs @@ -217,7 +217,7 @@ pub fn region_to_string(cx: &ctxt, prefix: &str, space: bool, region: Region) -> match region { ty::ReScope(_) => prefix.to_string(), ty::ReEarlyBound(_, _, _, name) => { - token::get_name(name).get().to_string() + token::get_name(name).to_string() } ty::ReLateBound(_, br) => bound_region_to_string(cx, prefix, space, br), ty::ReFree(ref fr) => bound_region_to_string(cx, prefix, space, fr.bound_region), @@ -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).get()); + s.push_str(&token::get_ident(i)[]); } _ => { } } @@ -1020,19 +1020,19 @@ impl<'tcx> Repr<'tcx> for ty::Method<'tcx> { impl<'tcx> Repr<'tcx> for ast::Name { fn repr(&self, _tcx: &ctxt) -> String { - token::get_name(*self).get().to_string() + token::get_name(*self).to_string() } } impl<'tcx> UserString<'tcx> for ast::Name { fn user_string(&self, _tcx: &ctxt) -> String { - token::get_name(*self).get().to_string() + token::get_name(*self).to_string() } } impl<'tcx> Repr<'tcx> for ast::Ident { fn repr(&self, _tcx: &ctxt) -> String { - token::get_ident(*self).get().to_string() + token::get_ident(*self).to_string() } } @@ -1220,7 +1220,7 @@ impl<'tcx, T> UserString<'tcx> for ty::Binder } }) }); - let names: Vec<_> = names.iter().map(|s| s.get()).collect(); + let names: Vec<_> = names.iter().map(|s| &s[]).collect(); let value_str = unbound_value.user_string(tcx); if names.len() == 0 { @@ -1248,7 +1248,7 @@ impl<'tcx> UserString<'tcx> for Ty<'tcx> { impl<'tcx> UserString<'tcx> for ast::Ident { fn user_string(&self, _tcx: &ctxt) -> String { - token::get_name(self.name).get().to_string() + token::get_name(self.name).to_string() } } From 0f09021b376a0cbe18a15a3bb7a5c5201573d4dc Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 00:11:53 +0100 Subject: [PATCH 06/14] librustc_borrowck has been updated --- src/librustc_borrowck/borrowck/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/librustc_borrowck/borrowck/mod.rs b/src/librustc_borrowck/borrowck/mod.rs index c932d521bbe1b..03f004ccb671a 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).get()); + 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).get()); + out.push_str(&token::get_name(fname)[]); } mc::PositionalField(idx) => { out.push('.'); From 4b6632d82d59f53f0fa71be8abdc50a8353cfda1 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 00:16:02 +0100 Subject: [PATCH 07/14] librustc_typeck has been updated --- src/librustc_typeck/astconv.rs | 4 ++-- src/librustc_typeck/check/mod.rs | 14 +++++++------- src/librustc_typeck/check/writeback.rs | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 58f4d3f1bc037..22393a7a29199 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -1160,12 +1160,12 @@ pub fn ast_ty_to_ty<'tcx>( using the syntax `::{}`", path_str, - token::get_ident( + &token::get_ident( path.segments .last() .unwrap() .identifier) - .get()); + []); 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 fb05450373f7d..5b89954c58654 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.get()); + 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.get(); + 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).get())) + format!("`{}`", &token::get_name(name)[])) } } @@ -5223,8 +5223,8 @@ pub fn check_intrinsic_type(ccx: &CrateCtxt, it: &ast::ForeignItem) { let tcx = ccx.tcx; let name = token::get_ident(it.ident); - let (n_tps, inputs, output) = if name.get().starts_with("atomic_") { - let split : Vec<&str> = name.get().split('_').collect(); + let (n_tps, inputs, output) = if name.starts_with("atomic_") { + let split : Vec<&str> = name.split('_').collect(); assert!(split.len() >= 2, "Atomic intrinsic not correct format"); //We only care about the operation here @@ -5253,10 +5253,10 @@ pub fn check_intrinsic_type(ccx: &CrateCtxt, it: &ast::ForeignItem) { } }; (n_tps, inputs, ty::FnConverging(output)) - } else if name.get() == "abort" || name.get() == "unreachable" { + } else if &name[] == "abort" || &name[] == "unreachable" { (0, Vec::new(), ty::FnDiverging) } else { - let (n_tps, inputs, output) = match name.get() { + let (n_tps, inputs, output) = match &name[] { "breakpoint" => (0, Vec::new(), ty::mk_nil(tcx)), "size_of" | "pref_align_of" | "min_align_of" => (1, Vec::new(), ccx.tcx.types.uint), diff --git a/src/librustc_typeck/check/writeback.rs b/src/librustc_typeck/check/writeback.rs index f047a36c56095..fca40df7aaa6a 100644 --- a/src/librustc_typeck/check/writeback.rs +++ b/src/librustc_typeck/check/writeback.rs @@ -405,7 +405,7 @@ impl<'cx, 'tcx> Resolver<'cx, 'tcx> { let span = self.reason.span(self.tcx); span_err!(self.tcx.sess, span, E0104, "cannot resolve lifetime for captured variable `{}`: {}", - ty::local_var_name_str(self.tcx, upvar_id.var_id).get().to_string(), + ty::local_var_name_str(self.tcx, upvar_id.var_id).to_string(), infer::fixup_err_to_string(e)); } From 1ff6e5356ce26a073149d0c10b82aaa8b80fb093 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 00:48:39 +0100 Subject: [PATCH 08/14] librustc_resolve has been updated --- src/librustc_resolve/build_reduced_graph.rs | 6 +-- src/librustc_resolve/lib.rs | 44 ++++++++++----------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/librustc_resolve/build_reduced_graph.rs b/src/librustc_resolve/build_reduced_graph.rs index a503398d4844f..fe42817a9c4ff 100644 --- a/src/librustc_resolve/build_reduced_graph.rs +++ b/src/librustc_resolve/build_reduced_graph.rs @@ -307,8 +307,8 @@ impl<'a, 'b:'a, 'tcx:'b> GraphBuilder<'a, 'b, 'tcx> { ViewPathSimple(binding, ref full_path) => { let source_name = full_path.segments.last().unwrap().identifier.name; - if token::get_name(source_name).get() == "mod" || - token::get_name(source_name).get() == "self" { + if &token::get_name(source_name)[] == "mod" || + &token::get_name(source_name)[] == "self" { self.resolve_error(view_path.span, "`self` imports are only allowed within a { } list"); } @@ -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).get(), + &token::get_name(name)[], name, root); } diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index ec1d300dbec89..0d87f2a17dfa4 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).get()); + result.push_str(&token::get_name(*name)[]); }; result } @@ -1111,7 +1111,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { -> String { match subclass { SingleImport(_, source) => { - token::get_name(source).get().to_string() + token::get_name(source).to_string() } GlobImport => "*".to_string() } @@ -1708,7 +1708,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { debug!("(resolving glob import) writing resolution `{}` in `{}` \ to `{}`", - token::get_name(name).get(), + &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).get()); + &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).get(), + &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).get()); + &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).get()); + &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).get()); + &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).get()); + &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).get()); + &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).get()); + &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).get()); + &token::get_name(name)[]); } } @@ -1955,7 +1955,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { let module_name = self.module_to_string(&*search_module); let mut span = span; let msg = if "???" == &module_name[] { - span.hi = span.lo + Pos::from_usize(segment_name.get().len()); + span.hi = span.lo + Pos::from_usize(segment_name.len()); match search_parent_externals(name, &self.current_module) { @@ -2368,11 +2368,11 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { let mut containing_module; let mut i; let first_module_path_string = token::get_name(module_path[0]); - if "self" == first_module_path_string.get() { + if "self" == &first_module_path_string[] { containing_module = self.get_nearest_normal_module_parent_or_self(module_); i = 1; - } else if "super" == first_module_path_string.get() { + } else if "super" == &first_module_path_string[] { containing_module = self.get_nearest_normal_module_parent_or_self(module_); i = 0; // We'll handle `super` below. @@ -2383,7 +2383,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { // Now loop through all the `super`s we find. while i < module_path.len() { let string = token::get_name(module_path[i]); - if "super" != string.get() { + if "super" != &string[] { break } debug!("(resolving module prefix) resolving `super` at {}", @@ -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).get(), + &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).get()); + &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.get()); + values[i] = lev_distance(name, &other[]); if values[i] <= values[smallest] { smallest = i; @@ -4383,9 +4383,9 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { values[smallest] != uint::MAX && values[smallest] < name.len() + 2 && values[smallest] <= max_distance && - name != maybes[smallest].get() { + name != &maybes[smallest][] { - Some(maybes[smallest].get().to_string()) + Some(maybes[smallest].to_string()) } else { None @@ -4475,7 +4475,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> { false // Stop advancing }); - if method_scope && token::get_name(self.self_name).get() + if method_scope && &token::get_name(self.self_name)[] == path_name { self.resolve_error( expr.span, From b0097783b980056b67020f0e65107f87ed813275 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 01:04:50 +0100 Subject: [PATCH 09/14] librustc_trans has been updated --- src/librustc_trans/back/link.rs | 6 ++--- src/librustc_trans/save/mod.rs | 20 +++++++------- src/librustc_trans/trans/asm.rs | 6 ++--- src/librustc_trans/trans/base.rs | 16 +++++------ src/librustc_trans/trans/common.rs | 8 +++--- src/librustc_trans/trans/consts.rs | 4 +-- src/librustc_trans/trans/debuginfo.rs | 38 +++++++++++++-------------- src/librustc_trans/trans/foreign.rs | 12 ++++----- src/librustc_trans/trans/intrinsic.rs | 10 +++---- src/librustc_trans/trans/tvec.rs | 6 ++--- 10 files changed, 63 insertions(+), 63 deletions(-) diff --git a/src/librustc_trans/back/link.rs b/src/librustc_trans/back/link.rs index 2828fafddf02a..bfeb73bb54622 100644 --- a/src/librustc_trans/back/link.rs +++ b/src/librustc_trans/back/link.rs @@ -141,7 +141,7 @@ pub fn find_crate_name(sess: Option<&Session>, if let Some(sess) = sess { if let Some(ref s) = sess.opts.crate_name { if let Some((attr, ref name)) = attr_crate_name { - if *s != name.get() { + if *s != &name[] { let msg = format!("--crate-name and #[crate_name] are \ required to match, but `{}` != `{}`", s, name); @@ -153,7 +153,7 @@ pub fn find_crate_name(sess: Option<&Session>, } if let Some((attr, s)) = attr_crate_name { - return validate(s.get().to_string(), Some(attr.span)); + return validate(s.to_string(), Some(attr.span)); } if let Input::File(ref path) = *input { if let Some(s) = path.filestem_str() { @@ -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()).get()[]) + 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 ab9617d6365cb..49fd040b25a47 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()).get()); + let qualname = format!("{}::{}", qualname, &get_ident(method.pe_ident())[]); let qualname = &qualname[]; // record the decl for this def (if it has one) @@ -436,7 +436,7 @@ impl <'l, 'tcx> DxrVisitor<'l, 'tcx> { Some(sub_span) => self.fmt.field_str(field.span, Some(sub_span), field.node.id, - &name.get()[], + &name[], &qualname[], &typ[], scope_id), @@ -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(), + &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(), + &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.get(); + 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(), + &get_ident(ident)[], self.cur_scope); self.write_sub_paths_truncated(path, true); } @@ -1149,9 +1149,9 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DxrVisitor<'l, 'tcx> { } ast::ItemExternCrate(ref s) => { let name = get_ident(item.ident); - let name = name.get(); + let name = &name[]; let location = match *s { - Some((ref s, _)) => s.get().to_string(), + Some((ref s, _)) => s.to_string(), None => name.to_string(), }; let alias_span = self.span.span_for_last_ident(item.span); @@ -1259,7 +1259,7 @@ impl<'l, 'tcx, 'v> Visitor<'v> for DxrVisitor<'l, 'tcx> { }, }; - qualname.push_str(get_ident(method_type.ident).get()); + 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); @@ -1541,7 +1541,7 @@ pub fn process_crate(sess: &Session, assert!(analysis.glob_map.is_some()); let cratename = match attr::find_crate_name(&krate.attrs[]) { - Some(name) => name.get().to_string(), + Some(name) => name.to_string(), None => { info!("Could not find crate name, using 'unknown_crate'"); String::from_str("unknown_crate") diff --git a/src/librustc_trans/trans/asm.rs b/src/librustc_trans/trans/asm.rs index 1d910c81da988..7ec371cec253c 100644 --- a/src/librustc_trans/trans/asm.rs +++ b/src/librustc_trans/trans/asm.rs @@ -77,13 +77,13 @@ pub fn trans_inline_asm<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, ia: &ast::InlineAsm) fcx.pop_custom_cleanup_scope(temp_scope); let mut constraints = constraints.iter() - .map(|s| s.get().to_string()) + .map(|s| s.to_string()) .chain(ext_constraints.into_iter()) .collect::>() .connect(","); let mut clobbers = ia.clobbers.iter() - .map(|s| format!("~{{{}}}", s.get())) + .map(|s| format!("~{{{}}}", &s[])) .collect::>() .connect(","); let more_clobbers = get_clobbers(); @@ -120,7 +120,7 @@ pub fn trans_inline_asm<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, ia: &ast::InlineAsm) ast::AsmIntel => llvm::AD_Intel }; - let asm = CString::from_slice(ia.asm.get().as_bytes()); + let asm = CString::from_slice(ia.asm.as_bytes()); let constraints = CString::from_slice(constraints.as_bytes()); let r = InlineAsmCall(bcx, asm.as_ptr(), diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 38051a647caf3..089292fa64ead 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -444,7 +444,7 @@ pub fn set_llvm_fn_attrs(ccx: &CrateContext, attrs: &[ast::Attribute], llfn: Val for attr in attrs { let mut used = true; - match attr.name().get() { + match &attr.name()[] { "no_stack_check" => unset_split_stack(llfn), "no_split_stack" => { unset_split_stack(llfn); @@ -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.get()) { + if let Some(linkage) = llvm_linkage_by_name(&name[]) { llvm::SetLinkage(llval, linkage); } else { ccx.sess().span_fatal(i.span, "invalid linkage specified"); @@ -2721,7 +2721,7 @@ fn exported_name<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, id: ast::NodeId, match attr::first_attr_value_str_by_name(attrs, "export_name") { // Use provided name - Some(name) => name.get().to_string(), + Some(name) => name.to_string(), _ => ccx.tcx().map.with_path(id, |path| { if attr::contains_name(attrs, "no_mangle") { @@ -2729,7 +2729,7 @@ fn exported_name<'a, 'tcx>(ccx: &CrateContext<'a, 'tcx>, id: ast::NodeId, path.last().unwrap().to_string() } else { match weak_lang_items::link_name(attrs) { - Some(name) => name.get().to_string(), + Some(name) => name.to_string(), None => { // Usual name mangling mangle_exported_name(ccx, path, ty, id) @@ -2824,12 +2824,12 @@ 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(sect.get()) { + if contains_null(§[]) { ccx.sess().fatal(&format!("Illegal null byte in link_section value: `{}`", - sect.get())[]); + §[])[]); } unsafe { - let buf = CString::from_slice(sect.get().as_bytes()); + let buf = CString::from_slice(sect.as_bytes()); llvm::LLVMSetSection(v, buf.as_ptr()); } }, @@ -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.get()[]) + foreign::register_foreign_item_fn(ccx, abi, ty, &name[]) } ast::ForeignItemStatic(..) => { foreign::register_static(ccx, &*ni) diff --git a/src/librustc_trans/trans/common.rs b/src/librustc_trans/trans/common.rs index b65d50095b3f0..87b7f413fd1e5 100644 --- a/src/librustc_trans/trans/common.rs +++ b/src/librustc_trans/trans/common.rs @@ -590,7 +590,7 @@ impl<'blk, 'tcx> BlockS<'blk, 'tcx> { pub fn sess(&self) -> &'blk Session { self.fcx.ccx.sess() } pub fn ident(&self, ident: Ident) -> String { - token::get_ident(ident).get().to_string() + token::get_ident(ident).to_string() } pub fn node_id_to_string(&self, id: ast::NodeId) -> String { @@ -834,8 +834,8 @@ pub fn C_cstr(cx: &CrateContext, s: InternedString, null_terminated: bool) -> Va } let sc = llvm::LLVMConstStringInContext(cx.llcx(), - s.get().as_ptr() as *const c_char, - s.get().len() as c_uint, + s.as_ptr() as *const c_char, + s.len() as c_uint, !null_terminated as Bool); let gsym = token::gensym("str"); @@ -853,7 +853,7 @@ pub fn C_cstr(cx: &CrateContext, s: InternedString, null_terminated: bool) -> Va // NB: Do not use `do_spill_noroot` to make this into a constant string, or // you will be kicked off fast isel. See issue #4352 for an example of this. pub fn C_str_slice(cx: &CrateContext, s: InternedString) -> ValueRef { - let len = s.get().len(); + let len = s.len(); let cs = consts::ptrcast(C_cstr(cx, s, false), Type::i8p(cx)); C_named_struct(cx.tn().find_type("str_slice").unwrap(), &[cs, C_uint(cx, len)]) } diff --git a/src/librustc_trans/trans/consts.rs b/src/librustc_trans/trans/consts.rs index 5ca3d9ba1d9b6..18968e6f88580 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.get(), 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.get(), 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 1e788351172fc..400f03dbb5175 100644 --- a/src/librustc_trans/trans/debuginfo.rs +++ b/src/librustc_trans/trans/debuginfo.rs @@ -802,7 +802,7 @@ pub fn create_global_var_metadata(cx: &CrateContext, let variable_type = ty::node_id_to_type(cx.tcx(), node_id); let type_metadata = type_metadata(cx, variable_type, span); let namespace_node = namespace_for_item(cx, ast_util::local_def(node_id)); - let var_name = token::get_ident(ident).get().to_string(); + let var_name = token::get_ident(ident).to_string(); let linkage_name = namespace_node.mangled_name_of_contained_item(&var_name[]); let var_scope = namespace_node.scope; @@ -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).get()); + let mut function_name = String::from_str(&token::get_ident(ident)[]); let template_parameters = get_template_parameters(cx, generics, param_substs, @@ -1499,7 +1499,7 @@ pub fn create_function_debug_context<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, let ident = special_idents::type_self; let ident = token::get_ident(ident); - let name = CString::from_slice(ident.get().as_bytes()); + let name = CString::from_slice(ident.as_bytes()); let param_metadata = unsafe { llvm::LLVMDIBuilderCreateTemplateTypeParameter( DIB(cx), @@ -1533,7 +1533,7 @@ pub fn create_function_debug_context<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, if cx.sess().opts.debuginfo == FullDebugInfo { let actual_type_metadata = type_metadata(cx, actual_type, codemap::DUMMY_SP); let ident = token::get_ident(ident); - let name = CString::from_slice(ident.get().as_bytes()); + let name = CString::from_slice(ident.as_bytes()); let param_metadata = unsafe { llvm::LLVMDIBuilderCreateTemplateTypeParameter( DIB(cx), @@ -1656,7 +1656,7 @@ fn declare_local<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, CapturedVariable => (0, DW_TAG_auto_variable) }; - let name = CString::from_slice(name.get().as_bytes()); + let name = CString::from_slice(name.as_bytes()); match (variable_access, [].as_slice()) { (DirectVariable { alloca }, address_operations) | (IndirectVariable {alloca, address_operations}, _) => { @@ -1993,7 +1993,7 @@ impl<'tcx> StructMemberDescriptionFactory<'tcx> { let name = if field.name == special_idents::unnamed_field.name { "".to_string() } else { - token::get_name(field.name).get().to_string() + token::get_name(field.name).to_string() }; let offset = if self.is_simd { @@ -2223,7 +2223,7 @@ impl<'tcx> EnumMemberDescriptionFactory<'tcx> { // MemberDescription of the struct's single field. let sole_struct_member_description = MemberDescription { name: match non_null_variant.arg_names { - Some(ref names) => token::get_ident(names[0]).get().to_string(), + Some(ref names) => token::get_ident(names[0]).to_string(), None => "".to_string() }, llvm_type: non_null_llvm_type, @@ -2237,13 +2237,13 @@ impl<'tcx> EnumMemberDescriptionFactory<'tcx> { .get_unique_type_id_of_enum_variant( cx, self.enum_type, - non_null_variant_name.get()); + &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.get(), + &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.get(); + let variant_name = &variant_name[]; let unique_type_id = debug_context(cx).type_map .borrow_mut() .get_unique_type_id_of_enum_variant( @@ -2392,7 +2392,7 @@ fn describe_enum_variant<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, Some(ref names) => { names.iter() .map(|ident| { - token::get_ident(*ident).get().to_string() + token::get_ident(*ident).to_string() }).collect() } None => variant_info.args.iter().map(|_| "".to_string()).collect() @@ -2443,7 +2443,7 @@ fn prepare_enum_metadata<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, .iter() .map(|v| { let token = token::get_name(v.name); - let name = CString::from_slice(token.get().as_bytes()); + let name = CString::from_slice(token.as_bytes()); unsafe { llvm::LLVMDIBuilderCreateEnumerator( DIB(cx), @@ -2473,7 +2473,7 @@ fn prepare_enum_metadata<'a, 'tcx>(cx: &CrateContext<'a, 'tcx>, codemap::DUMMY_SP); let discriminant_name = get_enum_discriminant_name(cx, enum_def_id); - let name = CString::from_slice(discriminant_name.get().as_bytes()); + let name = CString::from_slice(discriminant_name.as_bytes()); let discriminant_type_metadata = unsafe { llvm::LLVMDIBuilderCreateEnumerationType( DIB(cx), @@ -3126,7 +3126,7 @@ fn contains_nodebug_attribute(attributes: &[ast::Attribute]) -> bool { attributes.iter().any(|attr| { let meta_item: &ast::MetaItem = &*attr.node.value; match meta_item.node { - ast::MetaWord(ref value) => value.get() == "no_debug", + ast::MetaWord(ref value) => &value[] == "no_debug", _ => false } }) @@ -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.get()); + 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.get()); + output.push_str(&name[]); } }); } @@ -3912,8 +3912,8 @@ impl NamespaceTreeNode { None => {} } let string = token::get_name(node.name); - output.push_str(&format!("{}", string.get().len())[]); - output.push_str(string.get()); + output.push_str(&format!("{}", string.len())[]); + output.push_str(&string[]); } let mut name = String::from_str("_ZN"); @@ -3970,7 +3970,7 @@ fn namespace_for_item(cx: &CrateContext, def_id: ast::DefId) -> Rc { - let linkage = match llvm_linkage_by_name(name.get()) { + let linkage = match llvm_linkage_by_name(&name[]) { Some(linkage) => linkage, None => { ccx.sess().span_fatal(foreign_item.span, @@ -134,7 +134,7 @@ pub fn register_static(ccx: &CrateContext, }; unsafe { // Declare a symbol `foo` with the desired linkage. - let buf = CString::from_slice(ident.get().as_bytes()); + let buf = CString::from_slice(ident.as_bytes()); let g1 = llvm::LLVMAddGlobal(ccx.llmod(), llty2.to_ref(), buf.as_ptr()); llvm::SetLinkage(g1, linkage); @@ -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.get()); + 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()); @@ -157,7 +157,7 @@ pub fn register_static(ccx: &CrateContext, } None => unsafe { // Generate an external declaration. - let buf = CString::from_slice(ident.get().as_bytes()); + let buf = CString::from_slice(ident.as_bytes()); llvm::LLVMAddGlobal(ccx.llmod(), llty.to_ref(), buf.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.get()[]); + &lname[]); // Unlike for other items, we shouldn't call // `base::update_linkage` here. Foreign items have // special linkage requirements, which are handled @@ -478,7 +478,7 @@ pub fn trans_foreign_mod(ccx: &CrateContext, foreign_mod: &ast::ForeignMod) { } ccx.item_symbols().borrow_mut().insert(foreign_item.id, - lname.get().to_string()); + lname.to_string()); } } diff --git a/src/librustc_trans/trans/intrinsic.rs b/src/librustc_trans/trans/intrinsic.rs index 08be8fa193dda..9ac4f04f7427a 100644 --- a/src/librustc_trans/trans/intrinsic.rs +++ b/src/librustc_trans/trans/intrinsic.rs @@ -36,7 +36,7 @@ use syntax::parse::token; use util::ppaux::{Repr, ty_to_string}; pub fn get_simple_intrinsic(ccx: &CrateContext, item: &ast::ForeignItem) -> Option { - let name = match token::get_ident(item.ident).get() { + let name = match &token::get_ident(item.ident)[] { "sqrtf32" => "llvm.sqrt.f32", "sqrtf64" => "llvm.sqrt.f64", "powif32" => "llvm.powi.f32", @@ -166,7 +166,7 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, let name = token::get_ident(foreign_item.ident); // For `transmute` we can just trans the input expr directly into dest - if name.get() == "transmute" { + if &name[] == "transmute" { let llret_ty = type_of::type_of(ccx, ret_ty.unwrap()); match args { callee::ArgExprs(arg_exprs) => { @@ -274,13 +274,13 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, let call_debug_location = DebugLoc::At(call_info.id, call_info.span); // These are the only intrinsic functions that diverge. - if name.get() == "abort" { + if &name[] == "abort" { let llfn = ccx.get_intrinsic(&("llvm.trap")); Call(bcx, llfn, &[], None, call_debug_location); fcx.pop_and_trans_custom_cleanup_scope(bcx, cleanup_scope); Unreachable(bcx); return Result::new(bcx, C_undef(Type::nil(ccx).ptr_to())); - } else if name.get() == "unreachable" { + } else if &name[] == "unreachable" { fcx.pop_and_trans_custom_cleanup_scope(bcx, cleanup_scope); Unreachable(bcx); return Result::new(bcx, C_nil(ccx)); @@ -307,7 +307,7 @@ pub fn trans_intrinsic_call<'a, 'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, }; let simple = get_simple_intrinsic(ccx, &*foreign_item); - let llval = match (simple, name.get()) { + let llval = match (simple, &name[]) { (Some(llfn), _) => { Call(bcx, llfn, &llargs, None, call_debug_location) } diff --git a/src/librustc_trans/trans/tvec.rs b/src/librustc_trans/trans/tvec.rs index 66f603cbe07f2..bce93cbf2eb9d 100644 --- a/src/librustc_trans/trans/tvec.rs +++ b/src/librustc_trans/trans/tvec.rs @@ -209,7 +209,7 @@ pub fn trans_lit_str<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, match dest { Ignore => bcx, SaveIn(lldest) => { - let bytes = str_lit.get().len(); + let bytes = str_lit.len(); let llbytes = C_uint(bcx.ccx(), bytes); let llcstr = C_cstr(bcx.ccx(), str_lit, false); let llcstr = consts::ptrcast(llcstr, Type::i8p(bcx.ccx())); @@ -242,7 +242,7 @@ pub fn write_content<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, match dest { Ignore => return bcx, SaveIn(lldest) => { - let bytes = s.get().len(); + let bytes = s.len(); let llbytes = C_uint(bcx.ccx(), bytes); let llcstr = C_cstr(bcx.ccx(), (*s).clone(), false); base::call_memcpy(bcx, @@ -343,7 +343,7 @@ pub fn elements_required(bcx: Block, content_expr: &ast::Expr) -> uint { match content_expr.node { ast::ExprLit(ref lit) => { match lit.node { - ast::LitStr(ref s, _) => s.get().len(), + ast::LitStr(ref s, _) => s.len(), _ => { bcx.tcx().sess.span_bug(content_expr.span, "unexpected evec content") From 93fe5c82bfc58019cd799d9ceca8e22b380cfa60 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 01:07:42 +0100 Subject: [PATCH 10/14] librustc_driver has been updated --- src/librustc_driver/driver.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index 0b0b1f9276fbb..528ea228a9861 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -914,7 +914,7 @@ pub fn build_output_filenames(input: &Input, // If a crate name is present, we use it as the link name let stem = sess.opts.crate_name.clone().or_else(|| { - attr::find_crate_name(attrs).map(|n| n.get().to_string()) + attr::find_crate_name(attrs).map(|n| n.to_string()) }).unwrap_or(input.filestem()); OutputFilenames { From 7b973ba827076fcee194521b21a3b30caab41012 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Wed, 4 Feb 2015 21:48:12 +0100 Subject: [PATCH 11/14] 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(-) diff --git a/src/librustc/lint/builtin.rs b/src/librustc/lint/builtin.rs index 30863c81aa26b..44e40ee297f98 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 0db7c802abbdd..18628f6903f5d 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 304ff80845cf0..d15c902c7e1e3 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 e0ea157368154..37055f851b41a 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 12573bf0ffd1a..dda34426bfc45 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 90b43dd7f7d62..1b513a13588c9 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 9b9e3ec947420..e817573b89cc7 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 0343d9af28d6a..2197cbeb85db4 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 7456cc8cb0f66..ee3fd681a0052 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 a7a5ea4c7b46c..c72b7fdf7ad4d 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 03f004ccb671a..3abb1b694e6ae 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 fe42817a9c4ff..2f25f34a92ad0 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 0d87f2a17dfa4..a261599a70656 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 bfeb73bb54622..9f26e9182ab1e 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 49fd040b25a47..e80564097df23 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 7ec371cec253c..e419be65fc4cc 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 089292fa64ead..6a97d393ba8fc 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 18968e6f88580..15fa566d5484c 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 400f03dbb5175..c57afcf2adac4 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 a2fe5fa3f170c..80b27a8b9859f 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 22393a7a29199..60771d126b51b 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 5b89954c58654..9c0d6f7dae386 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 7849b7548c4bd..7e1bf7a2230b8 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 cd82d7c9b1489..a3afe5780d0d5 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 4a3c1f48252fc..833a6d52acb97 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 8c710545cb0e8..1ceda2e08dd82 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 849d8bff36575..80d128959eaf3 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 14de5803604af..364cacd735cc7 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 49f766eb957a8..821fdeaa86a1f 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 2298686e8c1bb..8f3c9177b9c7b 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 e43ca9db8b1ce..61aae4e98b4a4 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 af357e45a7c7a..96055e3635a60 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 21c65d7fbf646..d752e34c11253 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 45f4f044ea4d1..39bc7f6f5af53 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 a244c9de62b4c..c177cd1fafa55 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 ddebf07ece59d..1a8cb2b376aeb 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, From b0b4136d457d7be14ab147b6a46ea6bda10966f0 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 5 Feb 2015 01:03:12 +0100 Subject: [PATCH 12/14] Remove getenv warning --- src/libsyntax/ext/env.rs | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/libsyntax/ext/env.rs b/src/libsyntax/ext/env.rs index 8f3c9177b9c7b..417506cf3aadb 100644 --- a/src/libsyntax/ext/env.rs +++ b/src/libsyntax/ext/env.rs @@ -22,7 +22,6 @@ use ext::build::AstBuilder; use parse::token; use std::env; -use std::os; pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) -> Box { @@ -102,12 +101,12 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt, sp: Span, tts: &[ast::TokenTree]) } } - let e = match os::getenv(&var) { - None => { + let e = match env::var_string(&var[]) { + Err(_) => { cx.span_err(sp, &msg); cx.expr_usize(sp, 0) } - Some(s) => cx.expr_str(sp, token::intern_and_get_ident(&s)) + Ok(s) => cx.expr_str(sp, token::intern_and_get_ident(&s)) }; MacExpr::new(e) } From 9e20035e339da2feb9f0a07cc8e49bd3b4d2b8b6 Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 5 Feb 2015 15:11:51 +0100 Subject: [PATCH 13/14] Fix infinite loop error --- src/libsyntax/parse/token.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index 39bc7f6f5af53..45f4f044ea4d1 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()) } } From a2e01c62d5b6259d55b6688c8b059ac28e5dd03e Mon Sep 17 00:00:00 2001 From: GuillaumeGomez Date: Thu, 5 Feb 2015 15:19:23 +0100 Subject: [PATCH 14/14] 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(-) diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 248ce99ff9b72..e707e83c3897b 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 143b4cdee487a..6acd15379461c 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 5bcda778cbbb0..ac1a02854124a 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 61aae4e98b4a4..33712dae900b8 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 6ff5c77f5079a..56ab36355a9ed 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 ae9804423bbd6..36b3091852bce 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 06051b874939b..9020bb7b0fb2e 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 24f7a6af78239..30a3183c80856 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.