about summary refs log tree commit diff
diff options
context:
space:
mode:
authorBastian Kauschke <bastian_kauschke@hotmail.de>2020-04-06 21:32:08 +0200
committerBastian Kauschke <bastian_kauschke@hotmail.de>2020-04-08 23:33:36 +0200
commit969c145f96045a156a5776a8f4407e87df5a07b6 (patch)
treed41be49a9b37e8f85523c041f6f9df5a62674588
parent485c5fb6e1bf12cd11a8fac5ee94962e17cff74b (diff)
downloadrust-969c145f96045a156a5776a8f4407e87df5a07b6.tar.gz
rust-969c145f96045a156a5776a8f4407e87df5a07b6.zip
don't set `HAS_INFER` for fresh types
m---------src/doc/rustc-guide0
-rw-r--r--src/librustc_middle/ty/flags.rs8
2 files changed, 5 insertions, 3 deletions
diff --git a/src/doc/rustc-guide b/src/doc/rustc-guide
new file mode 160000
+Subproject 5bd60bc51efaec04e69e2e18b59678e2af06643
diff --git a/src/librustc_middle/ty/flags.rs b/src/librustc_middle/ty/flags.rs
index 7c3c96348b5..d97adbe0f09 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, _) => {