don't attempt to decode empty changes values

An empty DynamicValue can't be decoded but indicates no state, so just
return a NullVal.
This commit is contained in:
James Bardin 2018-12-20 13:06:53 -05:00
parent a915f3f13e
commit 1b8617cef0
1 changed files with 14 additions and 6 deletions

View File

@ -166,13 +166,21 @@ type ChangeSrc struct {
// to call the corresponding Decode method of that struct rather than working
// directly with its embedded Change.
func (cs *ChangeSrc) Decode(ty cty.Type) (*Change, error) {
before, err := cs.Before.Decode(ty)
if err != nil {
return nil, fmt.Errorf("error decoding 'before' value: %s", err)
var err error
before := cty.NullVal(ty)
after := cty.NullVal(ty)
if len(cs.Before) > 0 {
before, err = cs.Before.Decode(ty)
if err != nil {
return nil, fmt.Errorf("error decoding 'before' value: %s", err)
}
}
after, err := cs.After.Decode(ty)
if err != nil {
return nil, fmt.Errorf("error decoding 'after' value: %s", err)
if len(cs.After) > 0 {
after, err = cs.After.Decode(ty)
if err != nil {
return nil, fmt.Errorf("error decoding 'after' value: %s", err)
}
}
return &Change{
Action: cs.Action,