Rollup merge of #110175 - nnethercote:symbol-cleanups, r=jackh726
Symbol cleanups r? ```@jackh726``` cc ```@b-naber```
This commit is contained in:
commit
b4734f01fe
6 changed files with 28 additions and 49 deletions
|
@ -69,12 +69,10 @@ impl RegionCtxt {
|
||||||
/// Used to determine the representative of a component in the strongly connected
|
/// Used to determine the representative of a component in the strongly connected
|
||||||
/// constraint graph
|
/// constraint graph
|
||||||
pub(crate) fn preference_value(self) -> usize {
|
pub(crate) fn preference_value(self) -> usize {
|
||||||
let _anon = Symbol::intern("anon");
|
|
||||||
|
|
||||||
match self {
|
match self {
|
||||||
RegionCtxt::Unknown => 1,
|
RegionCtxt::Unknown => 1,
|
||||||
RegionCtxt::Existential(None) => 2,
|
RegionCtxt::Existential(None) => 2,
|
||||||
RegionCtxt::Existential(Some(_anon)) | RegionCtxt::Free(_anon) => 2,
|
RegionCtxt::Existential(Some(_)) | RegionCtxt::Free(_) => 2,
|
||||||
RegionCtxt::Location(_) => 3,
|
RegionCtxt::Location(_) => 3,
|
||||||
RegionCtxt::TyContext(_) => 4,
|
RegionCtxt::TyContext(_) => 4,
|
||||||
_ => 5,
|
_ => 5,
|
||||||
|
|
|
@ -35,6 +35,7 @@ use rustc_middle::ty::{
|
||||||
OpaqueHiddenType, OpaqueTypeKey, RegionVid, Ty, TyCtxt, UserType, UserTypeAnnotationIndex,
|
OpaqueHiddenType, OpaqueTypeKey, RegionVid, Ty, TyCtxt, UserType, UserTypeAnnotationIndex,
|
||||||
};
|
};
|
||||||
use rustc_span::def_id::CRATE_DEF_ID;
|
use rustc_span::def_id::CRATE_DEF_ID;
|
||||||
|
use rustc_span::symbol::sym;
|
||||||
use rustc_span::{Span, DUMMY_SP};
|
use rustc_span::{Span, DUMMY_SP};
|
||||||
use rustc_target::abi::{FieldIdx, FIRST_VARIANT};
|
use rustc_target::abi::{FieldIdx, FIRST_VARIANT};
|
||||||
use rustc_trait_selection::traits::query::type_op::custom::scrape_region_constraints;
|
use rustc_trait_selection::traits::query::type_op::custom::scrape_region_constraints;
|
||||||
|
@ -1338,18 +1339,13 @@ impl<'a, 'tcx> TypeChecker<'a, 'tcx> {
|
||||||
};
|
};
|
||||||
let (sig, map) = tcx.replace_late_bound_regions(sig, |br| {
|
let (sig, map) = tcx.replace_late_bound_regions(sig, |br| {
|
||||||
use crate::renumber::{BoundRegionInfo, RegionCtxt};
|
use crate::renumber::{BoundRegionInfo, RegionCtxt};
|
||||||
use rustc_span::Symbol;
|
|
||||||
|
|
||||||
let region_ctxt_fn = || {
|
let region_ctxt_fn = || {
|
||||||
let reg_info = match br.kind {
|
let reg_info = match br.kind {
|
||||||
ty::BoundRegionKind::BrAnon(Some(span)) => BoundRegionInfo::Span(span),
|
ty::BoundRegionKind::BrAnon(Some(span)) => BoundRegionInfo::Span(span),
|
||||||
ty::BoundRegionKind::BrAnon(..) => {
|
ty::BoundRegionKind::BrAnon(..) => BoundRegionInfo::Name(sym::anon),
|
||||||
BoundRegionInfo::Name(Symbol::intern("anon"))
|
|
||||||
}
|
|
||||||
ty::BoundRegionKind::BrNamed(_, name) => BoundRegionInfo::Name(name),
|
ty::BoundRegionKind::BrNamed(_, name) => BoundRegionInfo::Name(name),
|
||||||
ty::BoundRegionKind::BrEnv => {
|
ty::BoundRegionKind::BrEnv => BoundRegionInfo::Name(sym::env),
|
||||||
BoundRegionInfo::Name(Symbol::intern("env"))
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
RegionCtxt::LateBound(reg_info)
|
RegionCtxt::LateBound(reg_info)
|
||||||
|
|
|
@ -4,6 +4,7 @@ use rustc_infer::traits::PredicateObligations;
|
||||||
use rustc_middle::mir::ConstraintCategory;
|
use rustc_middle::mir::ConstraintCategory;
|
||||||
use rustc_middle::ty::relate::TypeRelation;
|
use rustc_middle::ty::relate::TypeRelation;
|
||||||
use rustc_middle::ty::{self, Ty};
|
use rustc_middle::ty::{self, Ty};
|
||||||
|
use rustc_span::symbol::sym;
|
||||||
use rustc_span::{Span, Symbol};
|
use rustc_span::{Span, Symbol};
|
||||||
use rustc_trait_selection::traits::query::Fallible;
|
use rustc_trait_selection::traits::query::Fallible;
|
||||||
|
|
||||||
|
@ -125,9 +126,9 @@ impl<'tcx> TypeRelatingDelegate<'tcx> for NllTypeRelatingDelegate<'_, '_, 'tcx>
|
||||||
|
|
||||||
let reg_info = match placeholder.bound.kind {
|
let reg_info = match placeholder.bound.kind {
|
||||||
ty::BoundRegionKind::BrAnon(Some(span)) => BoundRegionInfo::Span(span),
|
ty::BoundRegionKind::BrAnon(Some(span)) => BoundRegionInfo::Span(span),
|
||||||
ty::BoundRegionKind::BrAnon(..) => BoundRegionInfo::Name(Symbol::intern("anon")),
|
ty::BoundRegionKind::BrAnon(..) => BoundRegionInfo::Name(sym::anon),
|
||||||
ty::BoundRegionKind::BrNamed(_, name) => BoundRegionInfo::Name(name),
|
ty::BoundRegionKind::BrNamed(_, name) => BoundRegionInfo::Name(name),
|
||||||
ty::BoundRegionKind::BrEnv => BoundRegionInfo::Name(Symbol::intern("env")),
|
ty::BoundRegionKind::BrEnv => BoundRegionInfo::Name(sym::env),
|
||||||
};
|
};
|
||||||
|
|
||||||
let reg_var =
|
let reg_var =
|
||||||
|
|
|
@ -24,6 +24,7 @@ use rustc_infer::infer::NllRegionVariableOrigin;
|
||||||
use rustc_middle::ty::fold::TypeFoldable;
|
use rustc_middle::ty::fold::TypeFoldable;
|
||||||
use rustc_middle::ty::{self, InlineConstSubsts, InlineConstSubstsParts, RegionVid, Ty, TyCtxt};
|
use rustc_middle::ty::{self, InlineConstSubsts, InlineConstSubstsParts, RegionVid, Ty, TyCtxt};
|
||||||
use rustc_middle::ty::{InternalSubsts, SubstsRef};
|
use rustc_middle::ty::{InternalSubsts, SubstsRef};
|
||||||
|
use rustc_span::symbol::{kw, sym};
|
||||||
use rustc_span::Symbol;
|
use rustc_span::Symbol;
|
||||||
use std::iter;
|
use std::iter;
|
||||||
|
|
||||||
|
@ -404,10 +405,8 @@ impl<'cx, 'tcx> UniversalRegionsBuilder<'cx, 'tcx> {
|
||||||
assert_eq!(FIRST_GLOBAL_INDEX, self.infcx.num_region_vars());
|
assert_eq!(FIRST_GLOBAL_INDEX, self.infcx.num_region_vars());
|
||||||
|
|
||||||
// Create the "global" region that is always free in all contexts: 'static.
|
// Create the "global" region that is always free in all contexts: 'static.
|
||||||
let fr_static = self
|
let fr_static =
|
||||||
.infcx
|
self.infcx.next_nll_region_var(FR, || RegionCtxt::Free(kw::Static)).to_region_vid();
|
||||||
.next_nll_region_var(FR, || RegionCtxt::Free(Symbol::intern("static")))
|
|
||||||
.to_region_vid();
|
|
||||||
|
|
||||||
// We've now added all the global regions. The next ones we
|
// We've now added all the global regions. The next ones we
|
||||||
// add will be external.
|
// add will be external.
|
||||||
|
@ -440,11 +439,7 @@ impl<'cx, 'tcx> UniversalRegionsBuilder<'cx, 'tcx> {
|
||||||
debug!(?r);
|
debug!(?r);
|
||||||
if !indices.indices.contains_key(&r) {
|
if !indices.indices.contains_key(&r) {
|
||||||
let region_vid = {
|
let region_vid = {
|
||||||
let name = match r.get_name() {
|
let name = r.get_name_or_anon();
|
||||||
Some(name) => name,
|
|
||||||
_ => Symbol::intern("anon"),
|
|
||||||
};
|
|
||||||
|
|
||||||
self.infcx.next_nll_region_var(FR, || {
|
self.infcx.next_nll_region_var(FR, || {
|
||||||
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
||||||
})
|
})
|
||||||
|
@ -478,11 +473,7 @@ impl<'cx, 'tcx> UniversalRegionsBuilder<'cx, 'tcx> {
|
||||||
debug!(?r);
|
debug!(?r);
|
||||||
if !indices.indices.contains_key(&r) {
|
if !indices.indices.contains_key(&r) {
|
||||||
let region_vid = {
|
let region_vid = {
|
||||||
let name = match r.get_name() {
|
let name = r.get_name_or_anon();
|
||||||
Some(name) => name,
|
|
||||||
_ => Symbol::intern("anon"),
|
|
||||||
};
|
|
||||||
|
|
||||||
self.infcx.next_nll_region_var(FR, || {
|
self.infcx.next_nll_region_var(FR, || {
|
||||||
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
||||||
})
|
})
|
||||||
|
@ -768,15 +759,10 @@ impl<'cx, 'tcx> InferCtxtExt<'tcx> for BorrowckInferCtxt<'cx, 'tcx> {
|
||||||
T: TypeFoldable<TyCtxt<'tcx>>,
|
T: TypeFoldable<TyCtxt<'tcx>>,
|
||||||
{
|
{
|
||||||
self.infcx.tcx.fold_regions(value, |region, _depth| {
|
self.infcx.tcx.fold_regions(value, |region, _depth| {
|
||||||
let name = match region.get_name() {
|
let name = region.get_name_or_anon();
|
||||||
Some(name) => name,
|
|
||||||
_ => Symbol::intern("anon"),
|
|
||||||
};
|
|
||||||
debug!(?region, ?name);
|
debug!(?region, ?name);
|
||||||
|
|
||||||
let reg_var = self.next_nll_region_var(origin, || RegionCtxt::Free(name));
|
self.next_nll_region_var(origin, || RegionCtxt::Free(name))
|
||||||
|
|
||||||
reg_var
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -797,7 +783,7 @@ impl<'cx, 'tcx> InferCtxtExt<'tcx> for BorrowckInferCtxt<'cx, 'tcx> {
|
||||||
let region_vid = {
|
let region_vid = {
|
||||||
let name = match br.kind.get_name() {
|
let name = match br.kind.get_name() {
|
||||||
Some(name) => name,
|
Some(name) => name,
|
||||||
_ => Symbol::intern("anon"),
|
_ => sym::anon,
|
||||||
};
|
};
|
||||||
|
|
||||||
self.next_nll_region_var(origin, || RegionCtxt::Bound(BoundRegionInfo::Name(name)))
|
self.next_nll_region_var(origin, || RegionCtxt::Bound(BoundRegionInfo::Name(name)))
|
||||||
|
@ -829,11 +815,7 @@ impl<'cx, 'tcx> InferCtxtExt<'tcx> for BorrowckInferCtxt<'cx, 'tcx> {
|
||||||
debug!(?r);
|
debug!(?r);
|
||||||
if !indices.indices.contains_key(&r) {
|
if !indices.indices.contains_key(&r) {
|
||||||
let region_vid = {
|
let region_vid = {
|
||||||
let name = match r.get_name() {
|
let name = r.get_name_or_anon();
|
||||||
Some(name) => name,
|
|
||||||
_ => Symbol::intern("anon"),
|
|
||||||
};
|
|
||||||
|
|
||||||
self.next_nll_region_var(FR, || {
|
self.next_nll_region_var(FR, || {
|
||||||
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
||||||
})
|
})
|
||||||
|
@ -855,11 +837,7 @@ impl<'cx, 'tcx> InferCtxtExt<'tcx> for BorrowckInferCtxt<'cx, 'tcx> {
|
||||||
debug!(?r);
|
debug!(?r);
|
||||||
if !indices.indices.contains_key(&r) {
|
if !indices.indices.contains_key(&r) {
|
||||||
let region_vid = {
|
let region_vid = {
|
||||||
let name = match r.get_name() {
|
let name = r.get_name_or_anon();
|
||||||
Some(name) => name,
|
|
||||||
_ => Symbol::intern("anon"),
|
|
||||||
};
|
|
||||||
|
|
||||||
self.next_nll_region_var(FR, || {
|
self.next_nll_region_var(FR, || {
|
||||||
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
RegionCtxt::LateBound(BoundRegionInfo::Name(name))
|
||||||
})
|
})
|
||||||
|
|
|
@ -1621,19 +1621,24 @@ impl<'tcx> Region<'tcx> {
|
||||||
|
|
||||||
pub fn get_name(self) -> Option<Symbol> {
|
pub fn get_name(self) -> Option<Symbol> {
|
||||||
if self.has_name() {
|
if self.has_name() {
|
||||||
let name = match *self {
|
match *self {
|
||||||
ty::ReEarlyBound(ebr) => Some(ebr.name),
|
ty::ReEarlyBound(ebr) => Some(ebr.name),
|
||||||
ty::ReLateBound(_, br) => br.kind.get_name(),
|
ty::ReLateBound(_, br) => br.kind.get_name(),
|
||||||
ty::ReFree(fr) => fr.bound_region.get_name(),
|
ty::ReFree(fr) => fr.bound_region.get_name(),
|
||||||
ty::ReStatic => Some(kw::StaticLifetime),
|
ty::ReStatic => Some(kw::StaticLifetime),
|
||||||
ty::RePlaceholder(placeholder) => placeholder.bound.kind.get_name(),
|
ty::RePlaceholder(placeholder) => placeholder.bound.kind.get_name(),
|
||||||
_ => None,
|
_ => None,
|
||||||
};
|
}
|
||||||
|
} else {
|
||||||
return name;
|
None
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
None
|
pub fn get_name_or_anon(self) -> Symbol {
|
||||||
|
match self.get_name() {
|
||||||
|
Some(name) => name,
|
||||||
|
None => sym::anon,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Is this region named by the user?
|
/// Is this region named by the user?
|
||||||
|
|
|
@ -357,6 +357,7 @@ symbols! {
|
||||||
always,
|
always,
|
||||||
and,
|
and,
|
||||||
and_then,
|
and_then,
|
||||||
|
anon,
|
||||||
anonymous_lifetime_in_impl_trait,
|
anonymous_lifetime_in_impl_trait,
|
||||||
any,
|
any,
|
||||||
append_const_msg,
|
append_const_msg,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue