That code was initially auto-generated, but it has a minor problem: it did F().(T) even in cases where F() already returns T. This is not a big problem, but since this optimization is so simple to implement in the compiler, maybe we can do it?
What version of Go are you using (go version)?
$ go version
go version devel +5c7748dc9d Mon Aug 10 23:44:58 2020 +0000 linux/amd64
Does this issue reproduce with the latest release?
What operating system and processor architecture are you using (go env)?
It does, although nil checking you could do in a cheaper way than calling assertI2I. Although probably not much cheaper - assertI2I does the nil check and the identity-interface-conversion check first thing.