tree 4f7577f1843f29cd30593346e595629171e524b1
parent bf12b8fe93426447108549adb43c25b52a37680e
author Nate Bosch <nbosch@google.com> 1619020235 -0700
committer GitHub <noreply@github.com> 1619020235 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJggEnLCRBK7hj4Ov3rIwAAfbcIADKfi92RQpLOAIA/1SdSPO89
 LZrdi0DD53F9YBo0LDabuBOLyJVaTp3+DE11H12ALRb/yZW58Ko7WbRhvBkDT333
 3lz53B4AX+fimOunhCyNj98WLrIryrhUP1THMO257C6qaX17rB4SzEVCj9NPXIPn
 Dr5Cg6WmvqRnznQgpPfDhsGw61rF4XUibfxDcvG1rNJUE6r70mOAGAaTZ/eDNgq/
 lZckn5x14whZbR8xUtDdKAlWfeGkEHHAuNNi2fGHgvaO5H1jn8gbG9i78JN2kOqU
 XGUrHPsd/hmRfcU2hedLfdujESXJB3YtTwAj1or6xHQTrMHeUvL643/1d/XrB0Y=
 =m5yE
 -----END PGP SIGNATURE-----
 

Style tweaks in stream_queue.dart (#167)

- Use a noun phrase to document the `hasNext` getter. The `next` and
  `peek` getters keep their verb phrase doc comments since the side
  effects are critical distinctions between these methods. If we were
  writing this today, `next()` would be a method.
- Change `_failClosed()` which returns an error, to `_checkNotClosed()`
  which checks the condition and optionally closes. Avoid nesting the
  majority of method behavior in a conditional.
- Use `RangeError.checkNotNegative` over a conditional.
- Change bare `Future` to `Future<void>` in code examples.
- Make `withTransaction` `async` since there is no longer a blocker now
  that async methods start running synchronously.