Skip to content

Commit 8e849d8

Browse files
committed
Auto merge of #60815 - nnethercote:use-Symbol-more-2, r=<try>
Use `Symbol` even more These patches simplify the code a bit (fewer conversions) and also speed things up a bit (fewer `with_interner` calls). r? @petrochenkov
2 parents 80e7cde + 67b969e commit 8e849d8

File tree

31 files changed

+127
-110
lines changed

31 files changed

+127
-110
lines changed

src/librustc/hir/map/definitions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ impl DefPathData {
593593
ImplTrait => "{{opaque}}",
594594
};
595595

596-
Symbol::intern(s).as_interned_str()
596+
InternedString::intern(s)
597597
}
598598

599599
pub fn to_string(&self) -> String {

src/librustc/hir/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ use crate::util::nodemap::{NodeMap, FxHashSet};
1616
use crate::mir::mono::Linkage;
1717

1818
use errors::FatalError;
19-
use syntax_pos::{Span, DUMMY_SP, symbol::InternedString};
19+
use syntax_pos::{Span, DUMMY_SP};
2020
use syntax::source_map::Spanned;
2121
use rustc_target::spec::abi::Abi;
2222
use syntax::ast::{self, CrateSugar, Ident, Name, NodeId, AsmDialect};
@@ -609,9 +609,9 @@ impl Generics {
609609
own_counts
610610
}
611611

612-
pub fn get_named(&self, name: &InternedString) -> Option<&GenericParam> {
612+
pub fn get_named(&self, name: Symbol) -> Option<&GenericParam> {
613613
for param in &self.params {
614-
if *name == param.name.ident().as_interned_str() {
614+
if name == param.name.ident().name {
615615
return Some(param);
616616
}
617617
}

src/librustc/infer/error_reporting/mod.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,20 +194,20 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
194194
let mut sp = cm.def_span(self.hir().span_by_hir_id(node));
195195
if let Some(param) = self.hir()
196196
.get_generics(scope)
197-
.and_then(|generics| generics.get_named(&br.name))
197+
.and_then(|generics| generics.get_named(br.name))
198198
{
199199
sp = param.span;
200200
}
201201
(format!("the lifetime {} as defined on", br.name), sp)
202202
}
203203
ty::ReFree(ty::FreeRegion {
204-
bound_region: ty::BoundRegion::BrNamed(_, ref name),
204+
bound_region: ty::BoundRegion::BrNamed(_, name),
205205
..
206206
}) => {
207207
let mut sp = cm.def_span(self.hir().span_by_hir_id(node));
208208
if let Some(param) = self.hir()
209209
.get_generics(scope)
210-
.and_then(|generics| generics.get_named(&name))
210+
.and_then(|generics| generics.get_named(name))
211211
{
212212
sp = param.span;
213213
}

src/librustc/infer/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ use std::cell::{Cell, Ref, RefCell, RefMut};
3232
use std::collections::BTreeMap;
3333
use std::fmt;
3434
use syntax::ast;
35-
use syntax_pos::symbol::InternedString;
35+
use syntax_pos::symbol::Symbol;
3636
use syntax_pos::Span;
3737

3838
use self::combine::CombineFields;
@@ -383,7 +383,7 @@ pub enum RegionVariableOrigin {
383383
Coercion(Span),
384384

385385
/// Region variables created as the values for early-bound regions
386-
EarlyBoundRegion(Span, InternedString),
386+
EarlyBoundRegion(Span, Symbol),
387387

388388
/// Region variables created for bound regions
389389
/// in a function or method that is called

src/librustc/infer/type_variable.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use syntax::symbol::InternedString;
1+
use syntax::symbol::Symbol;
22
use syntax_pos::Span;
33
use crate::ty::{self, Ty, TyVid};
44

@@ -43,7 +43,7 @@ pub enum TypeVariableOrigin {
4343
MiscVariable(Span),
4444
NormalizeProjectionType(Span),
4545
TypeInference(Span),
46-
TypeParameterDefinition(Span, InternedString),
46+
TypeParameterDefinition(Span, Symbol),
4747

4848
/// one of the upvars or closure kind parameters in a `ClosureSubsts`
4949
/// (before it has been determined)

src/librustc/infer/unify_key.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::mir::interpret::ConstValue;
33
use rustc_data_structures::unify::{NoError, EqUnifyValue, UnifyKey, UnifyValue, UnificationTable};
44
use rustc_data_structures::unify::InPlace;
55
use syntax_pos::{Span, DUMMY_SP};
6-
use syntax::symbol::InternedString;
6+
use syntax::symbol::Symbol;
77

88
use std::cmp;
99
use std::marker::PhantomData;
@@ -84,7 +84,7 @@ impl ToType for FloatVarValue {
8484
pub enum ConstVariableOrigin {
8585
MiscVariable(Span),
8686
ConstInference(Span),
87-
ConstParameterDefinition(Span, InternedString),
87+
ConstParameterDefinition(Span, Symbol),
8888
SubstitutionPlaceholder(Span),
8989
}
9090

src/librustc/lint/context.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -828,8 +828,8 @@ impl<'a, 'tcx> LateContext<'a, 'tcx> {
828828

829829
// This shouldn't ever be needed, but just in case:
830830
Ok(vec![match trait_ref {
831-
Some(trait_ref) => Symbol::intern(&format!("{:?}", trait_ref)).as_str(),
832-
None => Symbol::intern(&format!("<{}>", self_ty)).as_str(),
831+
Some(trait_ref) => LocalInternedString::intern(&format!("{:?}", trait_ref)),
832+
None => LocalInternedString::intern(&format!("<{}>", self_ty)),
833833
}])
834834
}
835835

@@ -845,9 +845,10 @@ impl<'a, 'tcx> LateContext<'a, 'tcx> {
845845
// This shouldn't ever be needed, but just in case:
846846
path.push(match trait_ref {
847847
Some(trait_ref) => {
848-
Symbol::intern(&format!("<impl {} for {}>", trait_ref, self_ty)).as_str()
848+
LocalInternedString::intern(&format!("<impl {} for {}>", trait_ref,
849+
self_ty))
849850
},
850-
None => Symbol::intern(&format!("<impl {}>", self_ty)).as_str(),
851+
None => LocalInternedString::intern(&format!("<impl {}>", self_ty)),
851852
});
852853

853854
Ok(path)

src/librustc/mir/mono.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use crate::hir::def_id::{DefId, CrateNum, LOCAL_CRATE};
22
use crate::hir::HirId;
3-
use syntax::symbol::{Symbol, InternedString};
3+
use syntax::symbol::InternedString;
44
use crate::ty::{Instance, TyCtxt};
55
use crate::util::nodemap::FxHashMap;
66
use rustc_data_structures::base_n;
@@ -280,7 +280,7 @@ impl<'a, 'gcx: 'tcx, 'tcx: 'a> CodegenUnitNameBuilder<'a, 'gcx, 'tcx> {
280280
cgu_name
281281
} else {
282282
let cgu_name = &cgu_name.as_str()[..];
283-
Symbol::intern(&CodegenUnit::mangle_name(cgu_name)).as_interned_str()
283+
InternedString::intern(&CodegenUnit::mangle_name(cgu_name))
284284
}
285285
}
286286

@@ -336,6 +336,6 @@ impl<'a, 'gcx: 'tcx, 'tcx: 'a> CodegenUnitNameBuilder<'a, 'gcx, 'tcx> {
336336
write!(cgu_name, ".{}", special_suffix).unwrap();
337337
}
338338

339-
Symbol::intern(&cgu_name[..]).as_interned_str()
339+
InternedString::intern(&cgu_name[..])
340340
}
341341
}

src/librustc/traits/object_safety.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ impl<'a, 'tcx> TyCtxt<'a, 'tcx, 'tcx> {
539539
// are implemented
540540
let unsized_self_ty: Ty<'tcx> = self.mk_ty_param(
541541
::std::u32::MAX,
542-
Name::intern("RustaceansAreAwesome").as_interned_str(),
542+
Name::intern("RustaceansAreAwesome"),
543543
);
544544

545545
// `Receiver[Self => U]`

src/librustc/traits/on_unimplemented.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ impl<'a, 'gcx, 'tcx> OnUnimplementedFormatString {
250250
Position::ArgumentNamed(s) if s == "from_desugaring" => (),
251251
// So is `{A}` if A is a type parameter
252252
Position::ArgumentNamed(s) => match generics.params.iter().find(|param|
253-
param.name == s
253+
param.name.as_str() == s
254254
) {
255255
Some(_) => (),
256256
None => {

0 commit comments

Comments
 (0)