Fix #2427
This commit is contained in:
parent
88970ec8cf
commit
ff32d5f734
2 changed files with 19 additions and 3 deletions
|
|
@ -1,4 +1,4 @@
|
||||||
use consts::{constant, constant_context};
|
use consts::{constant_simple, constant_context};
|
||||||
use rustc::lint::*;
|
use rustc::lint::*;
|
||||||
use rustc::hir::*;
|
use rustc::hir::*;
|
||||||
use std::hash::{Hash, Hasher};
|
use std::hash::{Hash, Hasher};
|
||||||
|
|
@ -64,7 +64,7 @@ impl<'a, 'tcx: 'a> SpanlessEq<'a, 'tcx> {
|
||||||
return false;
|
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 {
|
if l == r {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -317,7 +317,7 @@ impl<'a, 'tcx: 'a> SpanlessHash<'a, 'tcx> {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn hash_expr(&mut self, e: &Expr) {
|
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);
|
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…
Add table
Add a link
Reference in a new issue