diff options
| author | bors <bors@rust-lang.org> | 2016-10-15 09:32:06 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-15 09:32:06 -0700 |
| commit | 5bfe10740168eb8213101c827302b4c45b1b5b74 (patch) | |
| tree | 87a212efaa05f0461b26e463fdeabb8718b0c8c3 /src/libsyntax/parse | |
| parent | 8e05e7ee3c19a5594b79d67c8390cef78970be7c (diff) | |
| parent | 348c3fb0851c155f06768e54c44990d39b6eb142 (diff) | |
| download | rust-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.rs | 13 |
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) }) } } |
