io: clarify Reader returning 0, nil
Fixes #8317.
LGTM=bradfitz
R=bradfitz, iant, r
CC=golang-codereviews
https://golang.org/cl/143100043
diff --git a/src/io/io.go b/src/io/io.go
index e8bbad5..7507a84 100644
--- a/src/io/io.go
+++ b/src/io/io.go
@@ -62,8 +62,11 @@
// allowed EOF behaviors.
//
// Implementations of Read are discouraged from returning a
-// zero byte count with a nil error, and callers should treat
-// that situation as a no-op. Implementations must not retain p.
+// zero byte count with a nil error, except when len(p) == 0.
+// Callers should treat a return of 0 and nil as indicating that
+// nothing happened; in particular it does not indicate EOF.
+//
+// Implementations must not retain p.
type Reader interface {
Read(p []byte) (n int, err error)
}