Description
Hi, I was wondering if you would consider adding a new option which would apply the AllowUnexported
Option to all types and would not require a slice of input like the current AllowUnexported
function does?
My use case is that I have a lot of tests which use the github.com/stretchr/testify
package, which ultimately uses reflect.DeepEqual
for comparing two objects, that break in Go 1.9 because they try to compare structs which contain time.Time
fields. Admittedly, I could define an Equal
method for all such structs but that doesn't seem to address the root of the problem to me, which is that I would like reflect.DeepEqual
functionality (which compares all fields, both private and public) with the caveat that I would like to check if the types being compared have an Equal
method for testing equality. Furthermore, while for structs I could pass the structs being compared to AllowUnexported
, I would like the same behavior for composite types as well (e.g. maps and slices) which is not supported by AllowUnexported
currently since it specifically checks that the types of the objects passed to it are structs.
I would be more than happy to put up a PR for such an Option
, a first look at the code leads me to believe that we could define an additional field on state
indicating that we want to always check private fields. Then, when set to true, we would always extract a struct's fields in tryExporting
. With that being said, I got the impression that you might be opposed to such an Option
given the warnings for AllowUnexported
already and so I thought it better to open an issue first where we could discuss.
Thanks!