From 8bcd6a33bebb8177781ae07ea1fc0d4a9a679627 Mon Sep 17 00:00:00 2001 From: Gavin Baker Date: Tue, 30 Aug 2016 11:30:46 +1000 Subject: [PATCH] E0517 Update error format #36109 - Fixes #36109 - Part of #35233 --- src/librustc/hir/check_attr.rs | 6 +++--- src/test/compile-fail/E0517.rs | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/librustc/hir/check_attr.rs b/src/librustc/hir/check_attr.rs index 6997b5d77022..a3ab5f949e7d 100644 --- a/src/librustc/hir/check_attr.rs +++ b/src/librustc/hir/check_attr.rs @@ -62,8 +62,7 @@ impl<'a> CheckAttrVisitor<'a> { None => continue, }; - let word: &str = &word.name(); - let (message, label) = match word { + let (message, label) = match &*name { "C" => { conflicting_reprs += 1; if target != Target::Struct && @@ -80,7 +79,8 @@ impl<'a> CheckAttrVisitor<'a> { // can be used to modify another repr hint if target != Target::Struct && target != Target::Union { - "attribute should be applied to struct or union" + ("attribute should be applied to struct or union", + "a struct or union") } else { continue } diff --git a/src/test/compile-fail/E0517.rs b/src/test/compile-fail/E0517.rs index be06e809915b..b79cb2c44af3 100644 --- a/src/test/compile-fail/E0517.rs +++ b/src/test/compile-fail/E0517.rs @@ -9,15 +9,19 @@ // except according to those terms. #[repr(C)] //~ ERROR E0517 + //~| requires a struct, enum or union type Foo = u8; #[repr(packed)] //~ ERROR E0517 + //~| requires a struct enum Foo2 {Bar, Baz} #[repr(u8)] //~ ERROR E0517 + //~| requires an enum struct Foo3 {bar: bool, baz: bool} #[repr(C)] //~ ERROR E0517 + //~| requires a struct, enum or union impl Foo3 { }