Add new_empty_tuple
diff --git a/crates/hir-ty/src/mir/eval.rs b/crates/hir-ty/src/mir/eval.rs
index 9deaa4a..c60ace8 100644
--- a/crates/hir-ty/src/mir/eval.rs
+++ b/crates/hir-ty/src/mir/eval.rs
@@ -25,7 +25,7 @@
     ieee::{Half as f16, Quad as f128},
 };
 use rustc_hash::{FxHashMap, FxHashSet};
-use rustc_type_ir::inherent::{AdtDef, IntoKind, SliceLike, Ty as _};
+use rustc_type_ir::inherent::{AdtDef, IntoKind, SliceLike};
 use span::FileId;
 use stdx::never;
 use syntax::{SyntaxNodePtr, TextRange};
@@ -1815,7 +1815,7 @@
             let i = self.const_eval_discriminant(it)?;
             return Ok((
                 16,
-                self.layout(crate::next_solver::Ty::new_tup(interner, &[]))?,
+                self.layout(crate::next_solver::Ty::new_empty_tuple(interner))?,
                 Some((0, 16, i)),
             ));
         }
diff --git a/crates/hir-ty/src/next_solver/ty.rs b/crates/hir-ty/src/next_solver/ty.rs
index 0c0fe68..5ffae98 100644
--- a/crates/hir-ty/src/next_solver/ty.rs
+++ b/crates/hir-ty/src/next_solver/ty.rs
@@ -9,6 +9,7 @@
     WithCachedTypeInfo,
     inherent::{
         AdtDef, BoundVarLike, GenericArgs as _, IntoKind, ParamLike, PlaceholderLike, SliceLike,
+        Ty as _,
     },
     relate::Relate,
     solve::SizedTraitKind,
@@ -107,6 +108,10 @@
         Ty::new_infer(interner, InferTy::FreshFloatTy(n))
     }
 
+    pub fn new_empty_tuple(interner: DbInterner<'db>) -> Self {
+        Ty::new_tup(interner, &[])
+    }
+
     /// Returns the `Size` for primitive types (bool, uint, int, char, float).
     pub fn primitive_size(self, interner: DbInterner<'db>) -> Size {
         match self.kind() {