У меня есть проект, использующий модуль Go, и содержимое go.mod
равно
module github.com/xxx/yyy
Затем я создаю подкаталог log
и исходный файл log.go
, структура проекта выглядиткак это:
yyy
- go.mod
- main.go
- log
- log.go
Затем я пишу код в main.go
import (
"github.com/xxx/yyy/log"
"go/ast"
"go/build"
"go/importer"
"go/parser"
"go/token"
"go/types"
)
var fileSet = token.NewFileSet()
func main() {
file, err := parser.ParseFile(fileSet, "main", nil, parser.ParseComments)
conf := types.Config{Importer: importer.Default()}
pkg, err := conf.Check(".", fileSet, []*ast.File{file}, nil)
if err != nil {
log.Log.Fatal(err.Error()) // type error
}
}
Затем я успешно строю его, но при запуске он вылетает и регистрирует could not import github.com/xxx/yyy/log
.Ошибка определенно исходит от conf.Check
, но почему она вылетает?go/types
не поддерживает модуль go?