mirror of
https://github.com/zeromicro/go-zero.git
synced 2026-05-10 08:29:58 +08:00
optimize: fix experimental api (#3604)
This commit is contained in:
@@ -31,18 +31,40 @@ func convert2API(a *ast.AST, importManager map[string]placeholder.Type) (*API, e
|
||||
one := a.Stmts[0]
|
||||
syntax, ok := one.(*ast.SyntaxStmt)
|
||||
if !ok {
|
||||
return nil, ast.SyntaxError(one.Pos(), "expected syntax statement, got <%T>", one)
|
||||
syntax = &ast.SyntaxStmt{
|
||||
Syntax: ast.NewTokenNode(token.Token{
|
||||
Type: token.IDENT,
|
||||
Text: token.Syntax,
|
||||
}),
|
||||
Assign: ast.NewTokenNode(token.Token{
|
||||
Type: token.ASSIGN,
|
||||
Text: "=",
|
||||
}),
|
||||
Value: ast.NewTokenNode(token.Token{
|
||||
Type: token.STRING,
|
||||
Text: `"v1"`,
|
||||
}),
|
||||
}
|
||||
}
|
||||
api.Syntax = syntax
|
||||
|
||||
for i := 1; i < len(a.Stmts); i++ {
|
||||
api.Syntax = syntax
|
||||
var hasSyntax, hasInfo bool
|
||||
for i := 0; i < len(a.Stmts); i++ {
|
||||
one := a.Stmts[i]
|
||||
switch val := one.(type) {
|
||||
case *ast.SyntaxStmt:
|
||||
return nil, ast.DuplicateStmtError(val.Pos(), "duplicate syntax statement")
|
||||
if hasSyntax {
|
||||
return nil, ast.DuplicateStmtError(val.Pos(), "duplicate syntax statement")
|
||||
} else {
|
||||
hasSyntax = true
|
||||
}
|
||||
case *ast.InfoStmt:
|
||||
if api.info != nil {
|
||||
return nil, ast.DuplicateStmtError(val.Pos(), "duplicate info statement")
|
||||
if hasInfo {
|
||||
return nil, ast.DuplicateStmtError(val.Pos(), "duplicate info statement")
|
||||
}
|
||||
} else {
|
||||
hasInfo = true
|
||||
}
|
||||
api.info = val
|
||||
case ast.ImportStmt:
|
||||
|
||||
Reference in New Issue
Block a user