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