fix absurd extreme comparisons false positive

fixes #1387
This commit is contained in:
Oliver Schneider
2016-12-21 16:49:53 +01:00
parent cb861a1bd1
commit 0b10a41ef3
2 changed files with 27 additions and 0 deletions

View File

@@ -825,6 +825,12 @@ fn detect_absurd_comparison<'a>(
use types::AbsurdComparisonResult::*;
use utils::comparisons::*;
// absurd comparison only makes sense on primitive types
// primitive types don't implement comparison operators with each other
if cx.tcx.tables().expr_ty(lhs) != cx.tcx.tables().expr_ty(rhs) {
return None;
}
let normalized = normalize_comparison(op, lhs, rhs);
let (rel, normalized_lhs, normalized_rhs) = if let Some(val) = normalized {
val