The second one is pretty intentional - it'd be annoying it were downright impossible.
The first and third one fails on go vet. The first one also fails to compile if you never read from err in the entire function.
The first and third one fails on go vet. The first one also fails to compile if you never read from err in the entire function.
https://github.com/kisielk/errcheck
In any case, it’s trivial to detect via static analysis.