From aecce2ba6eba5fbadb2e5aaf9eb29a30acea086d Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 15 Mar 2016 08:23:23 -0400 Subject: [PATCH] add flag for ReSkolemized --- src/librustc/ty/flags.rs | 6 +++++- src/librustc/ty/mod.rs | 13 +++++++------ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/librustc/ty/flags.rs b/src/librustc/ty/flags.rs index a1da3017fcd..b12581b3400 100644 --- a/src/librustc/ty/flags.rs +++ b/src/librustc/ty/flags.rs @@ -176,9 +176,13 @@ impl FlagComputation { fn add_region(&mut self, r: ty::Region) { match r { - ty::ReVar(..) | + ty::ReVar(..) => { + self.add_flags(TypeFlags::HAS_RE_INFER); + self.add_flags(TypeFlags::KEEP_IN_LOCAL_TCX); + } ty::ReSkolemized(..) => { self.add_flags(TypeFlags::HAS_RE_INFER); + self.add_flags(TypeFlags::HAS_RE_SKOL); self.add_flags(TypeFlags::KEEP_IN_LOCAL_TCX); } ty::ReLateBound(debruijn, _) => { self.add_depth(debruijn.depth); } diff --git a/src/librustc/ty/mod.rs b/src/librustc/ty/mod.rs index 24f0671ce61..b37fad0ba30 100644 --- a/src/librustc/ty/mod.rs +++ b/src/librustc/ty/mod.rs @@ -514,15 +514,16 @@ bitflags! { const HAS_SELF = 1 << 1, const HAS_TY_INFER = 1 << 2, const HAS_RE_INFER = 1 << 3, - const HAS_RE_EARLY_BOUND = 1 << 4, - const HAS_FREE_REGIONS = 1 << 5, - const HAS_TY_ERR = 1 << 6, - const HAS_PROJECTION = 1 << 7, - const HAS_TY_CLOSURE = 1 << 8, + const HAS_RE_SKOL = 1 << 4, + const HAS_RE_EARLY_BOUND = 1 << 5, + const HAS_FREE_REGIONS = 1 << 6, + const HAS_TY_ERR = 1 << 7, + const HAS_PROJECTION = 1 << 8, + const HAS_TY_CLOSURE = 1 << 9, // true if there are "names" of types and regions and so forth // that are local to a particular fn - const HAS_LOCAL_NAMES = 1 << 9, + const HAS_LOCAL_NAMES = 1 << 10, // Present if the type belongs in a local type context. // Only set for TyInfer other than Fresh.