diff --git a/terraform/module_dependencies.go b/terraform/module_dependencies.go index 83933f6466..afae1a3014 100644 --- a/terraform/module_dependencies.go +++ b/terraform/module_dependencies.go @@ -94,7 +94,11 @@ func configTreeConfigDependencies(root *configs.Config, inheritProviders map[str discoConstraints = discovery.NewConstraints(pCfg.Version.Required) } if existing, exists := providers[fqn]; exists { - existing.Constraints = existing.Constraints.Append(discoConstraints) + constraints := existing.Constraints.Append(discoConstraints) + providers[fqn] = moduledeps.ProviderDependency{ + Constraints: constraints, + Reason: moduledeps.ProviderDependencyExplicit, + } } else { providers[fqn] = moduledeps.ProviderDependency{ Constraints: discoConstraints, diff --git a/terraform/module_dependencies_test.go b/terraform/module_dependencies_test.go index a33569f29b..9834d3c7c7 100644 --- a/terraform/module_dependencies_test.go +++ b/terraform/module_dependencies_test.go @@ -42,7 +42,7 @@ func TestModuleTreeDependencies(t *testing.T) { Name: "root", Providers: moduledeps.Providers{ addrs.NewLegacyProvider("foo"): moduledeps.ProviderDependency{ - Constraints: discovery.ConstraintStr(">=1.0.0").MustParse(), + Constraints: discovery.ConstraintStr(">=1.0.0,>=2.0.0").MustParse(), Reason: moduledeps.ProviderDependencyExplicit, }, }, @@ -213,9 +213,10 @@ func TestModuleTreeDependencies(t *testing.T) { Name: "root", Providers: moduledeps.Providers{ addrs.NewLegacyProvider("foo"): moduledeps.ProviderDependency{ - Constraints: discovery.ConstraintStr(">=1.0.0").MustParse(), + Constraints: discovery.ConstraintStr(">=1.0.0,>=2.0.0").MustParse(), Reason: moduledeps.ProviderDependencyExplicit, }, + addrs.NewLegacyProvider("baz"): moduledeps.ProviderDependency{ Constraints: discovery.AllVersions, Reason: moduledeps.ProviderDependencyFromState,