PK       ! .R;®ë   ë     a.gonu „[µü¤        // Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package a

type S struct {
	x int
}

func V() interface{} {
	return S{0}
}
PK       ! í¥°  °    main.gonu „[µü¤        // Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"fmt"
	"os"

	"./a"
	"./b"
)

func main() {
	// Make sure the reflect information for a.S is in the executable.
	_ = a.V()

	b1 := b.F1()
	b2 := b.F2()
	if b1 != b2 {
		fmt.Printf("%q (from b.F1()) != %q (from b.F2())\n", b1, b2)
		os.Exit(1)
	}
}
PK       ! çx³k¨  ¨    b.gonu „[µü¤        // Copyright 2017 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package b

import "reflect"

type X int

func F1() string {
	type x X

	s := struct {
		*x
	}{nil}
	v := reflect.TypeOf(s)
	return v.Field(0).PkgPath
}

func F2() string {
	type y X

	s := struct {
		*y
	}{nil}
	v := reflect.TypeOf(s)
	return v.Field(0).PkgPath
}
PK         ! .R;®ë   ë                   a.gonu „[µü¤        PK         ! í¥°  °                main.gonu „[µü¤        PK         ! çx³k¨  ¨                b.gonu „[µü¤        PK      Ï   â    