Fix ICE in 'duplicate diagnostic item' diagnostic

This commit is contained in:
clubby789 2023-02-23 00:39:51 +00:00
parent da439d9874
commit 4332a27c2d
5 changed files with 32 additions and 1 deletions

View file

@ -407,10 +407,10 @@ passes_duplicate_diagnostic_item =
passes_duplicate_diagnostic_item_in_crate =
duplicate diagnostic item in crate `{$crate_name}`: `{$name}`.
.note = the diagnostic item is first defined in crate `{$orig_crate_name}`.
passes_diagnostic_item_first_defined =
the diagnostic item is first defined here
.note = the diagnostic item is first defined in crate `{$orig_crate_name}`.
passes_abi =
abi: {$abi}

View file

@ -0,0 +1,3 @@
#![feature(rustc_attrs)]
#[rustc_diagnostic_item = "Foo"]
pub struct Foo {}

View file

@ -0,0 +1,3 @@
#![feature(rustc_attrs)]
#[rustc_diagnostic_item = "Foo"]
pub struct Foo {}

View file

@ -0,0 +1,13 @@
// aux-build: p1.rs
// aux-build: p2.rs
// error-pattern: duplicate diagnostic item in crate `p2`
// error-pattern: note: the diagnostic item is first defined in crate `p1`
#![feature(rustc_attrs)]
extern crate p1;
extern crate p2;
#[rustc_diagnostic_item = "Foo"]
pub struct Foo {} //~ ERROR duplicate diagnostic item found
fn main() {}

View file

@ -0,0 +1,12 @@
error: duplicate diagnostic item in crate `p2`: `Foo`.
|
= note: the diagnostic item is first defined in crate `p1`.
error: duplicate diagnostic item found: `Foo`.
--> $DIR/duplicate-diagnostic.rs:12:1
|
LL | pub struct Foo {}
| ^^^^^^^^^^^^^^
error: aborting due to 2 previous errors