]> git.lizzy.rs Git - rust.git/blobdiff - src/librustc/ty/_match.rs
Rollup merge of #61420 - felixrabe:patch-2, r=dtolnay
[rust.git] / src / librustc / ty / _match.rs
index fdc695610141009539e369452e7113a551ab8148..8640216b071ae4783cd27d01c64a2579c28fa532 100644 (file)
@@ -1,5 +1,5 @@
 use crate::ty::{self, Ty, TyCtxt, InferConst};
-use crate::ty::error::{TypeError, ConstError};
+use crate::ty::error::TypeError;
 use crate::ty::relate::{self, Relate, TypeRelation, RelateResult};
 use crate::mir::interpret::ConstValue;
 
@@ -81,28 +81,24 @@ fn tys(&mut self, a: Ty<'tcx>, b: Ty<'tcx>) -> RelateResult<'tcx, Ty<'tcx>> {
 
     fn consts(
         &mut self,
-        a: &'tcx ty::LazyConst<'tcx>,
-        b: &'tcx ty::LazyConst<'tcx>,
-    ) -> RelateResult<'tcx, &'tcx ty::LazyConst<'tcx>> {
+        a: &'tcx ty::Const<'tcx>,
+        b: &'tcx ty::Const<'tcx>,
+    ) -> RelateResult<'tcx, &'tcx ty::Const<'tcx>> {
         debug!("{}.consts({:?}, {:?})", self.tag(), a, b);
         if a == b {
             return Ok(a);
         }
 
-        if let (&ty::LazyConst::Evaluated(a_eval), &ty::LazyConst::Evaluated(b_eval)) = (a, b) {
-            match (a_eval.val, b_eval.val) {
-                (_, ConstValue::Infer(InferConst::Fresh(_))) => {
-                    return Ok(a);
-                }
-
-                (ConstValue::Infer(_), _) | (_, ConstValue::Infer(_)) => {
-                    return Err(TypeError::ConstError(
-                        ConstError::Mismatch(relate::expected_found(self, &a, &b))
-                    ));
-                }
+        match (a.val, b.val) {
+            (_, ConstValue::Infer(InferConst::Fresh(_))) => {
+                return Ok(a);
+            }
 
-                _ => {}
+            (ConstValue::Infer(_), _) | (_, ConstValue::Infer(_)) => {
+                return Err(TypeError::ConstMismatch(relate::expected_found(self, &a, &b)));
             }
+
+            _ => {}
         }
 
         relate::super_relate_consts(self, a, b)