Actually, never mind about this. I realized in the meantime that I shouldn't be using `errors.Is` in this case, where I basically want to see if the error is of a certain type. `errors.As` makes more sense for this use case.
On Friday, November 27, 2020 at 2:46:36 PM UTC+1 Arve Knudsen wrote: > Hello! > > I've noticed that errors.Is returns false if you compare two error > instances that are implemented as pointers. I.e., I'm using a struct where > the Error method has a pointer receiver, and when passing struct instance > pointers to errors.Is, it ends up comparing them by pointer address. Please > see my example <https://play.golang.org/p/wSlpWrzP7hH> to see what I mean. > > Is this a bug in errors.Is or is it actually supposed to work this way? It > really took us by surprise, and we ended up having to use errors.As instead > since it does handle this case. > > For reference, I've already made a patch to errors.Is that changes it to > support pointer arguments :) > > Best, > Arve > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/c2ac60e5-d8a5-4e27-a307-97ade8f169fbn%40googlegroups.com.