go version go1.11.2 linux/amd64
https://play.golang.org/p/kTvcsWkJeaZ
package main
type T1 struct {
}
func (T1) Hello(T1) {
}
type T2 struct {
    T1
}
func (T2) Hello(T2) {
}
type T3 T2
type T4 = T2
func main() {
    var v_T3 T3
    v_T3.Hello(v_T3)
    var v_T4 T4
    v_T4.Hello(v_T4)
}
prog.go:21:12: cannot use v_T3 (type T3) as type T1 in argument to v_T3.T1.Hello
row 21:I expect call v_T3.Hello but the actual call v_T3.T1.Hello
row 23:it's ok