Skip to content

Commit 97ea957

Browse files
committed
apply FieldName for all
Signed-off-by: sivchari <shibuuuu5@gmail.com>
1 parent 3a75fa5 commit 97ea957

File tree

8 files changed

+31
-26
lines changed

8 files changed

+31
-26
lines changed

pkg/analysis/commentstart/analyzer.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/extractjsontags"
2828
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/inspector"
2929
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/markers"
30+
"sigs.k8s.io/kube-api-linter/pkg/analysis/utils"
3031
)
3132

3233
const name = "commentstart"
@@ -58,10 +59,8 @@ func checkField(pass *analysis.Pass, field *ast.Field, tagInfo extractjsontags.F
5859
return
5960
}
6061

61-
var fieldName string
62-
if len(field.Names) > 0 {
63-
fieldName = field.Names[0].Name
64-
} else {
62+
fieldName := utils.FieldName(field)
63+
if fieldName == "" {
6564
fieldName = types.ExprString(field.Type)
6665
}
6766

pkg/analysis/jsontags/analyzer.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,15 @@ func (a *analyzer) run(pass *analysis.Pass) (any, error) {
7676
}
7777

7878
func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field, tagInfo extractjsontags.FieldTagInfo) {
79-
prefix := "embedded field %s"
80-
if len(field.Names) > 0 && field.Names[0] != nil {
81-
prefix = "field %s"
79+
prefix := "field %s"
80+
if len(field.Names) == 0 || field.Names[0] == nil {
81+
prefix = "embedded field %s"
8282
}
8383

84+
prefix = fmt.Sprintf(prefix, utils.FieldName(field))
85+
8486
if tagInfo.Missing {
85-
pass.Reportf(field.Pos(), "%s is missing json tag", fmt.Sprintf(prefix, utils.FieldName(field)))
87+
pass.Reportf(field.Pos(), "%s is missing json tag", prefix)
8688
return
8789
}
8890

@@ -91,13 +93,13 @@ func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field, tagInfo ext
9193
}
9294

9395
if tagInfo.Name == "" {
94-
pass.Reportf(field.Pos(), "%s has empty json tag", fmt.Sprintf(prefix, utils.FieldName(field)))
96+
pass.Reportf(field.Pos(), "%s has empty json tag", prefix)
9597
return
9698
}
9799

98100
matched := a.jsonTagRegex.Match([]byte(tagInfo.Name))
99101
if !matched {
100-
pass.Reportf(field.Pos(), "%s json tag does not match pattern %q: %s", fmt.Sprintf(prefix, utils.FieldName(field)), a.jsonTagRegex.String(), tagInfo.Name)
102+
pass.Reportf(field.Pos(), "%s json tag does not match pattern %q: %s", prefix, a.jsonTagRegex.String(), tagInfo.Name)
101103
}
102104
}
103105

pkg/analysis/maxlength/analyzer.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,11 @@ func run(pass *analysis.Pass) (any, error) {
6464
}
6565

6666
func checkField(pass *analysis.Pass, field *ast.Field, markersAccess markers.Markers) {
67-
if len(field.Names) == 0 || field.Names[0] == nil {
67+
fieldName := utils.FieldName(field)
68+
if fieldName == "" {
6869
return
6970
}
7071

71-
fieldName := field.Names[0].Name
7272
prefix := fmt.Sprintf("field %s", fieldName)
7373

7474
checkTypeExpr(pass, field.Type, field, nil, markersAccess, prefix, kubebuilderMaxLength, needsStringMaxLength)

pkg/analysis/nomaps/analyzer.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/extractjsontags"
2727
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/inspector"
2828
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/markers"
29+
"sigs.k8s.io/kube-api-linter/pkg/analysis/utils"
2930
"sigs.k8s.io/kube-api-linter/pkg/config"
3031
)
3132

@@ -81,7 +82,7 @@ func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field) {
8182
}
8283

8384
if a.policy == config.NoMapsEnforce {
84-
report(pass, field.Pos(), field.Names[0].Name)
85+
report(pass, field.Pos(), utils.FieldName(field))
8586
return
8687
}
8788

@@ -90,7 +91,7 @@ func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field) {
9091
return
9192
}
9293

93-
report(pass, field.Pos(), field.Names[0].Name)
94+
report(pass, field.Pos(), utils.FieldName(field))
9495
}
9596

9697
if a.policy == config.NoMapsIgnore {
@@ -104,7 +105,7 @@ func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field) {
104105
return
105106
}
106107

107-
report(pass, field.Pos(), field.Names[0].Name)
108+
report(pass, field.Pos(), utils.FieldName(field))
108109
}
109110
}
110111

pkg/analysis/nophase/analyzer.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"golang.org/x/tools/go/ast/inspector"
2525
kalerrors "sigs.k8s.io/kube-api-linter/pkg/analysis/errors"
2626
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/extractjsontags"
27+
"sigs.k8s.io/kube-api-linter/pkg/analysis/utils"
2728
)
2829

2930
const name = "nophase"
@@ -68,7 +69,7 @@ func run(pass *analysis.Pass) (any, error) {
6869
return
6970
}
7071

71-
fieldName := field.Names[0].Name
72+
fieldName := utils.FieldName(field)
7273

7374
// First check if the struct field name contains 'phase'
7475
if strings.Contains(strings.ToLower(fieldName), "phase") {

pkg/analysis/optionalorrequired/analyzer.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/extractjsontags"
2525
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/inspector"
2626
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/markers"
27+
"sigs.k8s.io/kube-api-linter/pkg/analysis/utils"
2728
"sigs.k8s.io/kube-api-linter/pkg/config"
2829
)
2930

@@ -124,13 +125,13 @@ func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field, fieldMarker
124125
return
125126
}
126127

127-
var prefix string
128-
if len(field.Names) > 0 && field.Names[0] != nil {
129-
prefix = fmt.Sprintf("field %s", field.Names[0].Name)
130-
} else if ident, ok := field.Type.(*ast.Ident); ok {
131-
prefix = fmt.Sprintf("embedded field %s", ident.Name)
128+
prefix := "field %s"
129+
if len(field.Names) == 0 || field.Names[0] == nil {
130+
prefix = "embedded field %s"
132131
}
133132

133+
prefix = fmt.Sprintf(prefix, utils.FieldName(field))
134+
134135
hasPrimaryOptional := fieldMarkers.Has(a.primaryOptionalMarker)
135136
hasPrimaryRequired := fieldMarkers.Has(a.primaryRequiredMarker)
136137

pkg/analysis/requiredfields/analyzer.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import (
2525
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/extractjsontags"
2626
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/inspector"
2727
"sigs.k8s.io/kube-api-linter/pkg/analysis/helpers/markers"
28+
"sigs.k8s.io/kube-api-linter/pkg/analysis/utils"
2829
"sigs.k8s.io/kube-api-linter/pkg/config"
2930
)
3031

@@ -73,12 +74,12 @@ func (a *analyzer) run(pass *analysis.Pass) (any, error) {
7374
}
7475

7576
func (a *analyzer) checkField(pass *analysis.Pass, field *ast.Field, fieldMarkers markers.MarkerSet, fieldTagInfo extractjsontags.FieldTagInfo) {
76-
if field == nil || len(field.Names) == 0 {
77+
fieldName := utils.FieldName(field)
78+
79+
if fieldName == "" {
7780
return
7881
}
7982

80-
fieldName := field.Names[0].Name
81-
8283
if !fieldMarkers.Has(requiredMarker) && !fieldMarkers.Has(kubebuilderRequiredMarker) {
8384
// The field is not marked required, so we don't need to check it.
8485
return

pkg/analysis/utils/type_check.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,11 @@ func (t *typeChecker) CheckNode(pass *analysis.Pass, node ast.Node) {
6262
}
6363

6464
func (t *typeChecker) checkField(pass *analysis.Pass, field *ast.Field) {
65-
if field == nil || len(field.Names) == 0 || field.Names[0] == nil {
65+
fieldName := FieldName(field)
66+
if fieldName == "" {
6667
return
6768
}
6869

69-
fieldName := field.Names[0].Name
7070
prefix := fmt.Sprintf("field %s", fieldName)
7171

7272
t.checkTypeExpr(pass, field.Type, field, prefix)

0 commit comments

Comments
 (0)