mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-25 08:13:41 +00:00
Add regression test for RPITITs
This commit is contained in:
parent
3aec8d4227
commit
6d80879ab9
@ -0,0 +1,16 @@
|
||||
error[E0277]: the trait bound `impl Foo<u8>: Foo<char>` is not satisfied
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:13:34
|
||||
|
|
||||
LL | fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
| ^^^^^^^^^^^^ the trait `Foo<char>` is not implemented for `impl Foo<u8>`
|
||||
|
|
||||
= help: the trait `Foo<char>` is implemented for `Bar`
|
||||
note: required by a bound in `Foo::foo::{opaque#0}`
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:7:30
|
||||
|
|
||||
LL | fn foo<F2>(self) -> impl Foo<T>;
|
||||
| ^^^^^^ required by this bound in `Foo::foo::{opaque#0}`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
@ -0,0 +1,16 @@
|
||||
error[E0277]: the trait bound `impl Foo<u8>: Foo<char>` is not satisfied
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:13:34
|
||||
|
|
||||
LL | fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
| ^^^^^^^^^^^^ the trait `Foo<char>` is not implemented for `impl Foo<u8>`
|
||||
|
|
||||
= help: the trait `Foo<char>` is implemented for `Bar`
|
||||
note: required by a bound in `Foo::{opaque#0}`
|
||||
--> $DIR/return-dont-satisfy-bounds.rs:7:30
|
||||
|
|
||||
LL | fn foo<F2>(self) -> impl Foo<T>;
|
||||
| ^^^^^^ required by this bound in `Foo::{opaque#0}`
|
||||
|
||||
error: aborting due to previous error
|
||||
|
||||
For more information about this error, try `rustc --explain E0277`.
|
19
tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.rs
Normal file
19
tests/ui/impl-trait/in-trait/return-dont-satisfy-bounds.rs
Normal file
@ -0,0 +1,19 @@
|
||||
// [next] compile-flags: -Zlower-impl-trait-in-trait-to-assoc-ty
|
||||
// revisions: current next
|
||||
|
||||
#![feature(return_position_impl_trait_in_trait)]
|
||||
|
||||
trait Foo<T> {
|
||||
fn foo<F2>(self) -> impl Foo<T>;
|
||||
}
|
||||
|
||||
struct Bar;
|
||||
|
||||
impl Foo<char> for Bar {
|
||||
fn foo<F2: Foo<u8>>(self) -> impl Foo<u8> {
|
||||
//~^ ERROR: the trait bound `impl Foo<u8>: Foo<char>` is not satisfied [E0277]
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
Reference in New Issue
Block a user