Commit ecd3ea9bd2

Kendall Condon <goon.pri.low@gmail.com>
2025-07-29 01:13:22
DeprecatedReader.Adapted: fix EndOfStream handling
1 parent 147a852
Changed files (3)
lib/std/Io/DeprecatedReader.zig
@@ -397,6 +397,7 @@ pub const Adapter = struct {
             a.err = err;
             return error.ReadFailed;
         };
+        if (n == 0) return error.EndOfStream;
         w.advance(n);
         return n;
     }
lib/std/Io/test.zig
@@ -180,3 +180,11 @@ test "GenericReader methods can return error.EndOfStream" {
         fbs.reader().isBytes("foo"),
     );
 }
+
+test "Adapted DeprecatedReader EndOfStream" {
+    var fbs: io.FixedBufferStream([]const u8) = .{ .buffer = &.{}, .pos = 0 };
+    const reader = fbs.reader();
+    var buf: [1]u8 = undefined;
+    var adapted = reader.adaptToNewApi(&buf);
+    try std.testing.expectError(error.EndOfStream, adapted.new_interface.takeByte());
+}
lib/std/Io.zig
@@ -333,6 +333,7 @@ pub fn GenericReader(
                     a.err = err;
                     return error.ReadFailed;
                 };
+                if (n == 0) return error.EndOfStream;
                 w.advance(n);
                 return n;
             }