command/format: Fix rendering of unknown elements in set/map/list

This commit is contained in:
Radek Simko 2019-01-21 15:02:59 +00:00
parent 98cc99e632
commit c5ba7469be
No known key found for this signature in database
GPG Key ID: 1F1C84FE689A88D7
1 changed files with 7 additions and 2 deletions

View File

@ -377,6 +377,9 @@ func (p *blockBodyDiffPrinter) writeNestedBlockDiffs(name string, blockS *config
var action plans.Action var action plans.Action
var oldValue, newValue cty.Value var oldValue, newValue cty.Value
switch { switch {
case !val.IsKnown():
action = plans.Update
newValue = val
case !old.HasElement(val).True(): case !old.HasElement(val).True():
action = plans.Create action = plans.Create
oldValue = cty.NullVal(val.Type()) oldValue = cty.NullVal(val.Type())
@ -697,7 +700,7 @@ func (p *blockBodyDiffPrinter) writeValueDiff(old, new cty.Value, indent int, pa
for it := new.ElementIterator(); it.Next(); { for it := new.ElementIterator(); it.Next(); {
_, val := it.Element() _, val := it.Element()
allVals = append(allVals, val) allVals = append(allVals, val)
if old.HasElement(val).False() { if val.IsKnown() && old.HasElement(val).False() {
addedVals = append(addedVals, val) addedVals = append(addedVals, val)
} }
} }
@ -726,6 +729,8 @@ func (p *blockBodyDiffPrinter) writeValueDiff(old, new cty.Value, indent int, pa
var action plans.Action var action plans.Action
switch { switch {
case !val.IsKnown():
action = plans.Update
case added.HasElement(val).True(): case added.HasElement(val).True():
action = plans.Create action = plans.Create
case removed.HasElement(val).True(): case removed.HasElement(val).True():
@ -1062,7 +1067,7 @@ func ctyObjectSimilarity(old, new cty.Value) float64 {
} }
func ctyEqualWithUnknown(old, new cty.Value) bool { func ctyEqualWithUnknown(old, new cty.Value) bool {
if !old.IsKnown() || !new.IsKnown() { if !old.IsWhollyKnown() || !new.IsWhollyKnown() {
return false return false
} }
return old.Equals(new).True() return old.Equals(new).True()