2019-07-26 16:54:25 -05:00
|
|
|
// run-pass
|
|
|
|
|
2018-09-14 05:20:28 -05:00
|
|
|
#![allow(dead_code)]
|
2017-12-23 07:29:01 -06:00
|
|
|
trait Trait<T> {}
|
|
|
|
struct Foo<U, V=i32>(U, V) where U: Trait<V>;
|
|
|
|
|
2018-01-22 09:36:51 -06:00
|
|
|
trait Marker {}
|
2018-01-21 08:09:06 -06:00
|
|
|
struct TwoParams<T, U>(T, U);
|
2018-01-22 09:36:51 -06:00
|
|
|
impl Marker for TwoParams<i32, i32> {}
|
2018-02-09 04:42:11 -06:00
|
|
|
|
|
|
|
// Clauses with more than 1 param are not checked.
|
2018-01-22 09:36:51 -06:00
|
|
|
struct IndividuallyBogus<T = i32, U = i32>(TwoParams<T, U>) where TwoParams<T, U>: Marker;
|
2018-02-09 04:42:11 -06:00
|
|
|
struct BogusTogether<T = u32, U = i32>(T, U) where TwoParams<T, U>: Marker;
|
2018-01-21 08:09:06 -06:00
|
|
|
// Clauses with non-defaulted params are not checked.
|
2018-01-22 09:36:51 -06:00
|
|
|
struct NonDefaultedInClause<T, U = i32>(TwoParams<T, U>) where TwoParams<T, U>: Marker;
|
|
|
|
struct DefaultedLhs<U, V=i32>(U, V) where V: Trait<U>;
|
2018-02-09 04:42:11 -06:00
|
|
|
// Dependent defaults are not checked.
|
|
|
|
struct Dependent<T, U = T>(T, U) where U: Copy;
|
|
|
|
trait SelfBound<T: Copy=Self> {}
|
2018-02-14 16:55:37 -06:00
|
|
|
// Not even for well-formedness.
|
|
|
|
struct WellFormedProjection<A, T=<A as Iterator>::Item>(A, T);
|
2018-01-22 09:36:51 -06:00
|
|
|
|
2018-04-05 13:21:56 -05:00
|
|
|
// Issue #49344, predicates with lifetimes should not be checked.
|
|
|
|
trait Scope<'a> {}
|
|
|
|
struct Request<'a, S: Scope<'a> = i32>(S, &'a ());
|
|
|
|
|
2017-12-23 07:29:01 -06:00
|
|
|
fn main() {}
|