Merge pull request #24249 from hashicorp/config-package-deletions

Deletions in the config package
This commit is contained in:
Pam Selle 2020-03-02 16:11:53 -05:00 committed by GitHub
commit 430b7c8da6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 88 deletions

View File

@ -29,10 +29,6 @@ func (r varRange) SourceRange() tfdiags.SourceRange {
return r.rng
}
func makeVarRange(rng tfdiags.SourceRange) varRange {
return varRange{rng}
}
// CountVariable is a variable for referencing information about
// the count.
type CountVariable struct {

View File

@ -1,54 +0,0 @@
package config
import (
"fmt"
"github.com/hashicorp/hil/ast"
)
// stringSliceToVariableValue converts a string slice into the value
// required to be returned from interpolation functions which return
// TypeList.
func stringSliceToVariableValue(values []string) []ast.Variable {
output := make([]ast.Variable, len(values))
for index, value := range values {
output[index] = ast.Variable{
Type: ast.TypeString,
Value: value,
}
}
return output
}
// listVariableSliceToVariableValue converts a list of lists into the value
// required to be returned from interpolation functions which return TypeList.
func listVariableSliceToVariableValue(values [][]ast.Variable) []ast.Variable {
output := make([]ast.Variable, len(values))
for index, value := range values {
output[index] = ast.Variable{
Type: ast.TypeList,
Value: value,
}
}
return output
}
func listVariableValueToStringSlice(values []ast.Variable) ([]string, error) {
output := make([]string, len(values))
for index, value := range values {
if value.Type != ast.TypeString {
return []string{}, fmt.Errorf("list has non-string element (%T)", value.Type.String())
}
output[index] = value.Value.(string)
}
return output, nil
}
// Funcs used to return a mapping of built-in functions for configuration.
//
// However, these function implementations are no longer used. To find the
// current function implementations, refer to ../lang/functions.go instead.
func Funcs() map[string]ast.Function {
return nil
}

View File

@ -1,11 +0,0 @@
package config
import (
"github.com/hashicorp/hil/ast"
)
type noopNode struct{}
func (n *noopNode) Accept(ast.Visitor) ast.Node { return n }
func (n *noopNode) Pos() ast.Pos { return ast.Pos{} }
func (n *noopNode) Type(ast.Scope) (ast.Type, error) { return ast.TypeString, nil }

View File

@ -162,7 +162,12 @@ func (r *RawConfig) Interpolate(vs map[string]ast.Variable) error {
r.lock.Lock()
defer r.lock.Unlock()
config := langEvalConfig(vs)
// Create the evaluation configuration we use to execute
config := &hil.EvalConfig{
GlobalScope: &ast.BasicScope{
VarMap: vs,
},
}
return r.interpolate(func(root ast.Node) (interface{}, error) {
// None of the variables we need are computed, meaning we should
// be able to properly evaluate.
@ -399,21 +404,3 @@ type gobRawConfig struct {
Key string
Raw map[string]interface{}
}
// langEvalConfig returns the evaluation configuration we use to execute.
//
// The interpolation functions are no longer available here, because this
// codepath is no longer used. Instead, see ../lang/functions.go .
func langEvalConfig(vs map[string]ast.Variable) *hil.EvalConfig {
funcMap := make(map[string]ast.Function)
for k, v := range Funcs() {
funcMap[k] = v
}
return &hil.EvalConfig{
GlobalScope: &ast.BasicScope{
VarMap: vs,
FuncMap: funcMap,
},
}
}