Remove HAS_NORMALIZABLE_PROJECTION
This commit is contained in:
parent
6b152f83c7
commit
165e460c92
2 changed files with 8 additions and 17 deletions
|
|
@ -1,5 +1,5 @@
|
|||
use crate::ty::subst::{SubstsRef, UnpackedKind};
|
||||
use crate::ty::{self, Ty, TypeFlags, TypeFoldable, InferConst};
|
||||
use crate::ty::{self, Ty, TypeFlags, InferConst};
|
||||
use crate::mir::interpret::ConstValue;
|
||||
|
||||
#[derive(Debug)]
|
||||
|
|
@ -139,11 +139,6 @@ impl FlagComputation {
|
|||
}
|
||||
|
||||
&ty::Projection(ref data) => {
|
||||
// currently we can't normalize projections that
|
||||
// include bound regions, so track those separately.
|
||||
if !data.has_escaping_bound_vars() {
|
||||
self.add_flags(TypeFlags::HAS_NORMALIZABLE_PROJECTION);
|
||||
}
|
||||
self.add_flags(TypeFlags::HAS_PROJECTION);
|
||||
self.add_projection_ty(data);
|
||||
}
|
||||
|
|
@ -239,7 +234,7 @@ impl FlagComputation {
|
|||
match c.val {
|
||||
ConstValue::Unevaluated(_, substs) => {
|
||||
self.add_substs(substs);
|
||||
self.add_flags(TypeFlags::HAS_NORMALIZABLE_PROJECTION | TypeFlags::HAS_PROJECTION);
|
||||
self.add_flags(TypeFlags::HAS_PROJECTION);
|
||||
},
|
||||
ConstValue::Infer(infer) => {
|
||||
self.add_flags(TypeFlags::HAS_FREE_LOCAL_NAMES | TypeFlags::HAS_CT_INFER);
|
||||
|
|
|
|||
|
|
@ -441,20 +441,16 @@ bitflags! {
|
|||
|
||||
/// Present if the type belongs in a local type context.
|
||||
/// Only set for Infer other than Fresh.
|
||||
const KEEP_IN_LOCAL_TCX = 1 << 11;
|
||||
|
||||
// Is there a projection that does not involve a bound region?
|
||||
// Currently we can't normalize projections w/ bound regions.
|
||||
const HAS_NORMALIZABLE_PROJECTION = 1 << 12;
|
||||
const KEEP_IN_LOCAL_TCX = 1 << 10;
|
||||
|
||||
/// Does this have any `ReLateBound` regions? Used to check
|
||||
/// if a global bound is safe to evaluate.
|
||||
const HAS_RE_LATE_BOUND = 1 << 13;
|
||||
const HAS_RE_LATE_BOUND = 1 << 11;
|
||||
|
||||
const HAS_TY_PLACEHOLDER = 1 << 14;
|
||||
const HAS_TY_PLACEHOLDER = 1 << 12;
|
||||
|
||||
const HAS_CT_INFER = 1 << 15;
|
||||
const HAS_CT_PLACEHOLDER = 1 << 16;
|
||||
const HAS_CT_INFER = 1 << 13;
|
||||
const HAS_CT_PLACEHOLDER = 1 << 14;
|
||||
|
||||
const NEEDS_SUBST = TypeFlags::HAS_PARAMS.bits |
|
||||
TypeFlags::HAS_RE_EARLY_BOUND.bits;
|
||||
|
|
@ -465,7 +461,6 @@ bitflags! {
|
|||
const NOMINAL_FLAGS = TypeFlags::HAS_PARAMS.bits |
|
||||
TypeFlags::HAS_TY_INFER.bits |
|
||||
TypeFlags::HAS_RE_INFER.bits |
|
||||
TypeFlags::HAS_CT_INFER.bits |
|
||||
TypeFlags::HAS_RE_PLACEHOLDER.bits |
|
||||
TypeFlags::HAS_RE_EARLY_BOUND.bits |
|
||||
TypeFlags::HAS_FREE_REGIONS.bits |
|
||||
|
|
@ -476,6 +471,7 @@ bitflags! {
|
|||
TypeFlags::KEEP_IN_LOCAL_TCX.bits |
|
||||
TypeFlags::HAS_RE_LATE_BOUND.bits |
|
||||
TypeFlags::HAS_TY_PLACEHOLDER.bits |
|
||||
TypeFlags::HAS_CT_INFER.bits |
|
||||
TypeFlags::HAS_CT_PLACEHOLDER.bits;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue