skip provider resolution when there are errors

If there are errors loading the configuration, don't try to resolve the
provider names, as those names may not even be valid.
This commit is contained in:
James Bardin 2021-12-06 14:28:34 -05:00
parent 16800d1305
commit 0771a214d8
5 changed files with 14 additions and 3 deletions

View File

@ -23,9 +23,13 @@ func BuildConfig(root *Module, walker ModuleWalker) (*Config, hcl.Diagnostics) {
cfg.Root = cfg // Root module is self-referential.
cfg.Children, diags = buildChildModules(cfg, walker)
// Now that the config is built, we can connect the provider names to all
// the known types for validation.
cfg.resolveProviderTypes()
// Skip provider resolution if there are any errors, since the provider
// configurations themselves may not be valid.
if !diags.HasErrors() {
// Now that the config is built, we can connect the provider names to all
// the known types for validation.
cfg.resolveProviderTypes()
}
diags = append(diags, validateProviderConfigs(nil, cfg, false)...)

View File

@ -0,0 +1 @@
main.tf:1,1-20: Invalid provider local name; crash_es is an invalid provider local name

View File

@ -0,0 +1,3 @@
module "mod" {
source = "./mod"
}

View File

@ -0,0 +1,2 @@
provider "crash_es" {
}

View File

@ -0,0 +1 @@
Empty provider configuration blocks are not required