// be incomplete, but that's assumed to be okay because the eventual call
// to Decode will produce error diagnostics anyway.
func Variables(body hcl.Body, spec Spec) []hcl.Traversal {
+ var vars []hcl.Traversal
schema := ImpliedSchema(spec)
-
content, _, _ := body.PartialContent(schema)
- var vars []hcl.Traversal
-
if vs, ok := spec.(specNeedingVariables); ok {
vars = append(vars, vs.variablesNeeded(content)...)
}
- spec.visitSameBodyChildren(func(s Spec) {
+
+ var visitFn visitFunc
+ visitFn = func(s Spec) {
if vs, ok := s.(specNeedingVariables); ok {
vars = append(vars, vs.variablesNeeded(content)...)
}
- })
+ s.visitSameBodyChildren(visitFn)
+ }
+ spec.visitSameBodyChildren(visitFn)
return vars
}