Annoying that the various Go linters I have installed (`go vet`, `golangci-lint`, `gosec`) don't catch "possible use of pointer before nil-check" - you'd think it would be an obvious case for those to handle.
I'd imagine it'd be one of the "disabled by default" in `golangci-lint`, for example - helpful for when you're doing an in-depth review of the code but probably not something you want running on every CI invocation.
One requires you to handle the possibly-nil case in order to access the pointer, the other expects you to remember to check every time.
The following is completely legal, and results in a runtime error:
The following is not, and results in a compile-time error: