From 8641bc267cad2e86f3c73060cc12be6f754207e2 Mon Sep 17 00:00:00 2001 From: Christian Poveda Date: Thu, 4 Aug 2016 23:22:46 -0500 Subject: [PATCH 1/2] Updated E0081 to new format --- src/librustc_typeck/check/mod.rs | 5 +++-- src/test/compile-fail/issue-15524.rs | 15 +++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index 6062bd048b3d2..3e715d14bc050 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -1251,8 +1251,9 @@ pub fn check_enum_variants<'a,'tcx>(ccx: &CrateCtxt<'a,'tcx>, let mut err = struct_span_err!(ccx.tcx.sess, v.span, E0081, "discriminant value `{}` already exists", disr_vals[i]); let variant_i_node_id = ccx.tcx.map.as_local_node_id(variants[i].did).unwrap(); - span_note!(&mut err, ccx.tcx.map.span(variant_i_node_id), - "conflicting discriminant here"); + err.span_label(ccx.tcx.map.span(variant_i_node_id), + &format!("first use of `{}`", disr_vals[i])); + err.span_label(v.span , &format!("enum already has `{}`", disr_vals[i])); err.emit(); } disr_vals.push(current_disr_val); diff --git a/src/test/compile-fail/issue-15524.rs b/src/test/compile-fail/issue-15524.rs index bdf344dcdfe8d..867dafb5ea751 100644 --- a/src/test/compile-fail/issue-15524.rs +++ b/src/test/compile-fail/issue-15524.rs @@ -12,13 +12,16 @@ const N: isize = 1; enum Foo { A = 1, - B = 1, //~ ERROR discriminant value `1isize` already exists - //~^^ NOTE conflicting + B = 1, //~ ERROR discriminant value + //~^ NOTE enum already + //~^^^ NOTE first use C = 0, - D, //~ ERROR discriminant value `1isize` already exists - //~^^^^^ NOTE conflicting - E = N, //~ ERROR discriminant value `1isize` already exists - //~^^^^^^^ NOTE conflicting + D, //~ ERROR discriminant value + //~^ NOTE enum already + //~^^^^^^^ NOTE first use + E = N, //~ ERROR discriminant value + //~^ NOTE enum already + //~^^^^^^^^^^ NOTE first use } fn main() {} From 00179a75c735a405fa0382b1ea3bb77eb7d1f0f8 Mon Sep 17 00:00:00 2001 From: Christian Poveda Date: Fri, 5 Aug 2016 12:05:29 -0500 Subject: [PATCH 2/2] Updated style of unit test --- src/test/compile-fail/issue-15524.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/test/compile-fail/issue-15524.rs b/src/test/compile-fail/issue-15524.rs index 867dafb5ea751..3d6f224c24904 100644 --- a/src/test/compile-fail/issue-15524.rs +++ b/src/test/compile-fail/issue-15524.rs @@ -12,16 +12,18 @@ const N: isize = 1; enum Foo { A = 1, + //~^ NOTE first use + //~| NOTE first use + //~| NOTE first use B = 1, //~ ERROR discriminant value //~^ NOTE enum already - //~^^^ NOTE first use C = 0, D, //~ ERROR discriminant value //~^ NOTE enum already - //~^^^^^^^ NOTE first use + E = N, //~ ERROR discriminant value //~^ NOTE enum already - //~^^^^^^^^^^ NOTE first use + } fn main() {}