Go 1.6 introduced a breaking change in "reflect" package(golang issue #12367).
This broke dnode.Scrubber.Scrub method that was using reflect.Value.Interface
method to collect callbacks. Since go1.6 you cannot get an interface to private
embedded structs so, if you passed embedded struct to Scrub method, it would
panic.
This commit refactors Scrub method and makes it valid in >=go1.6.
Additionally, there is a minor fix which discards JSON field tag options when
they are provided.
Go 1.6 introduced a breaking change in "reflect" package(golang issue #12367). This broke dnode.Scrubber.Scrub method that was using reflect.Value.Interface method to collect callbacks. Since go1.6 you cannot get an interface to private embedded structs so, if you passed embedded struct to Scrub method, it would panic.
This commit refactors Scrub method and makes it valid in >=go1.6.
Additionally, there is a minor fix which discards JSON field tag options when they are provided.