Make it possible to detect field changes when mixedInstancePolicy is removed

This commit is contained in:
AkiraFukushima 2021-04-18 17:51:18 +09:00
parent 27f05ca939
commit 9a5f408f48
No known key found for this signature in database
GPG Key ID: B6E51BAC4DE1A957
1 changed files with 5 additions and 3 deletions

View File

@ -302,11 +302,16 @@ func buildChangeList(a, e, changes Task) ([]change, error) {
} }
fieldValC := valC.Field(i) fieldValC := valC.Field(i)
fieldValE := valE.Field(i)
fieldValA := valA.Field(i)
changed := true changed := true
switch fieldValC.Kind() { switch fieldValC.Kind() {
case reflect.Ptr, reflect.Interface, reflect.Slice, reflect.Map: case reflect.Ptr, reflect.Interface, reflect.Slice, reflect.Map:
changed = !fieldValC.IsNil() changed = !fieldValC.IsNil()
if fieldValC.IsNil() && !fieldValA.IsNil() && fieldValE.IsNil() {
changed = true
}
case reflect.String: case reflect.String:
changed = fieldValC.Interface().(string) != "" changed = fieldValC.Interface().(string) != ""
@ -320,12 +325,9 @@ func buildChangeList(a, e, changes Task) ([]change, error) {
continue continue
} }
fieldValE := valE.Field(i)
description := "" description := ""
ignored := false ignored := false
if fieldValE.CanInterface() { if fieldValE.CanInterface() {
fieldValA := valA.Field(i)
switch fieldValE.Interface().(type) { switch fieldValE.Interface().(type) {
//case SimpleUnit: //case SimpleUnit: