Skip to content

Commit 6b5c4c2

Browse files
author
Abhijeet
authored
fix errors thrown by errcheck linter (#755)
1 parent 61bd79d commit 6b5c4c2

File tree

12 files changed

+163
-48
lines changed

12 files changed

+163
-48
lines changed

.github/workflows/checks.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
with:
4444
path: coverage.out
4545
name: coverage-report-${{matrix.target}}
46-
- name: Display coverage report # displayed only for linux and macOS
46+
- name: Display coverage report # displayed only for linux and macOS
4747
if: ${{runner.os != 'Windows'}}
4848
run: go tool cover -func=coverage.out | grep -v .rl
4949

@@ -101,5 +101,3 @@ jobs:
101101
go-version-file: go.mod
102102
- name: Run golangci-lint
103103
uses: golangci/golangci-lint-action@4afd733a84b1f43292c63897423277bb7f4313a9 # v8.0.0
104-
with:
105-
args: --enable-only=staticcheck,unused # this is temporary until we can fix the other issues

cmd/hcldec/diags_json.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,10 @@ func (wr *jsonDiagWriter) Flush() error {
8888
return err
8989
}
9090
_, err = wr.w.Write(src)
91-
wr.w.Write([]byte{'\n'})
91+
if err != nil {
92+
return err
93+
}
94+
_, err = wr.w.Write([]byte{'\n'})
9295
return err
9396
}
9497

cmd/hcldec/main.go

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,15 @@ func realmain(args []string) error {
8989
specContent, specDiags := loadSpecFile(*specFile)
9090
diags = append(diags, specDiags...)
9191
if specDiags.HasErrors() {
92-
diagWr.WriteDiagnostics(diags)
93-
flush(diagWr)
92+
err := diagWr.WriteDiagnostics(diags)
93+
if err != nil {
94+
return fmt.Errorf("failed writing diagnostics: %w", err)
95+
}
96+
97+
err = flush(diagWr)
98+
if err != nil {
99+
return fmt.Errorf("failed flushing diagnostics: %w", err)
100+
}
94101
os.Exit(2)
95102
}
96103

@@ -167,8 +174,15 @@ func realmain(args []string) error {
167174
}
168175

169176
if diags.HasErrors() {
170-
diagWr.WriteDiagnostics(diags)
171-
flush(diagWr)
177+
err := diagWr.WriteDiagnostics(diags)
178+
if err != nil {
179+
return fmt.Errorf("failed writing diagnostics: %w", err)
180+
}
181+
182+
err = flush(diagWr)
183+
if err != nil {
184+
return fmt.Errorf("failed flushing diagnostics: %w", err)
185+
}
172186
os.Exit(2)
173187
}
174188

@@ -192,8 +206,15 @@ func realmain(args []string) error {
192206
diags = append(diags, decDiags...)
193207

194208
if diags.HasErrors() {
195-
diagWr.WriteDiagnostics(diags)
196-
flush(diagWr)
209+
err := diagWr.WriteDiagnostics(diags)
210+
if err != nil {
211+
return fmt.Errorf("failed writing diagnostics: %w", err)
212+
}
213+
214+
err = flush(diagWr)
215+
if err != nil {
216+
return fmt.Errorf("failed flushing diagnostics: %w", err)
217+
}
197218
os.Exit(2)
198219
}
199220

@@ -224,7 +245,10 @@ func realmain(args []string) error {
224245
}
225246
}
226247

227-
fmt.Fprintf(target, "%s\n", out)
248+
_, err = fmt.Fprintf(target, "%s\n", out)
249+
if err != nil {
250+
return fmt.Errorf("failed to write output: %s", err)
251+
}
228252

229253
return nil
230254
}
@@ -332,7 +356,10 @@ func showVarRefsJSON(vars []hcl.Traversal, ctx *hcl.EvalContext) error {
332356
}
333357
}
334358

335-
fmt.Fprintf(target, "%s\n", out)
359+
_, err = fmt.Fprintf(target, "%s\n", out)
360+
if err != nil {
361+
return fmt.Errorf("failed to write output: %s", err)
362+
}
336363

337364
return nil
338365
}

cmd/hclfmt/main.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,10 @@ func processFile(fn string, in *os.File) error {
124124

125125
if *check {
126126
_, diags := parser.ParseHCL(inSrc, fn)
127-
diagWr.WriteDiagnostics(diags)
127+
err = diagWr.WriteDiagnostics(diags)
128+
if err != nil {
129+
return fmt.Errorf("failed to write diagnostics: %w", err)
130+
}
128131
if diags.HasErrors() {
129132
checkErrs = true
130133
return nil

cmd/hclspecsuite/main.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,11 @@ func realMain(args []string) int {
5252
},
5353
logProblems: func(name string, file *TestFile, diags hcl.Diagnostics) {
5454
if len(diags) != 0 {
55-
os.Stderr.WriteString("\n")
56-
diagWr.WriteDiagnostics(diags)
55+
fmt.Fprint(os.Stderr, "\n")
56+
err := diagWr.WriteDiagnostics(diags)
57+
if err != nil {
58+
fmt.Fprintf(os.Stderr, "Error writing diagnostics: %s\n", err)
59+
}
5760
diagCount += len(diags)
5861
}
5962
fmt.Printf("- %s\n", name)
@@ -62,8 +65,11 @@ func realMain(args []string) int {
6265
diags := runner.Run()
6366

6467
if len(diags) != 0 {
65-
os.Stderr.WriteString("\n\n\n== Test harness problems:\n\n")
66-
diagWr.WriteDiagnostics(diags)
68+
fmt.Fprintf(os.Stderr, "\n\n\n== Test harness problems:\n\n")
69+
err := diagWr.WriteDiagnostics(diags)
70+
if err != nil {
71+
fmt.Fprintf(os.Stderr, "Error writing diagnostics: %s\n", err)
72+
}
6773
diagCount += len(diags)
6874
}
6975

diagnostic_text.go

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
7171
severityStr = "???????"
7272
}
7373

74-
fmt.Fprintf(w.wr, "%s%s%s: %s\n\n", colorCode, severityStr, resetCode, diag.Summary)
74+
_, err := fmt.Fprintf(w.wr, "%s%s%s: %s\n\n", colorCode, severityStr, resetCode, diag.Summary)
75+
if err != nil {
76+
return fmt.Errorf("write failed: %w", err)
77+
}
7578

7679
if diag.Subject != nil {
7780
snipRange := *diag.Subject
@@ -97,7 +100,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
97100

98101
file := w.files[diag.Subject.Filename]
99102
if file == nil || file.Bytes == nil {
100-
fmt.Fprintf(w.wr, " on %s line %d:\n (source code not available)\n\n", diag.Subject.Filename, diag.Subject.Start.Line)
103+
_, err = fmt.Fprintf(w.wr, " on %s line %d:\n (source code not available)\n\n", diag.Subject.Filename, diag.Subject.Start.Line)
104+
if err != nil {
105+
return fmt.Errorf("write failed: %w", err)
106+
}
101107
} else {
102108

103109
var contextLine string
@@ -108,7 +114,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
108114
}
109115
}
110116

111-
fmt.Fprintf(w.wr, " on %s line %d%s:\n", diag.Subject.Filename, diag.Subject.Start.Line, contextLine)
117+
_, err = fmt.Fprintf(w.wr, " on %s line %d%s:\n", diag.Subject.Filename, diag.Subject.Start.Line, contextLine)
118+
if err != nil {
119+
return fmt.Errorf("write failed: %w", err)
120+
}
112121

113122
src := file.Bytes
114123
sc := NewRangeScanner(src, diag.Subject.Filename, bufio.ScanLines)
@@ -121,23 +130,32 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
121130

122131
beforeRange, highlightedRange, afterRange := lineRange.PartitionAround(highlightRange)
123132
if highlightedRange.Empty() {
124-
fmt.Fprintf(w.wr, "%4d: %s\n", lineRange.Start.Line, sc.Bytes())
133+
_, err = fmt.Fprintf(w.wr, "%4d: %s\n", lineRange.Start.Line, sc.Bytes())
134+
if err != nil {
135+
return fmt.Errorf("write failed: %w", err)
136+
}
125137
} else {
126138
before := beforeRange.SliceBytes(src)
127139
highlighted := highlightedRange.SliceBytes(src)
128140
after := afterRange.SliceBytes(src)
129-
fmt.Fprintf(
141+
_, err = fmt.Fprintf(
130142
w.wr, "%4d: %s%s%s%s%s\n",
131143
lineRange.Start.Line,
132144
before,
133145
highlightCode, highlighted, resetCode,
134146
after,
135147
)
148+
if err != nil {
149+
return fmt.Errorf("write failed: %w", err)
150+
}
136151
}
137152

138153
}
139154

140-
w.wr.Write([]byte{'\n'})
155+
_, err = w.wr.Write([]byte{'\n'})
156+
if err != nil {
157+
return fmt.Errorf("write failed: %w", err)
158+
}
141159
}
142160

143161
if diag.Expression != nil && diag.EvalContext != nil {
@@ -182,16 +200,26 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
182200
for i, stmt := range stmts {
183201
switch i {
184202
case 0:
185-
w.wr.Write([]byte{'w', 'i', 't', 'h', ' '})
203+
_, err = w.wr.Write([]byte{'w', 'i', 't', 'h', ' '})
186204
default:
187-
w.wr.Write([]byte{' ', ' ', ' ', ' ', ' '})
205+
_, err = w.wr.Write([]byte{' ', ' ', ' ', ' ', ' '})
206+
}
207+
if err != nil {
208+
return fmt.Errorf("write failed: %w", err)
209+
}
210+
211+
_, err = w.wr.Write([]byte(stmt))
212+
if err != nil {
213+
return fmt.Errorf("write failed: %w", err)
188214
}
189-
w.wr.Write([]byte(stmt))
190215
switch i {
191216
case last:
192-
w.wr.Write([]byte{'.', '\n', '\n'})
217+
_, err = w.wr.Write([]byte{'.', '\n', '\n'})
193218
default:
194-
w.wr.Write([]byte{',', '\n'})
219+
_, err = w.wr.Write([]byte{',', '\n'})
220+
}
221+
if err != nil {
222+
return fmt.Errorf("write failed: %w", err)
195223
}
196224
}
197225
}
@@ -202,7 +230,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
202230
if w.width != 0 {
203231
detail = wordwrap.WrapString(detail, w.width)
204232
}
205-
fmt.Fprintf(w.wr, "%s\n\n", detail)
233+
_, err = fmt.Fprintf(w.wr, "%s\n\n", detail)
234+
if err != nil {
235+
return fmt.Errorf("write failed: %w", err)
236+
}
206237
}
207238

208239
return nil

hclsyntax/variables.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ func Variables(expr Expression) []hcl.Traversal {
2020
},
2121
}
2222

23+
//nolint:errcheck // FIXME: Propogate diagnostics/errors upward.
2324
Walk(expr, walker)
2425

2526
return vars

hclwrite/ast.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ func (f *File) WriteTo(wr io.Writer) (int64, error) {
4747
// the AST API, these will be reflected in the result.
4848
func (f *File) Bytes() []byte {
4949
buf := &bytes.Buffer{}
50+
//nolint:errcheck // FIXME: Propogate errors upward.
5051
f.WriteTo(buf)
5152
return buf.Bytes()
5253
}

hclwrite/generate_test.go

Lines changed: 45 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -488,8 +488,14 @@ func TestTokensForValue(t *testing.T) {
488488
return bytes.Equal(a, b)
489489
}))
490490
var gotBuf, wantBuf bytes.Buffer
491-
got.WriteTo(&gotBuf)
492-
test.Want.WriteTo(&wantBuf)
491+
_, err := got.WriteTo(&gotBuf)
492+
if err != nil {
493+
t.Fatalf("failed to write got tokens: %v", err)
494+
}
495+
_, err = test.Want.WriteTo(&wantBuf)
496+
if err != nil {
497+
t.Fatalf("failed to write Want tokens: %v", err)
498+
}
493499
t.Errorf(
494500
"wrong result\nvalue: %#v\ngot: %s\nwant: %s\ndiff: %s",
495501
test.Val, gotBuf.String(), wantBuf.String(), diff,
@@ -531,8 +537,16 @@ func TestTokensForTraversal(t *testing.T) {
531537
return bytes.Equal(a, b)
532538
}))
533539
var gotBuf, wantBuf bytes.Buffer
534-
got.WriteTo(&gotBuf)
535-
test.Want.WriteTo(&wantBuf)
540+
_, err := got.WriteTo(&gotBuf)
541+
if err != nil {
542+
t.Fatalf("failed to write got tokens: %v", err)
543+
}
544+
545+
_, err = test.Want.WriteTo(&wantBuf)
546+
if err != nil {
547+
t.Fatalf("failed to write Want tokens: %v", err)
548+
}
549+
536550
t.Errorf(
537551
"wrong result\nvalue: %#v\ngot: %s\nwant: %s\ndiff: %s",
538552
test.Val, gotBuf.String(), wantBuf.String(), diff,
@@ -596,8 +610,15 @@ func TestTokensForTuple(t *testing.T) {
596610
return bytes.Equal(a, b)
597611
}))
598612
var gotBuf, wantBuf bytes.Buffer
599-
got.WriteTo(&gotBuf)
600-
test.Want.WriteTo(&wantBuf)
613+
_, err := got.WriteTo(&gotBuf)
614+
if err != nil {
615+
t.Fatalf("failed to write got tokens: %v", err)
616+
}
617+
618+
_, err = test.Want.WriteTo(&wantBuf)
619+
if err != nil {
620+
t.Fatalf("failed to write Want tokens: %v", err)
621+
}
601622
t.Errorf(
602623
"wrong result\nvalue: %#v\ngot: %s\nwant: %s\ndiff: %s",
603624
test.Val, gotBuf.String(), wantBuf.String(), diff,
@@ -687,8 +708,15 @@ func TestTokensForObject(t *testing.T) {
687708
return bytes.Equal(a, b)
688709
}))
689710
var gotBuf, wantBuf bytes.Buffer
690-
got.WriteTo(&gotBuf)
691-
test.Want.WriteTo(&wantBuf)
711+
_, err := got.WriteTo(&gotBuf)
712+
if err != nil {
713+
t.Fatalf("failed to write got tokens: %v", err)
714+
}
715+
716+
_, err = test.Want.WriteTo(&wantBuf)
717+
if err != nil {
718+
t.Fatalf("failed to write Want tokens: %v", err)
719+
}
692720
t.Errorf(
693721
"wrong result\nvalue: %#v\ngot: %s\nwant: %s\ndiff: %s",
694722
test.Val, gotBuf.String(), wantBuf.String(), diff,
@@ -753,8 +781,15 @@ func TestTokensForFunctionCall(t *testing.T) {
753781
return bytes.Equal(a, b)
754782
}))
755783
var gotBuf, wantBuf bytes.Buffer
756-
got.WriteTo(&gotBuf)
757-
test.Want.WriteTo(&wantBuf)
784+
_, err := got.WriteTo(&gotBuf)
785+
if err != nil {
786+
t.Fatalf("failed to write got tokens: %v", err)
787+
}
788+
789+
_, err = test.Want.WriteTo(&wantBuf)
790+
if err != nil {
791+
t.Fatalf("failed to write Want tokens: %v", err)
792+
}
758793
t.Errorf(
759794
"wrong result\nvalue: %#v\ngot: %s\nwant: %s\ndiff: %s",
760795
test.Val, gotBuf.String(), wantBuf.String(), diff,

hclwrite/public.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ func Format(src []byte) []byte {
4242
tokens := lexConfig(src)
4343
format(tokens)
4444
buf := &bytes.Buffer{}
45+
//nolint:errcheck // FIXME: Propogate errors upward.
4546
tokens.WriteTo(buf)
4647
return buf.Bytes()
4748
}

0 commit comments

Comments
 (0)