vendor: go get github.com/hashicorp/hcl2@master
This includes a fix for the parsing of object for expressions in newline- sensitive contexts like block bodies. It also includes a change to the JSON syntax decoder that cause it to consider an explicit null to be equivalent to a property not being set at all when interpreting a property value as a nested block. (It was previously doing tha only when interpreting the property value as an attribute value.)
This commit is contained in:
parent
b5fd9fa1fd
commit
6fa1ff5de7
2
go.mod
2
go.mod
|
@ -60,7 +60,7 @@ require (
|
||||||
github.com/hashicorp/go-version v1.1.0
|
github.com/hashicorp/go-version v1.1.0
|
||||||
github.com/hashicorp/golang-lru v0.5.0 // indirect
|
github.com/hashicorp/golang-lru v0.5.0 // indirect
|
||||||
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f
|
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f
|
||||||
github.com/hashicorp/hcl2 v0.0.0-20190214011454-504b92060753
|
github.com/hashicorp/hcl2 v0.0.0-20190226234159-7e26f2f34612
|
||||||
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590
|
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590
|
||||||
github.com/hashicorp/logutils v1.0.0
|
github.com/hashicorp/logutils v1.0.0
|
||||||
github.com/hashicorp/memberlist v0.1.0 // indirect
|
github.com/hashicorp/memberlist v0.1.0 // indirect
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -198,8 +198,8 @@ github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ
|
||||||
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f h1:UdxlrJz4JOnY8W+DbLISwf2B8WXEolNRA8BGCwI9jws=
|
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f h1:UdxlrJz4JOnY8W+DbLISwf2B8WXEolNRA8BGCwI9jws=
|
||||||
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w=
|
github.com/hashicorp/hcl v0.0.0-20170504190234-a4b07c25de5f/go.mod h1:oZtUIOe8dh44I2q6ScRibXws4Ajl+d+nod3AaR9vL5w=
|
||||||
github.com/hashicorp/hcl2 v0.0.0-20181208003705-670926858200/go.mod h1:ShfpTh661oAaxo7VcNxg0zcZW6jvMa7Moy2oFx7e5dE=
|
github.com/hashicorp/hcl2 v0.0.0-20181208003705-670926858200/go.mod h1:ShfpTh661oAaxo7VcNxg0zcZW6jvMa7Moy2oFx7e5dE=
|
||||||
github.com/hashicorp/hcl2 v0.0.0-20190214011454-504b92060753 h1:8wCARxVLkMdcvxSaI2F/zL31FLQuAJkzIkayl5br8TY=
|
github.com/hashicorp/hcl2 v0.0.0-20190226234159-7e26f2f34612 h1:6r7kHL9FVohHX5vd/qvoLLV+BAbHjZKu0kjfgoT9CjE=
|
||||||
github.com/hashicorp/hcl2 v0.0.0-20190214011454-504b92060753/go.mod h1:HtEzazM5AZ9fviNEof8QZB4T1Vz9UhHrGhnMPzl//Ek=
|
github.com/hashicorp/hcl2 v0.0.0-20190226234159-7e26f2f34612/go.mod h1:HtEzazM5AZ9fviNEof8QZB4T1Vz9UhHrGhnMPzl//Ek=
|
||||||
github.com/hashicorp/hil v0.0.0-20190212112733-ab17b08d6590 h1:2yzhWGdgQUWZUCNK+AoO35V+HTsgEmcM4J9IkArh7PI=
|
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/hil v0.0.0-20190212112733-ab17b08d6590/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=
|
||||||
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y=
|
||||||
|
|
|
@ -1242,7 +1242,13 @@ func (p *parser) parseObjectCons() (Expression, hcl.Diagnostics) {
|
||||||
panic("parseObjectCons called without peeker pointing to open brace")
|
panic("parseObjectCons called without peeker pointing to open brace")
|
||||||
}
|
}
|
||||||
|
|
||||||
if forKeyword.TokenMatches(p.Peek()) {
|
// We must temporarily stop looking at newlines here while we check for
|
||||||
|
// a "for" keyword, since for expressions are _not_ newline-sensitive,
|
||||||
|
// even though object constructors are.
|
||||||
|
p.PushIncludeNewlines(false)
|
||||||
|
isFor := forKeyword.TokenMatches(p.Peek())
|
||||||
|
p.PopIncludeNewlines()
|
||||||
|
if isFor {
|
||||||
return p.finishParsingForExpr(open)
|
return p.finishParsingForExpr(open)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1377,6 +1383,8 @@ func (p *parser) parseObjectCons() (Expression, hcl.Diagnostics) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *parser) finishParsingForExpr(open Token) (Expression, hcl.Diagnostics) {
|
func (p *parser) finishParsingForExpr(open Token) (Expression, hcl.Diagnostics) {
|
||||||
|
p.PushIncludeNewlines(false)
|
||||||
|
defer p.PopIncludeNewlines()
|
||||||
introducer := p.Read()
|
introducer := p.Read()
|
||||||
if !forKeyword.TokenMatches(introducer) {
|
if !forKeyword.TokenMatches(introducer) {
|
||||||
// Should never happen if callers are behaving
|
// Should never happen if callers are behaving
|
||||||
|
|
|
@ -266,6 +266,9 @@ func (b *body) unpackBlock(v node, typeName string, typeRange *hcl.Range, labels
|
||||||
copy(labelR, labelRanges)
|
copy(labelR, labelRanges)
|
||||||
|
|
||||||
switch tv := v.(type) {
|
switch tv := v.(type) {
|
||||||
|
case *nullVal:
|
||||||
|
// There is no block content, e.g the value is null.
|
||||||
|
return
|
||||||
case *objectVal:
|
case *objectVal:
|
||||||
// Single instance of the block
|
// Single instance of the block
|
||||||
*blocks = append(*blocks, &hcl.Block{
|
*blocks = append(*blocks, &hcl.Block{
|
||||||
|
@ -324,6 +327,8 @@ func (b *body) collectDeepAttrs(v node, labelName *string) ([]*objectAttr, hcl.D
|
||||||
var attrs []*objectAttr
|
var attrs []*objectAttr
|
||||||
|
|
||||||
switch tv := v.(type) {
|
switch tv := v.(type) {
|
||||||
|
case *nullVal:
|
||||||
|
// If a value is null, then we don't return any attributes or return an error.
|
||||||
|
|
||||||
case *objectVal:
|
case *objectVal:
|
||||||
attrs = append(attrs, tv.Attrs...)
|
attrs = append(attrs, tv.Attrs...)
|
||||||
|
|
|
@ -307,7 +307,7 @@ github.com/hashicorp/hcl/hcl/scanner
|
||||||
github.com/hashicorp/hcl/hcl/strconv
|
github.com/hashicorp/hcl/hcl/strconv
|
||||||
github.com/hashicorp/hcl/json/scanner
|
github.com/hashicorp/hcl/json/scanner
|
||||||
github.com/hashicorp/hcl/json/token
|
github.com/hashicorp/hcl/json/token
|
||||||
# github.com/hashicorp/hcl2 v0.0.0-20190214011454-504b92060753
|
# github.com/hashicorp/hcl2 v0.0.0-20190226234159-7e26f2f34612
|
||||||
github.com/hashicorp/hcl2/hcl
|
github.com/hashicorp/hcl2/hcl
|
||||||
github.com/hashicorp/hcl2/hcl/hclsyntax
|
github.com/hashicorp/hcl2/hcl/hclsyntax
|
||||||
github.com/hashicorp/hcl2/hcldec
|
github.com/hashicorp/hcl2/hcldec
|
||||||
|
|
Loading…
Reference in New Issue