Rollup merge of #48610 - ishitatsuyuki:ishitatsuyuki-patch-1, r=nikomatsakis
Add regression test for #48551 [Issue link](https://github.com/rust-lang/rust/issues/48551)
This commit is contained in:
commit
cf0638cfde
43
src/test/run-pass/issue-48551.rs
Normal file
43
src/test/run-pass/issue-48551.rs
Normal file
@ -0,0 +1,43 @@
|
||||
// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// Regression test for #48551. Covers a case where duplicate candidates
|
||||
// arose during associated type projection.
|
||||
|
||||
use std::ops::{Mul, MulAssign};
|
||||
|
||||
pub trait ClosedMul<Right>: Sized + Mul<Right, Output = Self> + MulAssign<Right> {}
|
||||
impl<T, Right> ClosedMul<Right> for T
|
||||
where
|
||||
T: Mul<Right, Output = T> + MulAssign<Right>,
|
||||
{
|
||||
}
|
||||
|
||||
pub trait InnerSpace: ClosedMul<<Self as InnerSpace>::Real> {
|
||||
type Real;
|
||||
}
|
||||
|
||||
pub trait FiniteDimVectorSpace: ClosedMul<<Self as FiniteDimVectorSpace>::Field> {
|
||||
type Field;
|
||||
}
|
||||
|
||||
pub trait FiniteDimInnerSpace
|
||||
: InnerSpace + FiniteDimVectorSpace<Field = <Self as InnerSpace>::Real> {
|
||||
}
|
||||
|
||||
pub trait EuclideanSpace: ClosedMul<<Self as EuclideanSpace>::Real> {
|
||||
type Coordinates: FiniteDimInnerSpace<Real = Self::Real>
|
||||
+ Mul<Self::Real, Output = Self::Coordinates>
|
||||
+ MulAssign<Self::Real>;
|
||||
|
||||
type Real;
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
x
Reference in New Issue
Block a user