1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
//@ check-pass
#![recursion_limit = "1024"]
// Really high recursion limit ^
// Test that ensures we're filtering projections by def id before matching
// them in `match_projection_projections`.
use std::ops::{Add, Sub};
pub trait Scalar {}
pub trait VectorCommon: Sized {
type T: Scalar;
}
pub trait VectorOpsByValue<Rhs = Self, Output = Self>:
VectorCommon + Add<Rhs, Output = Output> + Sub<Rhs, Output = Output>
{
}
pub trait VectorView<'a>:
VectorOpsByValue<Self, Self::Owned> + VectorOpsByValue<Self::Owned, Self::Owned>
{
type Owned;
}
pub trait Vector: VectorOpsByValue<Self> + for<'a> VectorOpsByValue<Self::View<'a>> {
type View<'a>: VectorView<'a, T = Self::T, Owned = Self>
where
Self: 'a;
}
pub trait MatrixCommon {
type V: Vector;
}
fn main() {}
|