diff --git a/src/pkg/exp/types/gcimporter.go b/src/pkg/exp/types/gcimporter.go index af1eef804af..f584c39091b 100644 --- a/src/pkg/exp/types/gcimporter.go +++ b/src/pkg/exp/types/gcimporter.go @@ -182,7 +182,7 @@ func (p *gcParser) init(filename, id string, src io.Reader, imports map[string]* func (p *gcParser) next() { p.tok = p.scanner.Scan() switch p.tok { - case scanner.Ident, scanner.Int, scanner.String: + case scanner.Ident, scanner.Int, scanner.String, 'ยท': p.lit = p.scanner.TokenText() default: p.lit = "" diff --git a/src/pkg/exp/types/gcimporter_test.go b/src/pkg/exp/types/gcimporter_test.go index c39b47b0626..20247b0dc44 100644 --- a/src/pkg/exp/types/gcimporter_test.go +++ b/src/pkg/exp/types/gcimporter_test.go @@ -92,13 +92,6 @@ func testDir(t *testing.T, dir string, endTime time.Time) (nimports int) { } func TestGcImport(t *testing.T) { - // Dies trying to read crypto/md5, which contains - // const init1 = 0x... - // The importer believes init1 should be a function for some reason. - // golang.org/issue/3682. - t.Logf("broken; skipping") - return - // On cross-compile builds, the path will not exist. // Need to use GOHOSTOS, which is not available. if _, err := os.Stat(gcPath); err != nil { diff --git a/src/pkg/exp/types/testdata/exports.go b/src/pkg/exp/types/testdata/exports.go index ed63bf9adec..8ee28b0942b 100644 --- a/src/pkg/exp/types/testdata/exports.go +++ b/src/pkg/exp/types/testdata/exports.go @@ -11,6 +11,11 @@ import ( "go/ast" ) +// Issue 3682: Correctly read dotted identifiers from export data. +const init1 = 0 + +func init() {} + const ( C0 int = 0 C1 = 3.14159265