diff options
| author | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-05-22 10:15:32 +1000 |
|---|---|---|
| committer | Nicholas Nethercote <nnethercote@mozilla.com> | 2019-05-27 13:58:38 +1000 |
| commit | 6c0ff3dd979ccaf974312d72a4fba8392eb1a4f7 (patch) | |
| tree | 8b621d6a428fa5bc7befba9493968d7d3bec533f /src | |
| parent | 37c45ec3980f97ecd06617d3315105eec9247432 (diff) | |
| download | rust-6c0ff3dd979ccaf974312d72a4fba8392eb1a4f7.tar.gz rust-6c0ff3dd979ccaf974312d72a4fba8392eb1a4f7.zip | |
Avoid interning in `resolve_place_op`.
This function is hot for `keccak`.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_typeck/check/mod.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax_pos/symbol.rs | 4 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index b9713e844d6..61fc856764c 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -2697,16 +2697,12 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> { fn resolve_place_op(&self, op: PlaceOp, is_mut: bool) -> (Option<DefId>, ast::Ident) { let (tr, name) = match (op, is_mut) { - (PlaceOp::Deref, false) => - (self.tcx.lang_items().deref_trait(), "deref"), - (PlaceOp::Deref, true) => - (self.tcx.lang_items().deref_mut_trait(), "deref_mut"), - (PlaceOp::Index, false) => - (self.tcx.lang_items().index_trait(), "index"), - (PlaceOp::Index, true) => - (self.tcx.lang_items().index_mut_trait(), "index_mut"), + (PlaceOp::Deref, false) => (self.tcx.lang_items().deref_trait(), sym::deref), + (PlaceOp::Deref, true) => (self.tcx.lang_items().deref_mut_trait(), sym::deref_mut), + (PlaceOp::Index, false) => (self.tcx.lang_items().index_trait(), sym::index), + (PlaceOp::Index, true) => (self.tcx.lang_items().index_mut_trait(), sym::index_mut), }; - (tr, ast::Ident::from_str(name)) + (tr, ast::Ident::with_empty_ctxt(name)) } fn try_overloaded_place_op(&self, diff --git a/src/libsyntax_pos/symbol.rs b/src/libsyntax_pos/symbol.rs index 26422e891c5..3296de7b927 100644 --- a/src/libsyntax_pos/symbol.rs +++ b/src/libsyntax_pos/symbol.rs @@ -204,6 +204,8 @@ symbols! { default_type_params, deny, deprecated, + deref, + deref_mut, derive, doc, doc_alias, @@ -291,6 +293,8 @@ symbols! { impl_header_lifetime_elision, impl_trait_in_bindings, import_shadowing, + index, + index_mut, in_band_lifetimes, include, inclusive_range_syntax, |
