diff --git a/src/rstd/inlining/static_pair.rs b/src/rstd/inlining/static_pair.rs index b536146..1f79c94 100644 --- a/src/rstd/inlining/static_pair.rs +++ b/src/rstd/inlining/static_pair.rs @@ -124,15 +124,28 @@ impl<'a, Ctx: Context<'a>, SP: StaticPair<'a, Ctx>> MentionableBase<'a, Ctx> } } +impl StaticPairObject { + pub fn points_typed_sp<'a, Ctx: Context<'a>>( + pair: &SP, + points: &mut impl PointsVisitor<'a, Ctx>, + ) where + SP: StaticPair<'a, Ctx>, + SP::A: Mentionable<'a, Ctx>, + SP::B: Mentionable<'a, Ctx>, + { + let (a, b) = pair.elements(); + a.points_typed(points); + b.points_typed(points); + } +} + impl<'a, Ctx: Context<'a>, SP: StaticPair<'a, Ctx>> MentionableTop<'a, Ctx> for StaticPairObject where SP::A: Mentionable<'a, Ctx>, SP::B: Mentionable<'a, Ctx>, { fn points_typed(&self, points: &mut impl PointsVisitor<'a, Ctx>) { - let (a, b) = self.pair.elements(); - a.points_typed(points); - b.points_typed(points); + Self::points_typed_sp(&self.pair, points); } }