about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/librustc_lint/unused.rs13
-rw-r--r--src/test/compile-fail/unused-result.rs8
2 files changed, 10 insertions, 11 deletions
diff --git a/src/librustc_lint/unused.rs b/src/librustc_lint/unused.rs
index 0c82679c307..473c0f3ffda 100644
--- a/src/librustc_lint/unused.rs
+++ b/src/librustc_lint/unused.rs
@@ -8,6 +8,7 @@
 // option. This file may not be copied, modified, or distributed
 // except according to those terms.
 
+use rustc::hir::def_id::DefId;
 use rustc::ty;
 use rustc::ty::adjustment;
 use util::nodemap::FxHashMap;
@@ -144,20 +145,18 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedResults {
             ty::TyTuple(ref tys, _) if tys.is_empty() => return,
             ty::TyNever => return,
             ty::TyBool => return,
-            ty::TyAdt(def, _) => {
-                let attrs = cx.tcx.get_attrs(def.did);
-                check_must_use(cx, &attrs, s.span)
-            }
+            ty::TyAdt(def, _) => check_must_use(cx, def.did, s.span),
             _ => false,
         };
         if !warned {
             cx.span_lint(UNUSED_RESULTS, s.span, "unused result");
         }
 
-        fn check_must_use(cx: &LateContext, attrs: &[ast::Attribute], sp: Span) -> bool {
-            for attr in attrs {
+        fn check_must_use(cx: &LateContext, def_id: DefId, sp: Span) -> bool {
+            for attr in cx.tcx.get_attrs(def_id).iter() {
                 if attr.check_name("must_use") {
-                    let mut msg = "unused result which must be used".to_string();
+                    let mut msg = format!("unused `{}` which must be used",
+                                          cx.tcx.item_path_str(def_id));
                     // check for #[must_use="..."]
                     if let Some(s) = attr.value_str() {
                         msg.push_str(": ");
diff --git a/src/test/compile-fail/unused-result.rs b/src/test/compile-fail/unused-result.rs
index 6ed3b081c97..0c6c7fc5a0d 100644
--- a/src/test/compile-fail/unused-result.rs
+++ b/src/test/compile-fail/unused-result.rs
@@ -26,8 +26,8 @@ fn qux() -> MustUseMsg { return foo::<MustUseMsg>(); }
 #[allow(unused_results)]
 fn test() {
     foo::<isize>();
-    foo::<MustUse>(); //~ ERROR: unused result which must be used
-    foo::<MustUseMsg>(); //~ ERROR: unused result which must be used: some message
+    foo::<MustUse>(); //~ ERROR: unused `MustUse` which must be used
+    foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` which must be used: some message
 }
 
 #[allow(unused_results, unused_must_use)]
@@ -39,8 +39,8 @@ fn test2() {
 
 fn main() {
     foo::<isize>(); //~ ERROR: unused result
-    foo::<MustUse>(); //~ ERROR: unused result which must be used
-    foo::<MustUseMsg>(); //~ ERROR: unused result which must be used: some message
+    foo::<MustUse>(); //~ ERROR: unused `MustUse` which must be used
+    foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` which must be used: some message
 
     let _ = foo::<isize>();
     let _ = foo::<MustUse>();