Skip to content

Commit 4352527

Browse files
committed
chore: fix linting issues
1 parent b5c912c commit 4352527

12 files changed

+31
-25
lines changed

.rules/.golangci.yml

+6-3
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44

55
# Options for analysis running.
66
run:
7+
go: "1.22"
78
timeout: 5m
8-
skip-files:
9+
exclude-files:
910
- .*\.gen\.go$
1011
- tests/data/.*
1112
modules-download-mode: readonly
@@ -27,6 +28,7 @@ linters:
2728
- godox
2829
- ireturn
2930
- nestif
31+
- perfsprint
3032
- revive
3133
- varnamelen
3234
# unsupported
@@ -76,12 +78,11 @@ linters-settings:
7678
capital: true
7779
period: true
7880
gofumpt:
79-
lang-version: "1.22"
8081
extra-rules: true
8182
goimports:
8283
local-prefixes: github.com/atombender
8384
govet:
84-
check-shadowing: true
85+
shadow: true
8586
grouper:
8687
const-require-single-const: true
8788
const-require-grouping: false
@@ -460,6 +461,8 @@ issues:
460461
# Default: []
461462
exclude:
462463
- "local replacement are not allowed: github.com/atombender/go-jsonschema/tests/data"
464+
- "exporting a pointer for the loop variable i"
465+
- "G601: Implicit memory aliasing in for loop."
463466
# Excluding configuration per-path, per-linter, per-text and per-source
464467
exclude-rules:
465468
# Exclude some linters from running on tests files.

internal/x/text/cases.go

+1
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ func splitIdentifierByCaseAndSeparators(s string) []string {
124124
if i > j {
125125
result = append(result, runes[j:i])
126126
}
127+
127128
j = i
128129
}
129130

pkg/codegen/emitter.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ func (e *Emitter) Newline() {
7878

7979
func (e *Emitter) checkIndent() {
8080
if e.start {
81-
for i := uint(0); i < e.indent; i++ {
81+
for range e.indent {
8282
e.sb.WriteRune('\t')
8383
}
8484

pkg/codegen/model.go

+1
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,7 @@ func (s *StructType) Generate(out *Emitter) {
335335

336336
f.Generate(out)
337337
out.Newline()
338+
338339
i++
339340
}
340341

pkg/codegen/utils.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
package codegen
22

33
import (
4+
"errors"
45
"fmt"
56

67
"github.com/atombender/go-jsonschema/pkg/schemas"
78
)
89

910
var (
10-
errUnexpectedType = fmt.Errorf("unexpected type")
11-
errUnknownJSONSchemaType = fmt.Errorf("unknown JSON Schema type")
11+
errUnexpectedType = errors.New("unexpected type")
12+
errUnknownJSONSchemaType = errors.New("unknown JSON Schema type")
1213
)
1314

1415
func WrapTypeInPointer(t Type) Type {

pkg/generator/output.go

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ func (o *output) uniqueTypeName(name string) string {
3131

3232
return suffixed
3333
}
34+
3435
count++
3536
}
3637
}

pkg/generator/schema_generator.go

+9-5
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ func (g *schemaGenerator) generateReferencedType(ref string) (codegen.Type, erro
144144
} else {
145145
def = (*schemas.Type)(schema.ObjectAsType)
146146
defName = g.getRootTypeName(schema, fileName)
147+
147148
if len(def.Type) == 0 {
148149
// Minor hack to make definitions default to being objects.
149150
def.Type = schemas.TypeList{schemas.TypeNameObject}
@@ -181,7 +182,6 @@ func (g *schemaGenerator) generateReferencedType(ref string) (codegen.Type, erro
181182
var imp *codegen.Import
182183

183184
for _, i := range g.output.file.Package.Imports {
184-
i := i
185185
if i.Name == sg.output.file.Package.Name() && i.QualifiedName == sg.output.file.Package.QualifiedName {
186186
imp = &i
187187

@@ -267,8 +267,6 @@ func (g *schemaGenerator) generateDeclaredType(
267267
}
268268

269269
for _, formatter := range g.formatters {
270-
formatter := formatter
271-
272270
formatter.addImport(g.output.file)
273271

274272
g.output.file.Package.AddDecl(&codegen.Method{
@@ -691,22 +689,28 @@ func (g *schemaGenerator) generateEnumType(
691689
}
692690

693691
var primitiveType string
692+
694693
for _, v := range t.Enum {
695694
var valueType string
695+
696696
if v == nil {
697697
valueType = interfaceTypeName
698698
} else {
699699
switch v.(type) {
700700
case string:
701701
valueType = "string"
702+
702703
case float64:
703704
valueType = "float64"
705+
704706
case bool:
705707
valueType = "bool"
708+
706709
default:
707710
return nil, fmt.Errorf("%w %v", errEnumNonPrimitiveVal, v)
708711
}
709712
}
713+
710714
if primitiveType == "" {
711715
primitiveType = valueType
712716
} else if primitiveType != valueType {
@@ -715,9 +719,11 @@ func (g *schemaGenerator) generateEnumType(
715719
break
716720
}
717721
}
722+
718723
if primitiveType == interfaceTypeName {
719724
wrapInStruct = true
720725
}
726+
721727
enumType = codegen.PrimitiveType{Type: primitiveType}
722728
}
723729

@@ -754,8 +760,6 @@ func (g *schemaGenerator) generateEnumType(
754760
g.output.file.Package.AddImport("reflect", "")
755761

756762
for _, formatter := range g.formatters {
757-
formatter := formatter
758-
759763
formatter.addImport(g.output.file)
760764

761765
if wrapInStruct {

pkg/generator/validator.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ func (v *nullTypeValidator) generate(out *codegen.Emitter) {
6262
value := fmt.Sprintf("%s.%s", varNamePlainStruct, v.fieldName)
6363
fieldName := v.jsonName
6464

65-
var indexes []string
65+
indexes := make([]string, v.arrayDepth)
6666

67-
for i := 0; i < v.arrayDepth; i++ {
67+
for i := range v.arrayDepth {
6868
index := fmt.Sprintf("i%d", i)
69-
indexes = append(indexes, index)
69+
indexes[i] = index
7070
out.Printlnf(`for %s := range %s {`, index, value)
7171
value += fmt.Sprintf("[%s]", index)
7272
fieldName += "[%d]"
@@ -85,7 +85,7 @@ func (v *nullTypeValidator) generate(out *codegen.Emitter) {
8585
out.Indent(-1)
8686
out.Printlnf("}")
8787

88-
for i := 0; i < v.arrayDepth; i++ {
88+
for range v.arrayDepth {
8989
out.Indent(-1)
9090
out.Printlnf("}")
9191
}

tests/generation_test.go

+5
Original file line numberDiff line numberDiff line change
@@ -217,12 +217,16 @@ func testExampleFile(t *testing.T, cfg generator.Config, fileName string) {
217217
if !os.IsNotExist(err) {
218218
t.Fatal(err)
219219
}
220+
220221
goldenData = source
222+
221223
t.Log("File does not exist; creating it")
224+
222225
if err = os.WriteFile(goldenFileName, goldenData, 0o655); err != nil {
223226
t.Fatal(err)
224227
}
225228
}
229+
226230
if diff, ok := diffStrings(t, string(goldenData), string(source)); !ok {
227231
t.Fatalf("Contents different (left is expected, right is actual):\n%s", *diff)
228232
}
@@ -238,6 +242,7 @@ func testFailingExampleFile(t *testing.T, cfg generator.Config, fileName string)
238242
if err != nil {
239243
t.Fatal(err)
240244
}
245+
241246
if err := g.DoFile(fileName); err == nil {
242247
t.Fatal("Expected test to fail")
243248
}

tests/serializable_date_test.go

-2
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ func TestSerializableDateUnmarshalJSONReturnsErrorForInvalidString(t *testing.T)
6060
}
6161

6262
for _, testCase := range testCases {
63-
testCase := testCase
64-
6563
t.Run(fmt.Sprintf("Given '%s' expected UnmarshalJSON to return an error", testCase), func(t *testing.T) {
6664
t.Parallel()
6765

tests/serializable_time_test.go

-2
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,6 @@ func TestSerializableTimeUnmarshalJSONReturnsErrorForInvalidString(t *testing.T)
6363
}
6464

6565
for _, testCase := range testCases {
66-
testCase := testCase
67-
6866
t.Run(fmt.Sprintf("Given '%s' expected UnmarshalJSON to return an error", testCase), func(t *testing.T) {
6967
t.Parallel()
7068

tests/validation_test.go

-6
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ func TestMaxStringLength(t *testing.T) {
5151
},
5252
}
5353
for _, tC := range testCases {
54-
tC := tC
55-
5654
t.Run(tC.desc, func(t *testing.T) {
5755
t.Parallel()
5856

@@ -100,8 +98,6 @@ func TestMinStringLength(t *testing.T) {
10098
},
10199
}
102100
for _, tC := range testCases {
103-
tC := tC
104-
105101
t.Run(tC.desc, func(t *testing.T) {
106102
t.Parallel()
107103

@@ -139,8 +135,6 @@ func TestRequiredFields(t *testing.T) {
139135
},
140136
}
141137
for _, tC := range testCases {
142-
tC := tC
143-
144138
t.Run(tC.desc, func(t *testing.T) {
145139
t.Parallel()
146140

0 commit comments

Comments
 (0)