From 2495537a7df98fa123739c2691a62399588429f4 Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Fri, 1 Aug 2025 16:52:47 +0200 Subject: [PATCH] refactor to not iterate through all verticies while iterating through all verticies --- internal/terraform/transform_provider.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/terraform/transform_provider.go b/internal/terraform/transform_provider.go index 96c85b1e66..e6efe8592f 100644 --- a/internal/terraform/transform_provider.go +++ b/internal/terraform/transform_provider.go @@ -285,8 +285,14 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error { g.Connect(dag.BasicEdge(closer, p)) } + // We collect all action nodes to use later + actionNodes := []*nodeExpandActionDeclaration{} + // Now look for all provider consumers and connect them to the appropriate closers. for _, v := range g.Vertices() { + if actionNode, ok := v.(*nodeExpandActionDeclaration); ok { + actionNodes = append(actionNodes, actionNode) + } pc, ok := v.(GraphNodeProviderConsumer) if !ok { continue @@ -321,13 +327,11 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error { // It should have been resolved already by the ProviderTransformer. actions := apc.Actions() actionProviders := []addrs.AbsProviderConfig{} - for _, v2 := range g.Vertices() { - if actionNode, ok := v2.(*nodeExpandActionDeclaration); ok { - // This is an action node, so check if it matches an action - for _, action := range actions { - if actionNode.ActionAddr().Equal(action) { - actionProviders = append(actionProviders, actionNode.ResolvedProvider) - } + for _, actionNode := range actionNodes { + // This is an action node, so check if it matches an action + for _, action := range actions { + if actionNode.ActionAddr().Equal(action) { + actionProviders = append(actionProviders, actionNode.ResolvedProvider) } } }