{
RichLocation r (new_field.get_locus ());
r.add_range (field.get_locus ());
- rust_error_at (r, "duplicate field name %qs",
+ rust_error_at (r, ErrorCode ("E0124"),
+ "field %qs is already declared",
field.get_field_name ().as_string ().c_str ());
return true;
}
enum E2
{
pub A (u8, i32, u64), // { dg-error "visibility qualifier" }
- B { a: u8, a: u8 } // { dg-error "duplicate field" }}
+ B { a: u8, a: u8 } // { dg-error "field .a. is already declared" }}
}
fn main ()
enum E2
{
- Alpha { a: u8, a: u8 }, // { dg-error "duplicate field" }}
+ Alpha { a: u8, a: u8 }, // { dg-error "field .a. is already declared" }}
pub Beta (u8, i32, u64) // { dg-error "visibility qualifier" }
}
}
struct S { a: i32, b: i32, c: u8, a: i128 }
-// { dg-error "duplicate field" "" { target *-*-* } .-1 }
+// { dg-error "field .a. is already declared" "" { target *-*-* } .-1 }
union U
{
a: i32,
b: i32,
c: u8,
- b: char // { dg-error "duplicate field" "" { target *-*-* } }
+ b: char // { dg-error "field .b. is already declared" "" { target *-*-* } }
}
fn main ()
{
struct SS { alpha: i32, beta: i32, gamma: u8, gamma: i128 }
- // { dg-error "duplicate field" "" { target *-*-* } .-1 }
+ // { dg-error "field .gamma. is already declared" "" { target *-*-* } .-1 }
union UU
{
alpha: i32, beta: i32,
gamma: u8, beta: char
- // { dg-error "duplicate field" "" { target *-*-* } .-1 }
+ // { dg-error "field .beta. is already declared" "" { target *-*-* } .-1 }
}
}
--- /dev/null
+// https://doc.rust-lang.org/error_codes/E0124.html
+fn main() {
+ struct Foo {
+ field1: i32, // { dg-error "field .field1. is already declared" }
+ field1: i32, // { dg-error "field .field1. is already declared" }
+ field1: i32, // { dg-error "field .field1. is already declared" }
+ }
+}