Avoid unnecessary interning in DefPathData::as_interned_str().

This commit is contained in:
Nicholas Nethercote 2019-05-17 18:47:49 +10:00
parent 86cc326d06
commit 4ab5fe3f97
2 changed files with 16 additions and 9 deletions

View file

@ -17,7 +17,7 @@ use std::fmt::Write;
use std::hash::Hash;
use syntax::ast;
use syntax::ext::hygiene::Mark;
use syntax::symbol::{Symbol, InternedString};
use syntax::symbol::{Symbol, sym, InternedString};
use syntax_pos::{Span, DUMMY_SP};
use crate::util::nodemap::NodeMap;
@ -584,16 +584,16 @@ impl DefPathData {
return name
}
// note that this does not show up in user printouts
CrateRoot => "{{crate}}",
Impl => "{{impl}}",
Misc => "{{misc}}",
ClosureExpr => "{{closure}}",
Ctor => "{{constructor}}",
AnonConst => "{{constant}}",
ImplTrait => "{{opaque}}",
CrateRoot => sym::double_braced_crate,
Impl => sym::double_braced_impl,
Misc => sym::double_braced_misc,
ClosureExpr => sym::double_braced_closure,
Ctor => sym::double_braced_constructor,
AnonConst => sym::double_braced_constant,
ImplTrait => sym::double_braced_opaque,
};
Symbol::intern(s).as_interned_str()
s.as_interned_str()
}
pub fn to_string(&self) -> String {

View file

@ -214,6 +214,13 @@ symbols! {
document_private_items,
dotdoteq_in_patterns,
dotdot_in_tuple_patterns,
double_braced_crate: "{{crate}}",
double_braced_impl: "{{impl}}",
double_braced_misc: "{{misc}}",
double_braced_closure: "{{closure}}",
double_braced_constructor: "{{constructor}}",
double_braced_constant: "{{constant}}",
double_braced_opaque: "{{opaque}}",
dropck_eyepatch,
dropck_parametricity,
drop_types_in_const,