mirror of
https://github.com/golang/go
synced 2024-11-18 14:54:40 -07:00
cmd/stringer: revert CL 40403
Revert "cmd/stringer: use source importer when available" This reverts CL 40403. The idea is to avoid type-checking and use just parsing, which should be enough for stringer. Separately reopening golang/go#10249 because the original change closed that issue, but the change is itself causing other problems as described in the discussion at golang/go#25650. This reversion restores the old behavior of stringer and will be followed with other fixes if they can be worked out. Change-Id: I8404d78da08043ede1a36b0e135a3fc7fdf6728d Reviewed-on: https://go-review.googlesource.com/121884 Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
b23eb6252f
commit
ffe8890671
@ -33,7 +33,7 @@ func TestEndToEnd(t *testing.T) {
|
||||
defer os.RemoveAll(dir)
|
||||
// Create stringer in temporary directory.
|
||||
stringer := filepath.Join(dir, "stringer.exe")
|
||||
err = run("go", "build", "-o", stringer)
|
||||
err = run("go", "build", "-o", stringer, "stringer.go")
|
||||
if err != nil {
|
||||
t.Fatalf("building stringer: %s", err)
|
||||
}
|
||||
|
@ -1,16 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build !go1.9
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"go/importer"
|
||||
"go/types"
|
||||
)
|
||||
|
||||
func defaultImporter() types.Importer {
|
||||
return importer.Default()
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
// Copyright 2017 The Go Authors. All rights reserved.
|
||||
// Use of this source code is governed by a BSD-style
|
||||
// license that can be found in the LICENSE file.
|
||||
|
||||
// +build go1.9
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"go/importer"
|
||||
"go/types"
|
||||
)
|
||||
|
||||
func defaultImporter() types.Importer {
|
||||
return importer.For("source", nil)
|
||||
}
|
@ -66,6 +66,7 @@ import (
|
||||
"go/build"
|
||||
exact "go/constant"
|
||||
"go/format"
|
||||
"go/importer"
|
||||
"go/parser"
|
||||
"go/token"
|
||||
"go/types"
|
||||
@ -268,7 +269,7 @@ func (g *Generator) parsePackage(directory string, names []string, text interfac
|
||||
// check type-checks the package. The package must be OK to proceed.
|
||||
func (pkg *Package) check(fs *token.FileSet, astFiles []*ast.File) {
|
||||
pkg.defs = make(map[*ast.Ident]types.Object)
|
||||
config := types.Config{Importer: defaultImporter(), FakeImportC: true}
|
||||
config := types.Config{Importer: importer.Default(), FakeImportC: true}
|
||||
info := &types.Info{
|
||||
Defs: pkg.defs,
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user