aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2016-11-03 10:47:44 -0700
committerRobert Griesemer <gri@golang.org>2016-11-03 18:10:35 +0000
commit18f0e88103aaa429e92564312b4ee966dcb77102 (patch)
tree061b3a7be6a6bd53a9d69d96020037487af1ef28 /src
parent322436b78c2b0a8dd346f460df6fc00f49adba8e (diff)
downloadgo-18f0e88103aaa429e92564312b4ee966dcb77102.tar.xz
go/internal/gcimporter: backport changes from x/tools/go/gcimporter15
See https://go-review.googlesource.com/32581. This makes x/tools/go/gcimporter15/bimport.go a close copy again and the importer more robust. Change-Id: If96ad6acd611878b7dfa6a13d005d847ece82ab6 Reviewed-on: https://go-review.googlesource.com/32647 TryBot-Result: Gobot Gobot <gobot@golang.org> Run-TryBot: Robert Griesemer <gri@golang.org> Reviewed-by: Alan Donovan <adonovan@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/go/internal/gcimporter/bimport.go16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/go/internal/gcimporter/bimport.go b/src/go/internal/gcimporter/bimport.go
index a8e4a7e718..574b71dcb6 100644
--- a/src/go/internal/gcimporter/bimport.go
+++ b/src/go/internal/gcimporter/bimport.go
@@ -278,11 +278,13 @@ func (p *importer) obj(tag int) {
p.declare(types.NewFunc(pos, pkg, name, sig))
case aliasTag:
- aliasPos := p.pos()
- aliasName := p.string()
- pkg, name := p.qualifiedName()
- obj := pkg.Scope().Lookup(name)
- p.declare(types.NewAlias(aliasPos, p.pkgList[0], aliasName, obj))
+ pos := p.pos()
+ name := p.string()
+ var orig types.Object
+ if pkg, name := p.qualifiedName(); pkg != nil {
+ orig = pkg.Scope().Lookup(name)
+ }
+ p.declare(types.NewAlias(pos, p.pkgList[0], name, orig))
default:
errorf("unexpected object tag %d", tag)
@@ -343,7 +345,9 @@ var (
func (p *importer) qualifiedName() (pkg *types.Package, name string) {
name = p.string()
- pkg = p.pkg()
+ if name != "" {
+ pkg = p.pkg()
+ }
return
}