diff --git a/internal/tfdiags/contextual.go b/internal/tfdiags/contextual.go index 8529222549..57c6a95fc5 100644 --- a/internal/tfdiags/contextual.go +++ b/internal/tfdiags/contextual.go @@ -42,19 +42,19 @@ func (diags Diagnostics) InConfigBody(body hcl.Body, addr string) Diagnostics { ret := make(Diagnostics, len(diags)) for i, srcDiag := range diags { - if cd, isCD := srcDiag.(contextualFromConfigBody); isCD { - ret[i] = cd.ElaborateFromConfigBody(body, addr) - } else if override, isOverride := srcDiag.(overriddenDiagnostic); isOverride { - if cd, isCD := override.original.(contextualFromConfigBody); isCD { + switch diag := srcDiag.(type) { + case contextualFromConfigBody: + ret[i] = diag.ElaborateFromConfigBody(body, addr) + case overriddenDiagnostic: + if cd, isCD := diag.original.(contextualFromConfigBody); isCD { newOriginal := cd.ElaborateFromConfigBody(body, addr) ret[i] = &overriddenDiagnostic{ original: newOriginal, - severity: override.severity, - extra: override.extra, + severity: diag.severity, + extra: diag.extra, } } - - } else { + default: ret[i] = srcDiag } }