Rollup merge of #108377 - clubby789:duplicate-diagnostic-ice, r=compiler-errors

Fix ICE in 'duplicate diagnostic item' diagnostic

Not sure how to add this in a test; I found it by mistakenly running `cargo fix --lib -p std` rather than `x fix` at the root.
This commit is contained in:
Dylan DPC 2023-02-24 12:02:43 +05:30 committed by GitHub
commit 4aff2c5ff8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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 = passes_duplicate_diagnostic_item_in_crate =
duplicate diagnostic item in crate `{$crate_name}`: `{$name}`. 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 = passes_diagnostic_item_first_defined =
the diagnostic item is first defined here the diagnostic item is first defined here
.note = the diagnostic item is first defined in crate `{$orig_crate_name}`.
passes_abi = passes_abi =
abi: {$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