Bless a test
This commit is contained in:
parent
0f41d26f41
commit
268b556393
2 changed files with 40 additions and 15 deletions
|
@ -70,12 +70,16 @@ mod opaque {
|
|||
|
||||
pub fn opaque_arg(_: impl Trait) -> i32 { 0 }
|
||||
pub fn opaque_ret() -> impl Trait { unimplemented!() }
|
||||
//~^ warn: this function depends on never type fallback being `()`
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
}
|
||||
reuse to_reuse::opaque_arg;
|
||||
//~^ ERROR delegation with early bound generics is not supported yet
|
||||
|
||||
trait ToReuse {
|
||||
fn opaque_ret() -> impl Trait { unimplemented!() }
|
||||
//~^ warn: this function depends on never type fallback being `()`
|
||||
//~| warn: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
}
|
||||
|
||||
// FIXME: Inherited `impl Trait`s create query cycles when used inside trait impls.
|
||||
|
|
|
@ -107,7 +107,7 @@ LL | reuse Trait::foo2 { &self.0 }
|
|||
| ^^^^
|
||||
|
||||
error: delegation with early bound generics is not supported yet
|
||||
--> $DIR/not-supported.rs:74:21
|
||||
--> $DIR/not-supported.rs:76:21
|
||||
|
|
||||
LL | pub fn opaque_arg(_: impl Trait) -> i32 { 0 }
|
||||
| --------------------------------------- callee defined here
|
||||
|
@ -115,46 +115,67 @@ LL | pub fn opaque_arg(_: impl Trait) -> i32 { 0 }
|
|||
LL | reuse to_reuse::opaque_arg;
|
||||
| ^^^^^^^^^^
|
||||
|
||||
error[E0391]: cycle detected when computing type of `opaque::<impl at $DIR/not-supported.rs:82:5: 82:24>::{synthetic#0}`
|
||||
--> $DIR/not-supported.rs:83:25
|
||||
warning: this function depends on never type fallback being `()`
|
||||
--> $DIR/not-supported.rs:80:9
|
||||
|
|
||||
LL | fn opaque_ret() -> impl Trait { unimplemented!() }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the types explicitly
|
||||
= note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default
|
||||
|
||||
error[E0391]: cycle detected when computing type of `opaque::<impl at $DIR/not-supported.rs:86:5: 86:24>::{synthetic#0}`
|
||||
--> $DIR/not-supported.rs:87:25
|
||||
|
|
||||
LL | reuse to_reuse::opaque_ret;
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
note: ...which requires comparing an impl and trait method signature, inferring any hidden `impl Trait` types in the process...
|
||||
--> $DIR/not-supported.rs:83:25
|
||||
--> $DIR/not-supported.rs:87:25
|
||||
|
|
||||
LL | reuse to_reuse::opaque_ret;
|
||||
| ^^^^^^^^^^
|
||||
= note: ...which again requires computing type of `opaque::<impl at $DIR/not-supported.rs:82:5: 82:24>::{synthetic#0}`, completing the cycle
|
||||
note: cycle used when checking that `opaque::<impl at $DIR/not-supported.rs:82:5: 82:24>` is well-formed
|
||||
--> $DIR/not-supported.rs:82:5
|
||||
= note: ...which again requires computing type of `opaque::<impl at $DIR/not-supported.rs:86:5: 86:24>::{synthetic#0}`, completing the cycle
|
||||
note: cycle used when checking that `opaque::<impl at $DIR/not-supported.rs:86:5: 86:24>` is well-formed
|
||||
--> $DIR/not-supported.rs:86:5
|
||||
|
|
||||
LL | impl ToReuse for u8 {
|
||||
| ^^^^^^^^^^^^^^^^^^^
|
||||
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
|
||||
|
||||
error[E0391]: cycle detected when computing type of `opaque::<impl at $DIR/not-supported.rs:85:5: 85:25>::{synthetic#0}`
|
||||
--> $DIR/not-supported.rs:86:24
|
||||
warning: this function depends on never type fallback being `()`
|
||||
--> $DIR/not-supported.rs:72:9
|
||||
|
|
||||
LL | pub fn opaque_ret() -> impl Trait { unimplemented!() }
|
||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
|
||||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
|
||||
= note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
|
||||
= help: specify the types explicitly
|
||||
|
||||
error[E0391]: cycle detected when computing type of `opaque::<impl at $DIR/not-supported.rs:89:5: 89:25>::{synthetic#0}`
|
||||
--> $DIR/not-supported.rs:90:24
|
||||
|
|
||||
LL | reuse ToReuse::opaque_ret;
|
||||
| ^^^^^^^^^^
|
||||
|
|
||||
note: ...which requires comparing an impl and trait method signature, inferring any hidden `impl Trait` types in the process...
|
||||
--> $DIR/not-supported.rs:86:24
|
||||
--> $DIR/not-supported.rs:90:24
|
||||
|
|
||||
LL | reuse ToReuse::opaque_ret;
|
||||
| ^^^^^^^^^^
|
||||
= note: ...which again requires computing type of `opaque::<impl at $DIR/not-supported.rs:85:5: 85:25>::{synthetic#0}`, completing the cycle
|
||||
note: cycle used when checking that `opaque::<impl at $DIR/not-supported.rs:85:5: 85:25>` is well-formed
|
||||
--> $DIR/not-supported.rs:85:5
|
||||
= note: ...which again requires computing type of `opaque::<impl at $DIR/not-supported.rs:89:5: 89:25>::{synthetic#0}`, completing the cycle
|
||||
note: cycle used when checking that `opaque::<impl at $DIR/not-supported.rs:89:5: 89:25>` is well-formed
|
||||
--> $DIR/not-supported.rs:89:5
|
||||
|
|
||||
LL | impl ToReuse for u16 {
|
||||
| ^^^^^^^^^^^^^^^^^^^^
|
||||
= note: see https://rustc-dev-guide.rust-lang.org/overview.html#queries and https://rustc-dev-guide.rust-lang.org/query.html for more information
|
||||
|
||||
error: recursive delegation is not supported yet
|
||||
--> $DIR/not-supported.rs:99:22
|
||||
--> $DIR/not-supported.rs:103:22
|
||||
|
|
||||
LL | pub reuse to_reuse2::foo;
|
||||
| --- callee defined here
|
||||
|
@ -162,7 +183,7 @@ LL | pub reuse to_reuse2::foo;
|
|||
LL | reuse to_reuse1::foo;
|
||||
| ^^^
|
||||
|
||||
error: aborting due to 16 previous errors
|
||||
error: aborting due to 16 previous errors; 2 warnings emitted
|
||||
|
||||
Some errors have detailed explanations: E0049, E0195, E0391.
|
||||
For more information about an error, try `rustc --explain E0049`.
|
||||
|
|
Loading…
Add table
Reference in a new issue