diff --git a/terraform/eval_context_builtin.go b/terraform/eval_context_builtin.go index 33a71b5dd9..efc7d04fe4 100644 --- a/terraform/eval_context_builtin.go +++ b/terraform/eval_context_builtin.go @@ -12,10 +12,20 @@ import ( // BuiltinEvalContext is an EvalContext implementation that is used by // Terraform by default. type BuiltinEvalContext struct { - PathValue []string + // PathValue is the Path that this context is operating within. + PathValue []string + + // Interpolater setting below affect the interpolation of variables. + // + // The InterpolaterVars are the exact value for ${var.foo} values. + // The map is shared between all contexts and is a mapping of + // PATH to KEY to VALUE. Because it is shared by all contexts as well + // as the Interpolater itself, it is protected by InterpolaterVarLock + // which must be locked during any access to the map. Interpolater *Interpolater InterpolaterVars map[string]map[string]string InterpolaterVarLock *sync.Mutex + Hooks []Hook InputValue UIInput Providers map[string]ResourceProviderFactory