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:
parent
a915f3f13e
commit
1b8617cef0
|
@ -166,13 +166,21 @@ type ChangeSrc struct {
|
||||||
// to call the corresponding Decode method of that struct rather than working
|
// to call the corresponding Decode method of that struct rather than working
|
||||||
// directly with its embedded Change.
|
// directly with its embedded Change.
|
||||||
func (cs *ChangeSrc) Decode(ty cty.Type) (*Change, error) {
|
func (cs *ChangeSrc) Decode(ty cty.Type) (*Change, error) {
|
||||||
before, err := cs.Before.Decode(ty)
|
var err error
|
||||||
if err != nil {
|
before := cty.NullVal(ty)
|
||||||
return nil, fmt.Errorf("error decoding 'before' value: %s", err)
|
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 len(cs.After) > 0 {
|
||||||
if err != nil {
|
after, err = cs.After.Decode(ty)
|
||||||
return nil, fmt.Errorf("error decoding 'after' value: %s", err)
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("error decoding 'after' value: %s", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return &Change{
|
return &Change{
|
||||||
Action: cs.Action,
|
Action: cs.Action,
|
||||||
|
|
Loading…
Reference in New Issue