Reserve state and plan keywords in test files (#33846)

pull/33836/head^2
Liam Cervante 3 years ago committed by GitHub
parent 80f10a47ee
commit 8912396504
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -90,6 +90,7 @@ func ParseRef(traversal hcl.Traversal) (*Reference, tfdiags.Diagnostics) {
// scope and so should use this function to retrieve references.
func ParseRefFromTestingScope(traversal hcl.Traversal) (*Reference, tfdiags.Diagnostics) {
root := traversal.RootName()
rootRange := traversal[0].SourceRange()
var diags tfdiags.Diagnostics
var reference *Reference
@ -119,6 +120,17 @@ func ParseRefFromTestingScope(traversal hcl.Traversal) (*Reference, tfdiags.Diag
Remaining: remain,
}
diags = runDiags
case "plan", "state":
// These names are all pre-emptively reserved in the hope of landing
// some version of referencing the plan and state files in test
// assertions.
diags = diags.Append(&hcl.Diagnostic{
Severity: hcl.DiagError,
Summary: "Reserved symbol name",
Detail: fmt.Sprintf("The symbol name %q is reserved for use in a future Terraform version. If you are using a provider that already uses this as a resource type name, add the prefix \"resource.\" to force interpretation as a resource type name.", root),
Subject: rootRange.Ptr(),
})
return nil, diags
}
if reference != nil {

Loading…
Cancel
Save