1
0
mirror of https://github.com/golang/go synced 2024-11-22 18:14:42 -07:00

go/printer: fix sync bug - avoid sending on errors twice -

and report node type in error

R=gri
DELTA=4  (3 added, 0 deleted, 1 changed)
OCL=34949
CL=34955
This commit is contained in:
Russ Cox 2009-09-24 01:37:27 -07:00
parent b817e97961
commit f0964a54fb

View File

@ -14,6 +14,7 @@ import (
"io"; "io";
"os"; "os";
"reflect"; "reflect";
"runtime";
"strings"; "strings";
"tabwriter"; "tabwriter";
) )
@ -105,6 +106,7 @@ func (p *printer) write0(data []byte) {
p.written += n; p.written += n;
if err != nil { if err != nil {
p.errors <- err; p.errors <- err;
runtime.Goexit();
} }
} }
@ -1402,7 +1404,8 @@ func Fprint(output io.Writer, node interface{}, mode uint, tabwidth int) (int, o
p.comment = n.Comments; p.comment = n.Comments;
p.file(n); p.file(n);
default: default:
p.errors <- os.NewError("unsupported node type"); p.errors <- os.NewError(fmt.Sprintf("unsupported node type %T", n));
runtime.Goexit();
} }
p.flush(inf); p.flush(inf);
p.errors <- nil; // no errors p.errors <- nil; // no errors