18 lines
752 B
Rust
18 lines
752 B
Rust
|
trait Mul<T> {
|
||
|
type Output;
|
||
|
}
|
||
|
trait Matrix: Mul<<Self as Matrix>::Row, Output = ()> {
|
||
|
type Row;
|
||
|
type Transpose: Matrix<Row = Self::Row>;
|
||
|
}
|
||
|
fn is_mul<S, T: Mul<S, Output = ()>>() {}
|
||
|
fn f<T: Matrix>() {
|
||
|
is_mul::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<
|
||
|
f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<
|
||
|
f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<
|
||
|
f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::
|
||
|
<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<f::<>();
|
||
|
//~^ ERROR expected one of `!`, `+`, `,`, `::`, or `>`, found `(`
|
||
|
}
|
||
|
fn main() {}
|