@@ -5,6 +5,8 @@ package jobs
55
66import (
77 "context"
8+ tfaddr "github.com/hashicorp/terraform-registry-address"
9+ "github.com/hashicorp/terraform-schema/module"
810 "log"
911
1012 "github.com/hashicorp/terraform-ls/internal/document"
@@ -89,19 +91,36 @@ func loadSearchModuleSources(searchMeta *tfsearch.Meta, moduleFeature searchDeco
8991 }
9092
9193 if modMeta != nil {
94+ if searchMeta .ProviderRequirements == nil {
95+ searchMeta .ProviderRequirements = make (tfsearch.ProviderRequirements )
96+ }
97+ // Copy provider requirements
98+ for provider , constraints := range modMeta .ProviderRequirements {
99+ searchMeta .ProviderRequirements [provider ] = constraints
100+ }
101+
102+ for rf := range searchMeta .ProviderReferences {
103+ src := modMeta .ProviderReferences [module.ProviderRef {
104+ LocalName : rf .LocalName ,
105+ }]
106+ if rf .Alias != "" {
107+ searchMeta .ProviderReferences [tfsearch.ProviderRef {
108+ LocalName : rf .LocalName ,
109+ Alias : rf .Alias ,
110+ }] = src
111+ }
112+ }
92113 // Convert from module provider references to search provider references
93114 for moduleProviderRef , provider := range modMeta .ProviderReferences {
94115 searchProviderRef := tfsearch.ProviderRef {
95116 LocalName : moduleProviderRef .LocalName ,
96117 Alias : moduleProviderRef .Alias ,
97118 }
119+ if searchMeta .ProviderReferences == nil {
120+ searchMeta .ProviderReferences = make (map [tfsearch.ProviderRef ]tfaddr.Provider )
121+ }
98122 searchMeta .ProviderReferences [searchProviderRef ] = provider
99123 }
100-
101- // Copy provider requirements
102- for provider , constraints := range modMeta .ProviderRequirements {
103- searchMeta .ProviderRequirements [provider ] = constraints
104- }
105124 }
106125
107126 return nil
0 commit comments