about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2022-12-22 19:36:15 +0100
committerGitHub <noreply@github.com>2022-12-22 19:36:15 +0100
commitee43f34700304e73d4e58fc643186717f1851659 (patch)
tree52eca2d2eb18a7db5b86c35b30ba8556f3190770
parent9cd140e7a1be7147cb144df0a40c13507ae68d35 (diff)
parent34ae96868fcbdb2d2fa4a0b269fab94279c13e6b (diff)
Rollup merge of #106037 - JohnTitor:issue-94293, r=lcnr
Add regression test for #94293

Closes #94293
r? ```@lcnr```

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() {}