Skip to content

Commit 580ca4e

Browse files
committed
const folding: silence clippy in macro
1 parent e45d51d commit 580ca4e

File tree

1 file changed

+47
-39
lines changed

1 file changed

+47
-39
lines changed

crates/rustc_codegen_spirv/src/builder/builder_methods.rs

Lines changed: 47 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -88,21 +88,24 @@ macro_rules! simple_op {
8888
assert_ty_eq!(self, lhs.ty, rhs.ty);
8989
let result_type = lhs.ty;
9090

91-
$(if let Some(const_lhs) = self.try_get_const_value(lhs) {
92-
if let Some(const_rhs) = self.try_get_const_value(rhs) {
93-
#[allow(unreachable_patterns)]
94-
match (const_lhs, const_rhs) {
95-
$(
96-
(ConstValue::Unsigned($int_lhs), ConstValue::Unsigned($int_rhs)) => return self.const_uint_big(result_type, $fold_int),
97-
(ConstValue::Signed($int_lhs), ConstValue::Signed($int_rhs)) => return self.const_uint_big(result_type, $fold_int as u128),
98-
)?
99-
$((ConstValue::Unsigned($uint_lhs), ConstValue::Unsigned($uint_rhs)) => return self.const_uint_big(result_type, $fold_uint), )?
100-
$((ConstValue::Signed($sint_lhs), ConstValue::Signed($sint_rhs)) => return self.const_uint_big(result_type, $fold_sint as u128), )?
101-
$((ConstValue::Bool($bool_lhs), ConstValue::Bool($bool_rhs)) => return self.const_uint_big(result_type, ($fold_bool).into()), )?
102-
_ => (),
91+
$(
92+
#[allow(unreachable_patterns, clippy::collapsible_match)]
93+
if let Some(const_lhs) = self.try_get_const_value(lhs) {
94+
if let Some(const_rhs) = self.try_get_const_value(rhs) {
95+
#[allow(unreachable_patterns)]
96+
match (const_lhs, const_rhs) {
97+
$(
98+
(ConstValue::Unsigned($int_lhs), ConstValue::Unsigned($int_rhs)) => return self.const_uint_big(result_type, $fold_int),
99+
(ConstValue::Signed($int_lhs), ConstValue::Signed($int_rhs)) => return self.const_uint_big(result_type, $fold_int as u128),
100+
)?
101+
$((ConstValue::Unsigned($uint_lhs), ConstValue::Unsigned($uint_rhs)) => return self.const_uint_big(result_type, $fold_uint), )?
102+
$((ConstValue::Signed($sint_lhs), ConstValue::Signed($sint_rhs)) => return self.const_uint_big(result_type, $fold_sint as u128), )?
103+
$((ConstValue::Bool($bool_lhs), ConstValue::Bool($bool_rhs)) => return self.const_uint_big(result_type, ($fold_bool).into()), )?
104+
_ => (),
105+
}
103106
}
104107
}
105-
})?
108+
)?
106109

107110
match self.lookup_type(result_type) {
108111
$(SpirvType::Integer(_, _) => {
@@ -149,22 +152,25 @@ macro_rules! simple_shift_op {
149152
fn $func_name(&mut self, lhs: Self::Value, rhs: Self::Value) -> Self::Value {
150153
let result_type = lhs.ty;
151154

152-
$(if let Some(const_lhs) = self.try_get_const_value(lhs) {
153-
if let Some(const_rhs) = self.try_get_const_value(rhs) {
154-
#[allow(unreachable_patterns)]
155-
match (const_lhs, const_rhs) {
156-
$(
157-
(ConstValue::Unsigned($shift_uint_lhs), ConstValue::Unsigned($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_uint),
158-
(ConstValue::Unsigned($shift_uint_lhs), ConstValue::Signed($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_uint),
159-
)?
160-
$(
161-
(ConstValue::Signed($shift_int_lhs), ConstValue::Unsigned($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_int),
162-
(ConstValue::Signed($shift_int_lhs), ConstValue::Signed($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_int),
163-
)?
164-
_ => (),
155+
$(
156+
#[allow(unreachable_patterns, clippy::collapsible_match)]
157+
if let Some(const_lhs) = self.try_get_const_value(lhs) {
158+
if let Some(const_rhs) = self.try_get_const_value(rhs) {
159+
#[allow(unreachable_patterns)]
160+
match (const_lhs, const_rhs) {
161+
$(
162+
(ConstValue::Unsigned($shift_uint_lhs), ConstValue::Unsigned($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_uint),
163+
(ConstValue::Unsigned($shift_uint_lhs), ConstValue::Signed($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_uint),
164+
)?
165+
$(
166+
(ConstValue::Signed($shift_int_lhs), ConstValue::Unsigned($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_int),
167+
(ConstValue::Signed($shift_int_lhs), ConstValue::Signed($shift_uint_rhs)) => return self.const_uint_big(result_type, $fold_shift_int),
168+
)?
169+
_ => (),
170+
}
165171
}
166172
}
167-
})?
173+
)?
168174

169175
self.emit()
170176
.$inst_name(result_type, None, lhs.def(self), rhs.def(self))
@@ -192,19 +198,21 @@ macro_rules! simple_uni_op {
192198
fn $func_name(&mut self, val: Self::Value) -> Self::Value {
193199
let result_type = val.ty;
194200

195-
$(if let Some(const_val) = self.try_get_const_value(val) {
196-
#[allow(unreachable_patterns)]
197-
match const_val {
198-
$(
199-
ConstValue::Unsigned($int_val) => return self.const_uint_big(result_type, $fold_int),
200-
ConstValue::Signed($int_val) => return self.const_uint_big(result_type, $fold_int as u128),
201-
)?
202-
$(ConstValue::Unsigned($uint_val) => return self.const_uint_big(result_type, $fold_uint), )?
203-
$(ConstValue::Signed($sint_val) => return self.const_uint_big(result_type, $fold_sint as u128), )?
204-
$(ConstValue::Bool($bool_val) => return self.const_uint_big(result_type, ($fold_bool).into()), )?
205-
_ => (),
201+
$(
202+
#[allow(unreachable_patterns, clippy::collapsible_match)]
203+
if let Some(const_val) = self.try_get_const_value(val) {
204+
match const_val {
205+
$(
206+
ConstValue::Unsigned($int_val) => return self.const_uint_big(result_type, $fold_int),
207+
ConstValue::Signed($int_val) => return self.const_uint_big(result_type, $fold_int as u128),
208+
)?
209+
$(ConstValue::Unsigned($uint_val) => return self.const_uint_big(result_type, $fold_uint), )?
210+
$(ConstValue::Signed($sint_val) => return self.const_uint_big(result_type, $fold_sint as u128), )?
211+
$(ConstValue::Bool($bool_val) => return self.const_uint_big(result_type, ($fold_bool).into()), )?
212+
_ => (),
213+
}
206214
}
207-
})?
215+
)?
208216

209217
match self.lookup_type(result_type) {
210218
$(SpirvType::Integer(_, _) => {

0 commit comments

Comments
 (0)