Fix #2427
This commit is contained in:
parent
88970ec8cf
commit
ff32d5f734
@ -1,4 +1,4 @@
|
||||
use consts::{constant, constant_context};
|
||||
use consts::{constant_simple, constant_context};
|
||||
use rustc::lint::*;
|
||||
use rustc::hir::*;
|
||||
use std::hash::{Hash, Hasher};
|
||||
@ -64,7 +64,7 @@ impl<'a, 'tcx: 'a> SpanlessEq<'a, 'tcx> {
|
||||
return false;
|
||||
}
|
||||
|
||||
if let (Some(l), Some(r)) = (constant(self.cx, left), constant(self.cx, right)) {
|
||||
if let (Some(l), Some(r)) = (constant_simple(self.cx, left), constant_simple(self.cx, right)) {
|
||||
if l == r {
|
||||
return true;
|
||||
}
|
||||
@ -317,7 +317,7 @@ impl<'a, 'tcx: 'a> SpanlessHash<'a, 'tcx> {
|
||||
}
|
||||
|
||||
pub fn hash_expr(&mut self, e: &Expr) {
|
||||
if let Some(e) = constant(self.cx, e) {
|
||||
if let Some(e) = constant_simple(self.cx, e) {
|
||||
return e.hash(&mut self.s);
|
||||
}
|
||||
|
||||
|
16
tests/run-pass/match_same_arms_const.rs
Normal file
16
tests/run-pass/match_same_arms_const.rs
Normal file
@ -0,0 +1,16 @@
|
||||
#![deny(match_same_arms)]
|
||||
|
||||
const PRICE_OF_SWEETS: u32 = 5;
|
||||
const PRICE_OF_KINDNESS: u32 = 0;
|
||||
const PRICE_OF_DRINKS: u32 = 5;
|
||||
|
||||
pub fn price(thing: &str) -> u32 {
|
||||
match thing {
|
||||
"rolo" => PRICE_OF_SWEETS,
|
||||
"advice" => PRICE_OF_KINDNESS,
|
||||
"juice" => PRICE_OF_DRINKS,
|
||||
_ => panic!()
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
Loading…
x
Reference in New Issue
Block a user