diff --git a/src/go/go2go/rewrite.go b/src/go/go2go/rewrite.go index 3f34eb1a8c..0b160dd6fd 100644 --- a/src/go/go2go/rewrite.go +++ b/src/go/go2go/rewrite.go @@ -798,6 +798,9 @@ func (t *translator) translateSelectorExpr(pe *ast.Expr) { if typ == nil { typ = f.Type() } + if pt := typ.Pointer(); pt != nil { + typ = pt.Elem() + } named, ok := typ.(*types.Named) if !ok || len(named.TArgs()) == 0 { return diff --git a/test/gen/g014.go2 b/test/gen/g014.go2 index 0b369a6bc2..8ea1d0e465 100644 --- a/test/gen/g014.go2 +++ b/test/gen/g014.go2 @@ -24,6 +24,10 @@ type S2 struct { V string } +type S3 struct { + *T(int) +} + func main() { var s1 S1 if s1.T.V != 0 { @@ -33,4 +37,8 @@ func main() { if s2.Tint.V != 0 || s2.Tbool.V { panic(s2) } + var s3 S3 + if s3.T != nil { + panic(s3) + } }