| error[E0308]: mismatched types | |
| --> $DIR/struct-path-self-type-mismatch.rs:7:23 | |
| | | |
| LL | Self { inner: 1.5f32 }; | |
| | ^^^^^^ expected `i32`, found `f32` | |
| error[E0308]: mismatched types | |
| --> $DIR/struct-path-self-type-mismatch.rs:15:20 | |
| | | |
| LL | impl<T> Foo<T> { | |
| | - expected type parameter | |
| LL | fn new<U>(u: U) -> Foo<U> { | |
| | - found type parameter | |
| ... | |
| LL | inner: u | |
| | ^ expected type parameter `T`, found type parameter `U` | |
| | | |
| = 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 | |
| error[E0308]: mismatched types | |
| --> $DIR/struct-path-self-type-mismatch.rs:13:9 | |
| | | |
| LL | impl<T> Foo<T> { | |
| | - ------ this is the type of the `Self` literal | |
| | | | |
| | found type parameter | |
| LL | fn new<U>(u: U) -> Foo<U> { | |
| | - ------ expected `Foo<U>` because of return type | |
| | | | |
| | expected type parameter | |
| LL | / Self { | |
| LL | | | |
| LL | | inner: u | |
| LL | | | |
| LL | | } | |
| | |_________^ expected `Foo<U>`, found `Foo<T>` | |
| | | |
| = note: expected struct `Foo<U>` | |
| found struct `Foo<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 | |
| help: use the type name directly | |
| | | |
| LL - Self { | |
| LL + Foo::<U> { | |
| | | |
| error: aborting due to 3 previous errors | |
| For more information about this error, try `rustc --explain E0308`. |