@@ -71,7 +71,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
71
71
severityStr = "???????"
72
72
}
73
73
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
+ }
75
78
76
79
if diag .Subject != nil {
77
80
snipRange := * diag .Subject
@@ -97,7 +100,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
97
100
98
101
file := w .files [diag .Subject .Filename ]
99
102
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
+ }
101
107
} else {
102
108
103
109
var contextLine string
@@ -108,7 +114,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
108
114
}
109
115
}
110
116
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
+ }
112
121
113
122
src := file .Bytes
114
123
sc := NewRangeScanner (src , diag .Subject .Filename , bufio .ScanLines )
@@ -121,23 +130,32 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
121
130
122
131
beforeRange , highlightedRange , afterRange := lineRange .PartitionAround (highlightRange )
123
132
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
+ }
125
137
} else {
126
138
before := beforeRange .SliceBytes (src )
127
139
highlighted := highlightedRange .SliceBytes (src )
128
140
after := afterRange .SliceBytes (src )
129
- fmt .Fprintf (
141
+ _ , err = fmt .Fprintf (
130
142
w .wr , "%4d: %s%s%s%s%s\n " ,
131
143
lineRange .Start .Line ,
132
144
before ,
133
145
highlightCode , highlighted , resetCode ,
134
146
after ,
135
147
)
148
+ if err != nil {
149
+ return fmt .Errorf ("write failed: %w" , err )
150
+ }
136
151
}
137
152
138
153
}
139
154
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
+ }
141
159
}
142
160
143
161
if diag .Expression != nil && diag .EvalContext != nil {
@@ -182,16 +200,26 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
182
200
for i , stmt := range stmts {
183
201
switch i {
184
202
case 0 :
185
- w .wr .Write ([]byte {'w' , 'i' , 't' , 'h' , ' ' })
203
+ _ , err = w .wr .Write ([]byte {'w' , 'i' , 't' , 'h' , ' ' })
186
204
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 )
188
214
}
189
- w .wr .Write ([]byte (stmt ))
190
215
switch i {
191
216
case last :
192
- w .wr .Write ([]byte {'.' , '\n' , '\n' })
217
+ _ , err = w .wr .Write ([]byte {'.' , '\n' , '\n' })
193
218
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 )
195
223
}
196
224
}
197
225
}
@@ -202,7 +230,10 @@ func (w *diagnosticTextWriter) WriteDiagnostic(diag *Diagnostic) error {
202
230
if w .width != 0 {
203
231
detail = wordwrap .WrapString (detail , w .width )
204
232
}
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
+ }
206
237
}
207
238
208
239
return nil
0 commit comments