(goctl): fix unresolved type if linked api imported (#3881)

This commit is contained in:
kesonan
2024-01-29 21:05:08 +08:00
committed by GitHub
parent f54c2e384f
commit 3331954a78
7 changed files with 47 additions and 12 deletions

View File

@@ -85,15 +85,12 @@ func convert2API(a *ast.AST, importSet map[string]lang.PlaceholderType, is *impo
}
}
if err := api.SelfCheck(); err != nil {
return nil, err
}
return api, nil
}
func (api *API) checkImportStmt() error {
f := newFilter()
b := f.addCheckItem("import value expression")
b := f.addCheckItem(api.Filename, "import value expression")
for _, v := range api.importStmt {
switch val := v.(type) {
case *ast.ImportLiteralStmt:
@@ -110,7 +107,7 @@ func (api *API) checkInfoStmt() error {
return nil
}
f := newFilter()
b := f.addCheckItem("info key expression")
b := f.addCheckItem(api.Filename, "info key expression")
for _, v := range api.info.Values {
b.check(v.Key)
}
@@ -119,9 +116,9 @@ func (api *API) checkInfoStmt() error {
func (api *API) checkServiceStmt() error {
f := newFilter()
serviceNameChecker := f.addCheckItem("service name expression")
handlerChecker := f.addCheckItem("handler expression")
pathChecker := f.addCheckItem("path expression")
serviceNameChecker := f.addCheckItem(api.Filename, "service name expression")
handlerChecker := f.addCheckItem(api.Filename, "handler expression")
pathChecker := f.addCheckItem(api.Filename, "path expression")
var serviceName = map[string]string{}
for _, v := range api.ServiceStmts {
name := strings.TrimSuffix(v.Name.Format(""), "-api")
@@ -150,7 +147,7 @@ func (api *API) checkServiceStmt() error {
func (api *API) checkTypeStmt() error {
f := newFilter()
b := f.addCheckItem("type expression")
b := f.addCheckItem(api.Filename, "type expression")
for _, v := range api.TypeStmt {
switch val := v.(type) {
case *ast.TypeLiteralStmt: