diff options
-rw-r--r-- | src/ir/analysis/derive.rs | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/ir/analysis/derive.rs b/src/ir/analysis/derive.rs index e07f6bc2..920590b4 100644 --- a/src/ir/analysis/derive.rs +++ b/src/ir/analysis/derive.rs @@ -240,25 +240,24 @@ impl<'ctx> CannotDerive<'ctx> { self.derive_trait ); return CanDerive::No; - } else { - if self.derive_trait.can_derive_large_array() { - trace!(" array can derive {}", self.derive_trait); - return CanDerive::Yes; - } else { - if len <= RUST_DERIVE_IN_ARRAY_LIMIT { - trace!( - " array is small enough to derive {}", - self.derive_trait - ); - return CanDerive::Yes; - } else { - trace!( - " array is too large to derive {}, but it may be implemented", self.derive_trait - ); - return CanDerive::Manually; - } - } } + + if self.derive_trait.can_derive_large_array() { + trace!(" array can derive {}", self.derive_trait); + return CanDerive::Yes; + } + + if len > RUST_DERIVE_IN_ARRAY_LIMIT { + trace!( + " array is too large to derive {}, but it may be implemented", self.derive_trait + ); + return CanDerive::Manually; + } + trace!( + " array is small enough to derive {}", + self.derive_trait + ); + return CanDerive::Yes; } TypeKind::Vector(t, len) => { let inner_type = |