error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:5:28
   |
LL | impl<T> S0<T> {
   |      - expected this type parameter
LL |     const C: S0<u8> = Self(0);
   |                       ---- ^ expected type parameter `T`, found integer
   |                       |
   |                       arguments to this function are incorrect
   |
   = note: expected type parameter `T`
                        found type `{integer}`
note: tuple struct defined here
  --> $DIR/issue-69306.rs:3:8
   |
LL | struct S0<T>(T);
   |        ^^

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:5:23
   |
LL | impl<T> S0<T> {
   |      - found this type parameter
LL |     const C: S0<u8> = Self(0);
   |                       ^^^^^^^ expected `S0<u8>`, found `S0<T>`
   |
   = note: expected struct `S0<u8>`
              found struct `S0<T>`

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:10:14
   |
LL | impl<T> S0<T> {
   |      - expected this type parameter
...
LL |         Self(0);
   |         ---- ^ expected type parameter `T`, found integer
   |         |
   |         arguments to this function are incorrect
   |
   = note: expected type parameter `T`
                        found type `{integer}`
note: tuple struct defined here
  --> $DIR/issue-69306.rs:3:8
   |
LL | struct S0<T>(T);
   |        ^^

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:27:14
   |
LL | impl<T> Foo<T> for <S0<T> as Fun>::Out {
   |      - expected this type parameter
LL |     fn foo() {
LL |         Self(0);
   |         ---- ^ expected type parameter `T`, found integer
   |         |
   |         arguments to this function are incorrect
   |
   = note: expected type parameter `T`
                        found type `{integer}`
note: tuple struct defined here
  --> $DIR/issue-69306.rs:3:8
   |
LL | struct S0<T>(T);
   |        ^^

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:33:32
   |
LL | impl<T> S1<T, u8> {
   |      - expected this type parameter
LL |     const C: S1<u8, u8> = Self(0, 1);
   |                           ---- ^ expected type parameter `T`, found integer
   |                           |
   |                           arguments to this function are incorrect
   |
   = note: expected type parameter `T`
                        found type `{integer}`
note: tuple struct defined here
  --> $DIR/issue-69306.rs:31:8
   |
LL | struct S1<T, U>(T, U);
   |        ^^

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:33:27
   |
LL | impl<T> S1<T, u8> {
   |      - found this type parameter
LL |     const C: S1<u8, u8> = Self(0, 1);
   |                           ^^^^^^^^^^ expected `S1<u8, u8>`, found `S1<T, u8>`
   |
   = note: expected struct `S1<u8, _>`
              found struct `S1<T, _>`

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:41:14
   |
LL | impl<T> S2<T> {
   |      - expected type parameter
LL |     fn map<U>(x: U) -> S2<U> {
   |            - found type parameter
LL |         Self(x)
   |         ---- ^ expected type parameter `T`, found type parameter `U`
   |         |
   |         arguments to this function are incorrect
   |
   = note: expected type parameter `T`
              found type parameter `U`
   = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
   = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters
note: tuple struct defined here
  --> $DIR/issue-69306.rs:38:8
   |
LL | struct S2<T>(T);
   |        ^^

error[E0308]: mismatched types
  --> $DIR/issue-69306.rs:41:9
   |
LL | impl<T> S2<T> {
   |      - found type parameter
LL |     fn map<U>(x: U) -> S2<U> {
   |            -           ----- expected `S2<U>` because of return type
   |            |
   |            expected type parameter
LL |         Self(x)
   |         ^^^^^^^ expected `S2<U>`, found `S2<T>`
   |
   = note: expected struct `S2<U>`
              found struct `S2<T>`
   = note: a type parameter was expected, but a different one was found; you might be missing a type parameter or trait bound
   = note: for more information, visit https://doc.rust-lang.org/book/ch10-02-traits.html#traits-as-parameters

error: aborting due to 8 previous errors

For more information about this error, try `rustc --explain E0308`.
