about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki Okushi <jtitor@2k36.org>2022-12-22 20:29:20 +0900
committerYuki Okushi <jtitor@2k36.org>2022-12-22 20:29:20 +0900
commit34ae96868fcbdb2d2fa4a0b269fab94279c13e6b (patch)
tree6906665d75fab7b6075838018c2aac946570be2b
parent75f4ee8b4427278d7a35b7025ea72e02c55ae8f1 (diff)
downloadrust-34ae96868fcbdb2d2fa4a0b269fab94279c13e6b.tar.gz
rust-34ae96868fcbdb2d2fa4a0b269fab94279c13e6b.zip
Add regression test for #94293
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
-rw-r--r--src/test/ui/const-generics/generic_const_exprs/issue-94293.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/generic_const_exprs/issue-94293.rs b/src/test/ui/const-generics/generic_const_exprs/issue-94293.rs
new file mode 100644
index 00000000000..713c5d89a93
--- /dev/null
+++ b/src/test/ui/const-generics/generic_const_exprs/issue-94293.rs
@@ -0,0 +1,31 @@
+// check-pass
+
+#![feature(generic_const_exprs)]
+#![allow(incomplete_features)]
+#![deny(const_evaluatable_unchecked)]
+
+pub struct If<const CONDITION: bool>;
+pub trait True {}
+impl True for If<true> {}
+
+pub struct FixedI8<const FRAC: u32> {
+    pub bits: i8,
+}
+
+impl<const FRAC_LHS: u32, const FRAC_RHS: u32> PartialEq<FixedI8<FRAC_RHS>> for FixedI8<FRAC_LHS>
+where
+    If<{ FRAC_RHS <= 8 }>: True,
+{
+    fn eq(&self, _rhs: &FixedI8<FRAC_RHS>) -> bool {
+        unimplemented!()
+    }
+}
+
+impl<const FRAC: u32> PartialEq<i8> for FixedI8<FRAC> {
+    fn eq(&self, rhs: &i8) -> bool {
+        let rhs_as_fixed = FixedI8::<0> { bits: *rhs };
+        PartialEq::eq(self, &rhs_as_fixed)
+    }
+}
+
+fn main() {}