mirror of
https://github.com/golang/go
synced 2024-11-25 01:08:02 -07:00
gc: don't emit pkgpath for error type.
Fixes #2660. R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5557060
This commit is contained in:
parent
bb7eca177a
commit
ee09a8cd9f
@ -357,7 +357,7 @@ dextratype(Sym *sym, int off, Type *t, int ptroff)
|
||||
s = sym;
|
||||
if(t->sym) {
|
||||
ot = dgostringptr(s, ot, t->sym->name);
|
||||
if(t != types[t->etype])
|
||||
if(t != types[t->etype] && t != errortype)
|
||||
ot = dgopkgpath(s, ot, t->sym->pkg);
|
||||
else
|
||||
ot = dgostringptr(s, ot, nil);
|
||||
|
@ -1364,8 +1364,19 @@ func TestFieldByName(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestImportPath(t *testing.T) {
|
||||
if path := TypeOf(&base64.Encoding{}).Elem().PkgPath(); path != "encoding/base64" {
|
||||
t.Errorf(`TypeOf(&base64.Encoding{}).Elem().PkgPath() = %q, want "encoding/base64"`, path)
|
||||
tests := []struct {
|
||||
t Type
|
||||
path string
|
||||
}{
|
||||
{TypeOf(&base64.Encoding{}).Elem(), "encoding/base64"},
|
||||
{TypeOf(uint(0)), ""},
|
||||
{TypeOf(map[string]int{}), ""},
|
||||
{TypeOf((*error)(nil)).Elem(), ""},
|
||||
}
|
||||
for _, test := range tests {
|
||||
if path := test.t.PkgPath(); path != test.path {
|
||||
t.Errorf("%v.PkgPath() = %q, want %q", test.t, path, test.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ type Type interface {
|
||||
|
||||
// PkgPath returns the type's package path.
|
||||
// The package path is a full package import path like "encoding/base64".
|
||||
// PkgPath returns an empty string for unnamed types.
|
||||
// PkgPath returns an empty string for unnamed or predeclared types.
|
||||
PkgPath() string
|
||||
|
||||
// Size returns the number of bytes needed to store
|
||||
|
Loading…
Reference in New Issue
Block a user