warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:8:14
   |
LL | type SVec<T: Send + Send> = Vec<T>;
   |              ^^^^   ^^^^
   |
   = note: `#[warn(type_alias_bounds)]` on by default
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type SVec<T> = Vec<T>;
   |     --    --

warning: where clauses are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:10:21
   |
LL | type S2Vec<T> where T: Send = Vec<T>;
   |                     ^^^^^^^
   |
help: the clause will not be checked when the type alias is used, and should be removed
   |
LL | type S2Vec<T>  = Vec<T>;
   |              --

warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:12:19
   |
LL | type VVec<'b, 'a: 'b + 'b> = (&'b u32, Vec<&'a i32>);
   |                   ^^   ^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type VVec<'b, 'a> = (&'b u32, Vec<&'a i32>);
   |            --  --

warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:14:18
   |
LL | type WVec<'b, T: 'b + 'b> = (&'b u32, Vec<T>);
   |                  ^^   ^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type WVec<'b, T> = (&'b u32, Vec<T>);
   |           --  --

warning: where clauses are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:16:25
   |
LL | type W2Vec<'b, T> where T: 'b, T: 'b = (&'b u32, Vec<T>);
   |                         ^^^^^  ^^^^^
   |
help: the clause will not be checked when the type alias is used, and should be removed
   |
LL | type W2Vec<'b, T>  = (&'b u32, Vec<T>);
   |                  --

warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:47:12
   |
LL | type T1<U: Bound> = U::Assoc;
   |            ^^^^^
   |
help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
  --> $DIR/type-alias-bounds.rs:47:21
   |
LL | type T1<U: Bound> = U::Assoc;
   |                     ^^^^^^^^
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type T1<U> = U::Assoc;
   |         --

warning: where clauses are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:48:18
   |
LL | type T2<U> where U: Bound = U::Assoc;
   |                  ^^^^^^^^
   |
help: use fully disambiguated paths (i.e., `<T as Trait>::Assoc`) to refer to associated types in type aliases
  --> $DIR/type-alias-bounds.rs:48:29
   |
LL | type T2<U> where U: Bound = U::Assoc;
   |                             ^^^^^^^^
help: the clause will not be checked when the type alias is used, and should be removed
   |
LL | type T2<U>  = U::Assoc;
   |           --

warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:56:12
   |
LL | type T5<U: Bound> = <U as Bound>::Assoc;
   |            ^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type T5<U> = <U as Bound>::Assoc;
   |         --

warning: bounds on generic parameters are not enforced in type aliases
  --> $DIR/type-alias-bounds.rs:57:12
   |
LL | type T6<U: Bound> = ::std::vec::Vec<U>;
   |            ^^^^^
   |
help: the bound will not be checked when the type alias is used, and should be removed
   |
LL | type T6<U> = ::std::vec::Vec<U>;
   |         --

