From e53546a7f58fb65a028ba3021756980ceed6c842 Mon Sep 17 00:00:00 2001 From: wispem-wantex Date: Sun, 22 Feb 2026 21:56:55 -0800 Subject: [PATCH] lint: fix several lll, wrapcheck, and copy-paste errors --- pkg/codegen/modelgenerate/ast_helpers.go | 50 +++++++++++-------- pkg/codegen/modelgenerate/generate_model.go | 2 +- .../modelgenerate/generate_testfile.go | 4 +- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/pkg/codegen/modelgenerate/ast_helpers.go b/pkg/codegen/modelgenerate/ast_helpers.go index f07d527..c24d1d8 100644 --- a/pkg/codegen/modelgenerate/ast_helpers.go +++ b/pkg/codegen/modelgenerate/ast_helpers.go @@ -2,6 +2,7 @@ package modelgenerate import ( "bytes" + "fmt" "go/ast" "go/parser" "go/printer" @@ -65,14 +66,14 @@ func FprintWithComments(w io.Writer, file *ast.File) error { var buf bytes.Buffer fset := token.NewFileSet() if err := printer.Fprint(&buf, fset, file); err != nil { - return err + return fmt.Errorf("initial pretty-printing to get positioning: %w", err) } // Re-parse to get real positions (ParseComments preserves doc comments) fset = token.NewFileSet() parsed, err := parser.ParseFile(fset, "", buf.Bytes(), parser.ParseComments) if err != nil { - return err + return fmt.Errorf("re-parsing pretty-print: %w", err) } // Convert the tree-of-nodes into a slice-of-nodes @@ -98,8 +99,8 @@ func FprintWithComments(w io.Writer, file *ast.File) error { origNodes := collectNodes(file) reparsedNodes := collectNodes(parsed) for i, orig := range origNodes { - text, ok := TrailingComments[orig] - if !ok { + text, isOk := TrailingComments[orig] + if !isOk { continue } reparsed := reparsedNodes[i] @@ -110,40 +111,43 @@ func FprintWithComments(w io.Writer, file *ast.File) error { } extractCommentMarker := func(stmt ast.Stmt) (string, bool) { - expr, ok := stmt.(*ast.ExprStmt) - if !ok { + expr, isOk := stmt.(*ast.ExprStmt) + if !isOk { return "", false } - call, ok := expr.X.(*ast.CallExpr) - if !ok { + call, isOk := expr.X.(*ast.CallExpr) + if !isOk { return "", false } - ident, ok := call.Fun.(*ast.Ident) - if !ok || ident.Name != commentMarker { + ident, isOk := call.Fun.(*ast.Ident) + if !isOk || ident.Name != commentMarker { + return "", false + } + lit, isOk := call.Args[0].(*ast.BasicLit) + if !isOk { return "", false } - lit := call.Args[0].(*ast.BasicLit) return lit.Value[1 : len(lit.Value)-1], true } isBlankLineMarker := func(stmt ast.Stmt) bool { - expr, ok := stmt.(*ast.ExprStmt) - if !ok { + expr, isOk := stmt.(*ast.ExprStmt) + if !isOk { return false } - call, ok := expr.X.(*ast.CallExpr) - if !ok { + call, isOk := expr.X.(*ast.CallExpr) + if !isOk { return false } - ident, ok := call.Fun.(*ast.Ident) - return ok && ident.Name == blankLineMarker + ident, isOk := call.Fun.(*ast.Ident) + return isOk && ident.Name == blankLineMarker } // Convert comment and blank-line markers ast.Inspect(parsed, func(n ast.Node) bool { // We only care about Block nodes - block, ok := n.(*ast.BlockStmt) - if !ok { + block, isOk := n.(*ast.BlockStmt) + if !isOk { return true } @@ -151,7 +155,7 @@ func FprintWithComments(w io.Writer, file *ast.File) error { // in the block statement's body with actual ones filtered := block.List[:0] for _, stmt := range block.List { - if text, ok := extractCommentMarker(stmt); ok { + if text, isOk := extractCommentMarker(stmt); isOk { // If it's a comment, add it to the fileset's list of Comments parsed.Comments = append(parsed.Comments, &ast.CommentGroup{ List: []*ast.Comment{{Slash: stmt.Pos(), Text: "// " + text}}, @@ -176,5 +180,9 @@ func FprintWithComments(w io.Writer, file *ast.File) error { delete(TrailingComments, k) } - return printer.Fprint(w, fset, parsed) + err = printer.Fprint(w, fset, parsed) + if err != nil { + return fmt.Errorf("re-pretty-printing: %w", err) + } + return nil } diff --git a/pkg/codegen/modelgenerate/generate_model.go b/pkg/codegen/modelgenerate/generate_model.go index 166b72c..01a3ae0 100644 --- a/pkg/codegen/modelgenerate/generate_model.go +++ b/pkg/codegen/modelgenerate/generate_model.go @@ -457,7 +457,7 @@ func GenerateGetItemByIDFunc(tbl schema.Table) *ast.FuncDecl { return funcDecl } -// GenerateGetItemByIDFunc produces an AST for the `GetXyzByID()` function. +// GenerateGetItemByUniqColFunc produces an AST for the `GetXyzByID()` function. // E.g., a table with `table.TypeName = "foods"` will produce a "GetFoodByID()" function. func GenerateGetItemByUniqColFunc(tbl schema.Table, col schema.Column) *ast.FuncDecl { // Use the xyzSQLFields constant in the select query diff --git a/pkg/codegen/modelgenerate/generate_testfile.go b/pkg/codegen/modelgenerate/generate_testfile.go index 1ca760b..ff9e181 100644 --- a/pkg/codegen/modelgenerate/generate_testfile.go +++ b/pkg/codegen/modelgenerate/generate_testfile.go @@ -191,7 +191,9 @@ func GenerateModelTestAST(tbl pkgschema.Table, schema pkgschema.Schema, gomodNam ast.NewIdent("t"), testObj2, mustCall(&ast.CallExpr{ - Fun: &ast.SelectorExpr{X: testDB, Sel: ast.NewIdent("Get" + pkgschema.TypenameFromTablename(tbl.TableName) + "By" + col.GoFieldName())}, + Fun: &ast.SelectorExpr{X: testDB, Sel: ast.NewIdent( + "Get" + pkgschema.TypenameFromTablename(tbl.TableName) + "By" + col.GoFieldName(), + )}, Args: []ast.Expr{&ast.SelectorExpr{X: testObj2, Sel: ast.NewIdent(col.GoFieldName())}}, }), },