From: Robert Griesemer Date: Thu, 3 Nov 2016 17:47:44 +0000 (-0700) Subject: go/internal/gcimporter: backport changes from x/tools/go/gcimporter15 X-Git-Tag: go1.8beta1~336 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=18f0e88103aaa429e92564312b4ee966dcb77102;p=gostls13.git 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 Run-TryBot: Robert Griesemer Reviewed-by: Alan Donovan --- 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 }