From: Nicholas Nethercote Date: Thu, 16 May 2019 23:35:26 +0000 (+1000) Subject: Move `is_gensymed` from `Symbol` to `Ident`. X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=f6637f3fcc01d7efe9a2e00f62d35a7e68ae892d;p=rust.git Move `is_gensymed` from `Symbol` to `Ident`. Note that the `is_gensymed` call on `primitive_types` is unnecessary because that table only contains the name of primitive types (e.g. `i32`) and never contains gensyms. --- diff --git a/src/librustc_resolve/lib.rs b/src/librustc_resolve/lib.rs index 77e8cc3272c..c4a4dd30605 100644 --- a/src/librustc_resolve/lib.rs +++ b/src/librustc_resolve/lib.rs @@ -4225,7 +4225,7 @@ fn lookup_typo_candidate( let add_module_candidates = |module: Module<'_>, names: &mut Vec| { for (&(ident, _), resolution) in module.resolutions.borrow().iter() { if let Some(binding) = resolution.borrow().binding { - if !ident.name.is_gensymed() && filter_fn(binding.res()) { + if !ident.is_gensymed() && filter_fn(binding.res()) { names.push(TypoSuggestion { candidate: ident.name, article: binding.res().article(), @@ -4243,7 +4243,7 @@ fn lookup_typo_candidate( for rib in self.ribs[ns].iter().rev() { // Locals and type parameters for (ident, &res) in &rib.bindings { - if !ident.name.is_gensymed() && filter_fn(res) { + if !ident.is_gensymed() && filter_fn(res) { names.push(TypoSuggestion { candidate: ident.name, article: res.article(), @@ -4273,7 +4273,7 @@ fn lookup_typo_candidate( }, ); - if !ident.name.is_gensymed() && filter_fn(crate_mod) { + if !ident.is_gensymed() && filter_fn(crate_mod) { Some(TypoSuggestion { candidate: ident.name, article: "a", @@ -4298,7 +4298,6 @@ fn lookup_typo_candidate( names.extend( self.primitive_type_table.primitive_types .iter() - .filter(|(name, _)| !name.is_gensymed()) .map(|(name, _)| { TypoSuggestion { candidate: *name, diff --git a/src/librustc_resolve/resolve_imports.rs b/src/librustc_resolve/resolve_imports.rs index 4058f0bce0f..3a6a8b56ff3 100644 --- a/src/librustc_resolve/resolve_imports.rs +++ b/src/librustc_resolve/resolve_imports.rs @@ -1395,7 +1395,7 @@ fn finalize_resolutions_in(&mut self, module: Module<'b>) { // so they can cause name conflict errors downstream. let is_good_import = binding.is_import() && !binding.is_ambiguity() && // Note that as_str() de-gensyms the Symbol - !(ident.name.is_gensymed() && ident.name.as_str() != "_"); + !(ident.is_gensymed() && ident.name.as_str() != "_"); if is_good_import || binding.is_macro_def() { let res = binding.res(); if res != Res::Err { diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index d12240655e6..88c22085bc4 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -72,11 +72,7 @@ pub struct Path { impl PartialEq for Path { fn eq(&self, symbol: &Symbol) -> bool { self.segments.len() == 1 && { - let name = self.segments[0].ident.name; - // Make sure these symbols are pure strings - debug_assert!(!symbol.is_gensymed()); - debug_assert!(!name.is_gensymed()); - name == *symbol + self.segments[0].ident.name == *symbol } } } diff --git a/src/libsyntax_pos/symbol.rs b/src/libsyntax_pos/symbol.rs index 97b22282668..3cd5577e19e 100644 --- a/src/libsyntax_pos/symbol.rs +++ b/src/libsyntax_pos/symbol.rs @@ -684,6 +684,11 @@ pub fn gensym_if_underscore(self) -> Ident { if self.name == keywords::Underscore.name() { self.gensym() } else { self } } + // WARNING: this function is deprecated and will be removed in the future. + pub fn is_gensymed(self) -> bool { + with_interner(|interner| interner.is_gensymed(self.name)) + } + pub fn as_str(self) -> LocalInternedString { self.name.as_str() } @@ -786,11 +791,6 @@ pub fn gensymed(self) -> Self { with_interner(|interner| interner.gensymed(self)) } - // WARNING: this function is deprecated and will be removed in the future. - pub fn is_gensymed(self) -> bool { - with_interner(|interner| interner.is_gensymed(self)) - } - pub fn as_str(self) -> LocalInternedString { with_interner(|interner| unsafe { LocalInternedString {