Merge pull request #21957 from hashicorp/jbardin/update-hcl2
update hcl2
This commit is contained in:
commit
dfc5afe061
2
go.mod
2
go.mod
|
@ -64,7 +64,7 @@ require (
|
|||
github.com/hashicorp/go-version v1.1.0
|
||||
github.com/hashicorp/golang-lru v0.5.0 // indirect
|
||||
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190618163856-0b64543c968c
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190702185634-5b39d9ff3a9a
|
||||
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590
|
||||
github.com/hashicorp/logutils v1.0.0
|
||||
github.com/hashicorp/memberlist v0.1.0 // indirect
|
||||
|
|
2
go.sum
2
go.sum
|
@ -218,6 +218,8 @@ github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh
|
|||
github.com/hashicorp/hcl2 v0.0.0-20181208003705-670926858200/go.mod h1:ShfpTh661oAaxo7VcNxg0zcZW6jvMa7Moy2oFx7e5dE=
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190618163856-0b64543c968c h1:P96avlEdjyi6kpx6kTbTbuQb5GuZvVTrLK9FWKwTy6A=
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190618163856-0b64543c968c/go.mod h1:FSQTwDi9qesxGBsII2VqhIzKQ4r0bHvBkOczWfD7llg=
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190702185634-5b39d9ff3a9a h1:1KfDwkIXrxrfMpqwuW//ujObiYNuR2DqaETSK2NB8Ug=
|
||||
github.com/hashicorp/hcl2 v0.0.0-20190702185634-5b39d9ff3a9a/go.mod h1:FSQTwDi9qesxGBsII2VqhIzKQ4r0bHvBkOczWfD7llg=
|
||||
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590 h1:2yzhWGdgQUWZUCNK+AoO35V+HTsgEmcM4J9IkArh7PI=
|
||||
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=
|
||||
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
||||
|
|
|
@ -473,8 +473,26 @@ func (e *ConditionalExpr) Value(ctx *hcl.EvalContext) (cty.Value, hcl.Diagnostic
|
|||
falseResult, falseDiags := e.FalseResult.Value(ctx)
|
||||
var diags hcl.Diagnostics
|
||||
|
||||
// Try to find a type that both results can be converted to.
|
||||
resultType, convs := convert.UnifyUnsafe([]cty.Type{trueResult.Type(), falseResult.Type()})
|
||||
var resultType cty.Type
|
||||
convs := make([]convert.Conversion, 2)
|
||||
|
||||
switch {
|
||||
// If either case is a dynamic null value (which would result from a
|
||||
// literal null in the config), we know that it can convert to the expected
|
||||
// type of the opposite case, and we don't need to speculatively reduce the
|
||||
// final result type to DynamicPseudoType.
|
||||
case trueResult.RawEquals(cty.NullVal(cty.DynamicPseudoType)):
|
||||
resultType = falseResult.Type()
|
||||
convs[0] = convert.GetConversionUnsafe(cty.DynamicPseudoType, resultType)
|
||||
case falseResult.RawEquals(cty.NullVal(cty.DynamicPseudoType)):
|
||||
resultType = trueResult.Type()
|
||||
convs[1] = convert.GetConversionUnsafe(cty.DynamicPseudoType, resultType)
|
||||
|
||||
default:
|
||||
// Try to find a type that both results can be converted to.
|
||||
resultType, convs = convert.UnifyUnsafe([]cty.Type{trueResult.Type(), falseResult.Type()})
|
||||
}
|
||||
|
||||
if resultType == cty.NilType {
|
||||
return cty.DynamicVal, hcl.Diagnostics{
|
||||
{
|
||||
|
|
|
@ -326,7 +326,7 @@ github.com/hashicorp/hcl/hcl/scanner
|
|||
github.com/hashicorp/hcl/hcl/strconv
|
||||
github.com/hashicorp/hcl/json/scanner
|
||||
github.com/hashicorp/hcl/json/token
|
||||
# github.com/hashicorp/hcl2 v0.0.0-20190618163856-0b64543c968c
|
||||
# github.com/hashicorp/hcl2 v0.0.0-20190702185634-5b39d9ff3a9a
|
||||
github.com/hashicorp/hcl2/hcl
|
||||
github.com/hashicorp/hcl2/hcl/hclsyntax
|
||||
github.com/hashicorp/hcl2/hcldec
|
||||
|
|
Loading…
Reference in New Issue