rust/tests/ui/issues/issue-44255.rs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

30 lines
444 B
Rust
Raw Normal View History

2019-02-25 23:55:16 +00:00
// run-pass
use std::marker::PhantomData;
fn main() {
let _arr = [1; <Multiply<Five, Five>>::VAL];
}
trait TypeVal<T> {
const VAL: T;
}
struct Five;
impl TypeVal<usize> for Five {
const VAL: usize = 5;
}
struct Multiply<N, M> {
_n: PhantomData<N>,
_m: PhantomData<M>,
}
impl<N, M> TypeVal<usize> for Multiply<N, M>
where N: TypeVal<usize>,
M: TypeVal<usize>,
{
const VAL: usize = N::VAL * M::VAL;
}