Commit 09f6a491 authored by James Whitehead's avatar James Whitehead Committed by Robert Griesemer

exp/types: Use build.FindTree in GcImporter

Fixes #2932

R=gri
CC=golang-dev
https://golang.org/cl/5654046
parent a0acdd21
...@@ -11,12 +11,12 @@ import ( ...@@ -11,12 +11,12 @@ import (
"errors" "errors"
"fmt" "fmt"
"go/ast" "go/ast"
"go/build"
"go/token" "go/token"
"io" "io"
"math/big" "math/big"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"strconv" "strconv"
"text/scanner" "text/scanner"
) )
...@@ -24,7 +24,6 @@ import ( ...@@ -24,7 +24,6 @@ import (
const trace = false // set to true for debugging const trace = false // set to true for debugging
var ( var (
pkgRoot = filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH)
pkgExts = [...]string{".a", ".5", ".6", ".8"} pkgExts = [...]string{".a", ".5", ".6", ".8"}
) )
...@@ -39,8 +38,12 @@ func findPkg(path string) (filename, id string) { ...@@ -39,8 +38,12 @@ func findPkg(path string) (filename, id string) {
var noext string var noext string
switch path[0] { switch path[0] {
default: default:
// "x" -> "$GOROOT/pkg/$GOOS_$GOARCH/x.ext", "x" // "x" -> "$GOPATH/pkg/$GOOS_$GOARCH/x.ext", "x"
noext = filepath.Join(pkgRoot, path) tree, pkg, err := build.FindTree(path)
if err != nil {
return
}
noext = filepath.Join(tree.PkgDir(), pkg)
case '.': case '.':
// "./x" -> "/this/directory/x.ext", "/this/directory/x" // "./x" -> "/this/directory/x.ext", "/this/directory/x"
......
...@@ -61,7 +61,7 @@ func testPath(t *testing.T, path string) bool { ...@@ -61,7 +61,7 @@ func testPath(t *testing.T, path string) bool {
const maxTime = 3 * time.Second const maxTime = 3 * time.Second
func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) { func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) {
dirname := filepath.Join(pkgRoot, dir) dirname := filepath.Join(runtime.GOROOT(), "pkg", runtime.GOOS+"_"+runtime.GOARCH, dir)
list, err := ioutil.ReadDir(dirname) list, err := ioutil.ReadDir(dirname)
if err != nil { if err != nil {
t.Errorf("testDir(%s): %s", dirname, err) t.Errorf("testDir(%s): %s", dirname, err)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment