Skip to content

Commit f9edbcc

Browse files
authored
Rollup merge of #42756 - sanxiyn:name-for-must-use, r=estebank
Show type name for unused_must_use lint Fix #42688.
2 parents d3e116a + 05540bf commit f9edbcc

File tree

2 files changed

+10
-11
lines changed

2 files changed

+10
-11
lines changed

src/librustc_lint/unused.rs

+6-7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
use rustc::hir::def_id::DefId;
1112
use rustc::ty;
1213
use rustc::ty::adjustment;
1314
use util::nodemap::FxHashMap;
@@ -144,20 +145,18 @@ impl<'a, 'tcx> LateLintPass<'a, 'tcx> for UnusedResults {
144145
ty::TyTuple(ref tys, _) if tys.is_empty() => return,
145146
ty::TyNever => return,
146147
ty::TyBool => return,
147-
ty::TyAdt(def, _) => {
148-
let attrs = cx.tcx.get_attrs(def.did);
149-
check_must_use(cx, &attrs, s.span)
150-
}
148+
ty::TyAdt(def, _) => check_must_use(cx, def.did, s.span),
151149
_ => false,
152150
};
153151
if !warned {
154152
cx.span_lint(UNUSED_RESULTS, s.span, "unused result");
155153
}
156154

157-
fn check_must_use(cx: &LateContext, attrs: &[ast::Attribute], sp: Span) -> bool {
158-
for attr in attrs {
155+
fn check_must_use(cx: &LateContext, def_id: DefId, sp: Span) -> bool {
156+
for attr in cx.tcx.get_attrs(def_id).iter() {
159157
if attr.check_name("must_use") {
160-
let mut msg = "unused result which must be used".to_string();
158+
let mut msg = format!("unused `{}` which must be used",
159+
cx.tcx.item_path_str(def_id));
161160
// check for #[must_use="..."]
162161
if let Some(s) = attr.value_str() {
163162
msg.push_str(": ");

src/test/compile-fail/unused-result.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ fn qux() -> MustUseMsg { return foo::<MustUseMsg>(); }
2626
#[allow(unused_results)]
2727
fn test() {
2828
foo::<isize>();
29-
foo::<MustUse>(); //~ ERROR: unused result which must be used
30-
foo::<MustUseMsg>(); //~ ERROR: unused result which must be used: some message
29+
foo::<MustUse>(); //~ ERROR: unused `MustUse` which must be used
30+
foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` which must be used: some message
3131
}
3232

3333
#[allow(unused_results, unused_must_use)]
@@ -39,8 +39,8 @@ fn test2() {
3939

4040
fn main() {
4141
foo::<isize>(); //~ ERROR: unused result
42-
foo::<MustUse>(); //~ ERROR: unused result which must be used
43-
foo::<MustUseMsg>(); //~ ERROR: unused result which must be used: some message
42+
foo::<MustUse>(); //~ ERROR: unused `MustUse` which must be used
43+
foo::<MustUseMsg>(); //~ ERROR: unused `MustUseMsg` which must be used: some message
4444

4545
let _ = foo::<isize>();
4646
let _ = foo::<MustUse>();

0 commit comments

Comments
 (0)