@@ -1624,14 +1624,15 @@ impl Symbol {
1624
1624
1625
1625
/// Maps a string to its interned representation.
1626
1626
pub fn intern ( string : & str ) -> Self {
1627
- with_interner ( |interner| interner . intern ( string) )
1627
+ with_session_globals ( |session_globals| session_globals . symbol_interner . intern ( string) )
1628
1628
}
1629
1629
1630
1630
/// Convert to a `SymbolStr`. This is a slowish operation because it
1631
1631
/// requires locking the symbol interner.
1632
1632
pub fn as_str ( self ) -> SymbolStr {
1633
- with_interner ( |interner| unsafe {
1634
- SymbolStr { string : std:: mem:: transmute :: < & str , & str > ( interner. get ( self ) ) }
1633
+ with_session_globals ( |session_globals| {
1634
+ let symbol_str = session_globals. symbol_interner . get ( self ) ;
1635
+ unsafe { SymbolStr { string : std:: mem:: transmute :: < & str , & str > ( symbol_str) } }
1635
1636
} )
1636
1637
}
1637
1638
@@ -1640,7 +1641,7 @@ impl Symbol {
1640
1641
}
1641
1642
1642
1643
pub fn len ( self ) -> usize {
1643
- with_interner ( |interner| interner . get ( self ) . len ( ) )
1644
+ with_session_globals ( |session_globals| session_globals . symbol_interner . get ( self ) . len ( ) )
1644
1645
}
1645
1646
1646
1647
pub fn is_empty ( self ) -> bool {
@@ -1879,11 +1880,6 @@ impl Ident {
1879
1880
}
1880
1881
}
1881
1882
1882
- #[ inline]
1883
- fn with_interner < T , F : FnOnce ( & Interner ) -> T > ( f : F ) -> T {
1884
- with_session_globals ( |session_globals| f ( & session_globals. symbol_interner ) )
1885
- }
1886
-
1887
1883
/// An alternative to [`Symbol`], useful when the chars within the symbol need to
1888
1884
/// be accessed. It deliberately has limited functionality and should only be
1889
1885
/// used for temporary values.
0 commit comments