Fix debug_assert in unused lint pass
This fixes a debug assertion in the unused lint pass. As a side effect, this also improves the span generated for tuples in the `unused_must_use` lint.
This commit is contained in:
parent
ece55d416e
commit
bbe3447313
4 changed files with 12 additions and 12 deletions
|
@ -240,17 +240,17 @@ impl<'tcx> LateLintPass<'tcx> for UnusedResults {
|
|||
}
|
||||
ty::Tuple(ref tys) => {
|
||||
let mut has_emitted = false;
|
||||
let spans = if let hir::ExprKind::Tup(comps) = &expr.kind {
|
||||
let comps = if let hir::ExprKind::Tup(comps) = expr.kind {
|
||||
debug_assert_eq!(comps.len(), tys.len());
|
||||
comps.iter().map(|e| e.span).collect()
|
||||
comps
|
||||
} else {
|
||||
vec![]
|
||||
&[]
|
||||
};
|
||||
for (i, ty) in tys.iter().enumerate() {
|
||||
let descr_post = &format!(" in tuple element {}", i);
|
||||
let span = *spans.get(i).unwrap_or(&span);
|
||||
if check_must_use_ty(cx, ty, expr, span, descr_pre, descr_post, plural_len)
|
||||
{
|
||||
let e = comps.get(i).unwrap_or(expr);
|
||||
let span = e.span;
|
||||
if check_must_use_ty(cx, ty, e, span, descr_pre, descr_post, plural_len) {
|
||||
has_emitted = true;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue