summary refs log tree commit diff
path: root/src/libsyntax/parse
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-10-15 09:32:06 -0700
committerGitHub <noreply@github.com>2016-10-15 09:32:06 -0700
commit5bfe10740168eb8213101c827302b4c45b1b5b74 (patch)
tree87a212efaa05f0461b26e463fdeabb8718b0c8c3 /src/libsyntax/parse
parent8e05e7ee3c19a5594b79d67c8390cef78970be7c (diff)
parent348c3fb0851c155f06768e54c44990d39b6eb142 (diff)
downloadrust-5bfe10740168eb8213101c827302b4c45b1b5b74.tar.gz
rust-5bfe10740168eb8213101c827302b4c45b1b5b74.zip
Auto merge of #37132 - petrochenkov:intern, r=alexcrichton
Get rid of double indirection in string interner
Diffstat (limited to 'src/libsyntax/parse')
-rw-r--r--src/libsyntax/parse/token.rs13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs
index 73d9695a990..3d4dd9ec064 100644
--- a/src/libsyntax/parse/token.rs
+++ b/src/libsyntax/parse/token.rs
@@ -478,27 +478,20 @@ pub fn clear_ident_interner() {
 /// somehow.
 #[derive(Clone, PartialEq, Hash, PartialOrd, Eq, Ord)]
 pub struct InternedString {
-    string: Rc<String>,
+    string: Rc<str>,
 }
 
 impl InternedString {
     #[inline]
     pub fn new(string: &'static str) -> InternedString {
         InternedString {
-            string: Rc::new(string.to_owned()),
-        }
-    }
-
-    #[inline]
-    fn new_from_rc_str(string: Rc<String>) -> InternedString {
-        InternedString {
-            string: string,
+            string: Rc::__from_str(string),
         }
     }
 
     #[inline]
     pub fn new_from_name(name: ast::Name) -> InternedString {
-        with_ident_interner(|interner| InternedString::new_from_rc_str(interner.get(name)))
+        with_ident_interner(|interner| InternedString { string: interner.get(name) })
     }
 }