From ac015cb36b8fb5591e277ae7ef8cfb0d7f89548d Mon Sep 17 00:00:00 2001 From: Daniel Schmidt Date: Mon, 4 Aug 2025 11:19:36 +0200 Subject: [PATCH] use map for lookup Co-authored-by: Liam Cervante --- internal/terraform/transform_provider.go | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/internal/terraform/transform_provider.go b/internal/terraform/transform_provider.go index e6efe8592f..2430105687 100644 --- a/internal/terraform/transform_provider.go +++ b/internal/terraform/transform_provider.go @@ -286,12 +286,12 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error { } // We collect all action nodes to use later - actionNodes := []*nodeExpandActionDeclaration{} + actionNodes := addrs.MakeMap[addrs.ConfigAction, addrs.AbsProviderConfig]() // 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) + actionNodes.Put(actionNode.ActionAddr(), actionNode.ResolvedProvider) } pc, ok := v.(GraphNodeProviderConsumer) if !ok { @@ -325,14 +325,11 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error { // For each action, find the node and ask the node for its provider configuration. // It should have been resolved already by the ProviderTransformer. - actions := apc.Actions() - actionProviders := []addrs.AbsProviderConfig{} - 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) - } + var actionProviders []addrs.AbsProviderConfig + // This is an action node, so check if it matches an action + for _, action := range apc.Actions() { + if provider, ok := actionNodes.GetOk(action); ok { + actionProviders = append(actionProviders, provider) } }