@@ -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
0 commit comments