From cd2b0309cc948a54a7bdbc3050b0d7d6b0826f93 Mon Sep 17 00:00:00 2001
From: Jaic1 <506933131@qq.com>
Date: Tue, 13 Aug 2024 16:21:58 +0800
Subject: [PATCH] Special-case alias ty in `try_from_lit`

---
 compiler/rustc_middle/src/ty/consts.rs                        | 4 ++++
 .../{crashes => ui/const-generics/adt_const_params}/116308.rs | 4 +++-
 2 files changed, 7 insertions(+), 1 deletion(-)
 rename tests/{crashes => ui/const-generics/adt_const_params}/116308.rs (81%)

diff --git a/compiler/rustc_middle/src/ty/consts.rs b/compiler/rustc_middle/src/ty/consts.rs
index c380019e63f47..e373292741b90 100644
--- a/compiler/rustc_middle/src/ty/consts.rs
+++ b/compiler/rustc_middle/src/ty/consts.rs
@@ -305,6 +305,10 @@ impl<'tcx> Const<'tcx> {
             // mir.
             match tcx.at(expr.span).lit_to_const(lit_input) {
                 Ok(c) => return Some(c),
+                Err(_) if lit_input.ty.has_aliases() => {
+                    // allow the `ty` to be an alias type, though we cannot handle it here
+                    return None;
+                }
                 Err(e) => {
                     tcx.dcx().span_delayed_bug(
                         expr.span,
diff --git a/tests/crashes/116308.rs b/tests/ui/const-generics/adt_const_params/116308.rs
similarity index 81%
rename from tests/crashes/116308.rs
rename to tests/ui/const-generics/adt_const_params/116308.rs
index cb96c80d79bdc..9ea7022e29c8a 100644
--- a/tests/crashes/116308.rs
+++ b/tests/ui/const-generics/adt_const_params/116308.rs
@@ -1,6 +1,8 @@
-//@ known-bug: #116308
+//@ check-pass
 #![feature(adt_const_params)]
 
+// Regression test for #116308
+
 pub trait Identity {
     type Identity;
 }