]>
git.proxmox.com Git - rustc.git/blob - tests/ui/const-generics/generic_const_exprs/abstract-const-as-cast-4.rs
2 #![feature(generic_const_exprs)]
3 #![allow(incomplete_features)]
6 pub struct EvaluatableU128
<const N
: u128
>;
8 struct HasCastInTraitImpl
<const N
: usize, const M
: u128
>;
9 impl<const O
: usize> Trait
for HasCastInTraitImpl
<O
, { O as u128 }
> {}
11 pub fn use_trait_impl
<const N
: usize>() where EvaluatableU128
<{N as u128}
>:, {
12 fn assert_impl
<T
: Trait
>() {}
14 assert_impl
::<HasCastInTraitImpl
<N
, { N as u128 }
>>();
15 assert_impl
::<HasCastInTraitImpl
<N
, { N as _ }
>>();
16 assert_impl
::<HasCastInTraitImpl
<12, { 12 as u128 }
>>();
17 assert_impl
::<HasCastInTraitImpl
<13, 13>>();
19 pub fn use_trait_impl_2
<const N
: usize>() where EvaluatableU128
<{N as _}
>:, {
20 fn assert_impl
<T
: Trait
>() {}
22 assert_impl
::<HasCastInTraitImpl
<N
, { N as u128 }
>>();
23 assert_impl
::<HasCastInTraitImpl
<N
, { N as _ }
>>();
24 assert_impl
::<HasCastInTraitImpl
<12, { 12 as u128 }
>>();
25 assert_impl
::<HasCastInTraitImpl
<13, 13>>();