in block.go [87:103]
func zeroBlock(b Block) {
nb, _ := wrapBlock(b.Config(), b.HclBlock())
v := reflect.ValueOf(b).Elem()
vnb := reflect.ValueOf(nb).Elem()
for i := 0; i < v.NumField(); i++ {
field := v.Field(i)
fieldNb := vnb.Field(i)
if !field.CanSet() {
continue
}
tag := v.Type().Field(i).Tag
if _, ok := tag.Lookup("hcl"); ok || strings.Contains(string(tag), "attribute") {
field.Set(fieldNb)
}
}
}