From 798c28fccdbeeaa0e6bdd949fbf606c48be3796b Mon Sep 17 00:00:00 2001 From: Ayaz Hafiz Date: Sat, 7 May 2022 22:05:05 -0400 Subject: [PATCH] Dryasdust was a popular word in 1860 --- compiler/can/src/abilities.rs | 1 + compiler/mono/src/copy.rs | 2 +- compiler/mono/src/ir.rs | 13 +++++-------- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/compiler/can/src/abilities.rs b/compiler/can/src/abilities.rs index d5b29493a4..d2aef3fbd2 100644 --- a/compiler/can/src/abilities.rs +++ b/compiler/can/src/abilities.rs @@ -34,6 +34,7 @@ pub struct MemberSpecialization { #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct SpecializationId(u64); +#[allow(clippy::derivable_impls)] // let's be explicit about this impl Default for SpecializationId { fn default() -> Self { Self(0) diff --git a/compiler/mono/src/copy.rs b/compiler/mono/src/copy.rs index d45a1144e5..0621d34061 100644 --- a/compiler/mono/src/copy.rs +++ b/compiler/mono/src/copy.rs @@ -67,7 +67,7 @@ pub fn deep_copy_type_vars_into_expr<'a>( loc_elems: loc_elems.iter().map(|le| le.map(go_help)).collect(), }, Var(sym) => Var(*sym), - AbilityMember(sym, specialization) => AbilityMember(*sym, specialization.clone()), + AbilityMember(sym, specialization) => AbilityMember(*sym, *specialization), When { loc_cond, cond_var, diff --git a/compiler/mono/src/ir.rs b/compiler/mono/src/ir.rs index 6522b2d93e..ca270b4c52 100644 --- a/compiler/mono/src/ir.rs +++ b/compiler/mono/src/ir.rs @@ -2560,7 +2560,7 @@ fn resolve_abilities_in_specialized_body<'a>( self.abilities_store .insert_resolved(*specialization_id, specialization); - debug_assert!(!self.specialized.contains(&specialization_id)); + debug_assert!(!self.specialized.contains(specialization_id)); self.specialized.push(*specialization_id); } _ => walk_expr(self, expr), @@ -7056,13 +7056,10 @@ fn can_reuse_symbol<'a>( use ReuseSymbol::*; let symbol = match expr { - AbilityMember(_, specialization_id) => { - let specialization_symbol = env - .abilities_store - .get_resolved(*specialization_id) - .expect("Specialization must be known!"); - specialization_symbol - } + AbilityMember(_, specialization_id) => env + .abilities_store + .get_resolved(*specialization_id) + .expect("Specialization must be known!"), Var(symbol) => *symbol, _ => return NotASymbol, };