From 969c145f96045a156a5776a8f4407e87df5a07b6 Mon Sep 17 00:00:00 2001 From: Bastian Kauschke Date: Mon, 6 Apr 2020 21:32:08 +0200 Subject: [PATCH] don't set `HAS_INFER` for fresh types --- src/doc/rustc-guide | 1 + src/librustc_middle/ty/flags.rs | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 160000 src/doc/rustc-guide diff --git a/src/doc/rustc-guide b/src/doc/rustc-guide new file mode 160000 index 0000000000000..5bd60bc51efae --- /dev/null +++ b/src/doc/rustc-guide @@ -0,0 +1 @@ +Subproject commit 5bd60bc51efaec04e69e2e18b59678e2af066433 diff --git a/src/librustc_middle/ty/flags.rs b/src/librustc_middle/ty/flags.rs index 7c3c96348b558..d97adbe0f091d 100644 --- a/src/librustc_middle/ty/flags.rs +++ b/src/librustc_middle/ty/flags.rs @@ -109,12 +109,12 @@ impl FlagComputation { } &ty::Infer(infer) => { - self.add_flags(TypeFlags::HAS_TY_INFER); self.add_flags(TypeFlags::STILL_FURTHER_SPECIALIZABLE); match infer { ty::FreshTy(_) | ty::FreshIntTy(_) | ty::FreshFloatTy(_) => {} ty::TyVar(_) | ty::IntVar(_) | ty::FloatVar(_) => { + self.add_flags(TypeFlags::HAS_TY_INFER); self.add_flags(TypeFlags::KEEP_IN_LOCAL_TCX) } } @@ -221,11 +221,13 @@ impl FlagComputation { self.add_flags(TypeFlags::HAS_CT_PROJECTION); } ty::ConstKind::Infer(infer) => { - self.add_flags(TypeFlags::HAS_CT_INFER); self.add_flags(TypeFlags::STILL_FURTHER_SPECIALIZABLE); match infer { InferConst::Fresh(_) => {} - InferConst::Var(_) => self.add_flags(TypeFlags::KEEP_IN_LOCAL_TCX), + InferConst::Var(_) => { + self.add_flags(TypeFlags::HAS_CT_INFER); + self.add_flags(TypeFlags::KEEP_IN_LOCAL_TCX) + } } } ty::ConstKind::Bound(debruijn, _) => {