@@ -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