Skip to content

Commit ac015cb

Browse files
use map for lookup
Co-authored-by: Liam Cervante <[email protected]>
1 parent 2495537 commit ac015cb

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

internal/terraform/transform_provider.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -286,12 +286,12 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error {
286286
}
287287

288288
// We collect all action nodes to use later
289-
actionNodes := []*nodeExpandActionDeclaration{}
289+
actionNodes := addrs.MakeMap[addrs.ConfigAction, addrs.AbsProviderConfig]()
290290

291291
// Now look for all provider consumers and connect them to the appropriate closers.
292292
for _, v := range g.Vertices() {
293293
if actionNode, ok := v.(*nodeExpandActionDeclaration); ok {
294-
actionNodes = append(actionNodes, actionNode)
294+
actionNodes.Put(actionNode.ActionAddr(), actionNode.ResolvedProvider)
295295
}
296296
pc, ok := v.(GraphNodeProviderConsumer)
297297
if !ok {
@@ -325,14 +325,11 @@ func (t *CloseProviderTransformer) Transform(g *Graph) error {
325325

326326
// For each action, find the node and ask the node for its provider configuration.
327327
// It should have been resolved already by the ProviderTransformer.
328-
actions := apc.Actions()
329-
actionProviders := []addrs.AbsProviderConfig{}
330-
for _, actionNode := range actionNodes {
331-
// This is an action node, so check if it matches an action
332-
for _, action := range actions {
333-
if actionNode.ActionAddr().Equal(action) {
334-
actionProviders = append(actionProviders, actionNode.ResolvedProvider)
335-
}
328+
var actionProviders []addrs.AbsProviderConfig
329+
// This is an action node, so check if it matches an action
330+
for _, action := range apc.Actions() {
331+
if provider, ok := actionNodes.GetOk(action); ok {
332+
actionProviders = append(actionProviders, provider)
336333
}
337334
}
338335

0 commit comments

Comments
 (0)