Skip to content

Commit beb2f5b

Browse files
committed
Remove Ident::{gensym, is_gensymed}
`gensym_if_underscore` still exists. The symbol interner can still create arbitray gensyms, this is just not exposed publicly.
1 parent 2a82aec commit beb2f5b

File tree

2 files changed

+14
-21
lines changed

2 files changed

+14
-21
lines changed

src/librustc_resolve/resolve_imports.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,12 +1307,8 @@ impl<'a, 'b> ImportResolver<'a, 'b> {
13071307
None => continue,
13081308
};
13091309

1310-
// Filter away ambiguous and gensymed imports. Gensymed imports
1311-
// (e.g. implicitly injected `std`) cannot be properly encoded in metadata,
1312-
// so they can cause name conflict errors downstream.
1313-
let is_good_import = binding.is_import() && !binding.is_ambiguity() &&
1314-
// Note that as_str() de-gensyms the Symbol
1315-
!(ident.is_gensymed() && ident.name.as_str() != "_");
1310+
// Filter away ambiguous imports.
1311+
let is_good_import = binding.is_import() && !binding.is_ambiguity();
13161312
if is_good_import || binding.is_macro_def() {
13171313
let res = binding.res();
13181314
if res != Res::Err {

src/libsyntax_pos/symbol.rs

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -798,21 +798,15 @@ impl Ident {
798798
Ident::new(self.name, self.span.modern_and_legacy())
799799
}
800800

801-
/// Transforms an identifier into one with the same name, but gensymed.
802-
pub fn gensym(self) -> Ident {
803-
let name = with_interner(|interner| interner.gensymed(self.name));
804-
Ident::new(name, self.span)
805-
}
806-
807801
/// Transforms an underscore identifier into one with the same name, but
808802
/// gensymed. Leaves non-underscore identifiers unchanged.
809803
pub fn gensym_if_underscore(self) -> Ident {
810-
if self.name == kw::Underscore { self.gensym() } else { self }
811-
}
812-
813-
// WARNING: this function is deprecated and will be removed in the future.
814-
pub fn is_gensymed(self) -> bool {
815-
with_interner(|interner| interner.is_gensymed(self.name))
804+
if self.name == kw::Underscore {
805+
let name = with_interner(|interner| interner.gensymed(self.name));
806+
Ident::new(name, self.span)
807+
} else {
808+
self
809+
}
816810
}
817811

818812
pub fn as_str(self) -> LocalInternedString {
@@ -865,9 +859,12 @@ impl UseSpecializedDecodable for Ident {}
865859
///
866860
/// Examples:
867861
/// ```
868-
/// assert_eq!(Ident::from_str("x"), Ident::from_str("x"))
869-
/// assert_ne!(Ident::from_str("x").gensym(), Ident::from_str("x"))
870-
/// assert_ne!(Ident::from_str("x").gensym(), Ident::from_str("x").gensym())
862+
/// assert_eq!(Ident::from_str("_"), Ident::from_str("_"))
863+
/// assert_ne!(Ident::from_str("_").gensym_if_underscore(), Ident::from_str("_"))
864+
/// assert_ne!(
865+
/// Ident::from_str("_").gensym_if_underscore(),
866+
/// Ident::from_str("_").gensym_if_underscore(),
867+
/// )
871868
/// ```
872869
/// Internally, a symbol is implemented as an index, and all operations
873870
/// (including hashing, equality, and ordering) operate on that index. The use

0 commit comments

Comments
 (0)