Add a test that emitting diagnostics does not require the crate to use

the corresponding feature.
This commit is contained in:
Georg Semmler 2023-12-23 14:02:01 +01:00
parent 2c3aeea1ba
commit 91e1af3862
No known key found for this signature in database
GPG Key ID: A87BCEE5205CE489
3 changed files with 39 additions and 0 deletions

View File

@ -0,0 +1,8 @@
#![feature(diagnostic_namespace)]
#[diagnostic::on_unimplemented(
message = "Message",
note = "Note",
label = "label"
)]
pub trait Foo {}

View File

@ -0,0 +1,12 @@
// aux-build:other.rs
extern crate other;
use other::Foo;
fn take_foo(_: impl Foo) {}
fn main() {
take_foo(());
//~^ERROR Message
}

View File

@ -0,0 +1,19 @@
error[E0277]: Message
--> $DIR/error_is_shown_in_downstream_crates.rs:10:14
|
LL | take_foo(());
| -------- ^^ label
| |
| required by a bound introduced by this call
|
= help: the trait `Foo` is not implemented for `()`
= note: Note
note: required by a bound in `take_foo`
--> $DIR/error_is_shown_in_downstream_crates.rs:7:21
|
LL | fn take_foo(_: impl Foo) {}
| ^^^ required by this bound in `take_foo`
error: aborting due to 1 previous error
For more information about this error, try `rustc --explain E0277`.