From c5ba7469beaa6d4db1182496fb2fba6be0f23274 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Mon, 21 Jan 2019 15:02:59 +0000 Subject: [PATCH] command/format: Fix rendering of unknown elements in set/map/list --- command/format/diff.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/command/format/diff.go b/command/format/diff.go index d816e17f1..d88a80147 100644 --- a/command/format/diff.go +++ b/command/format/diff.go @@ -377,6 +377,9 @@ func (p *blockBodyDiffPrinter) writeNestedBlockDiffs(name string, blockS *config var action plans.Action var oldValue, newValue cty.Value switch { + case !val.IsKnown(): + action = plans.Update + newValue = val case !old.HasElement(val).True(): action = plans.Create 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(); { _, val := it.Element() allVals = append(allVals, val) - if old.HasElement(val).False() { + if val.IsKnown() && old.HasElement(val).False() { addedVals = append(addedVals, val) } } @@ -726,6 +729,8 @@ func (p *blockBodyDiffPrinter) writeValueDiff(old, new cty.Value, indent int, pa var action plans.Action switch { + case !val.IsKnown(): + action = plans.Update case added.HasElement(val).True(): action = plans.Create case removed.HasElement(val).True(): @@ -1062,7 +1067,7 @@ func ctyObjectSimilarity(old, new cty.Value) float64 { } func ctyEqualWithUnknown(old, new cty.Value) bool { - if !old.IsKnown() || !new.IsKnown() { + if !old.IsWhollyKnown() || !new.IsWhollyKnown() { return false } return old.Equals(new).True()