hclwrite: Fix a bug that Block.open/close positions were not recorded in parser
While implementing Block.SetLabels(), I found a new hclwrite parser bug. The NewBlock() method records positions of TokenOBrace / TokenCBrace. Nevertheless when generating blocks via hclwrite.ParseConfig(), they were not recorded. The position of TokenOBrace is needed for Block.SetLabels(), so I also fixed this existing bug.
This commit is contained in:
parent
c3cbe9a9e2
commit
143a545916
@ -329,7 +329,7 @@ func parseBlock(nativeBlock *hclsyntax.Block, from, leadComments, lineComments,
|
|||||||
|
|
||||||
before, oBrace, from := from.Partition(nativeBlock.OpenBraceRange)
|
before, oBrace, from := from.Partition(nativeBlock.OpenBraceRange)
|
||||||
children.AppendUnstructuredTokens(before.Tokens())
|
children.AppendUnstructuredTokens(before.Tokens())
|
||||||
children.AppendUnstructuredTokens(oBrace.Tokens())
|
block.open = children.AppendUnstructuredTokens(oBrace.Tokens())
|
||||||
|
|
||||||
// We go a bit out of order here: we go hunting for the closing brace
|
// We go a bit out of order here: we go hunting for the closing brace
|
||||||
// so that we have a delimited body, but then we'll deal with the body
|
// so that we have a delimited body, but then we'll deal with the body
|
||||||
@ -342,7 +342,7 @@ func parseBlock(nativeBlock *hclsyntax.Block, from, leadComments, lineComments,
|
|||||||
children.AppendNode(body)
|
children.AppendNode(body)
|
||||||
children.AppendUnstructuredTokens(after.Tokens())
|
children.AppendUnstructuredTokens(after.Tokens())
|
||||||
|
|
||||||
children.AppendUnstructuredTokens(cBrace.Tokens())
|
block.close = children.AppendUnstructuredTokens(cBrace.Tokens())
|
||||||
|
|
||||||
// stragglers
|
// stragglers
|
||||||
children.AppendUnstructuredTokens(from.Tokens())
|
children.AppendUnstructuredTokens(from.Tokens())
|
||||||
|
Loading…
Reference in New Issue
Block a user