code: func (r *reader) piecesUncached() (ret pieceRange) {
  	ra := r.readahead
  	if ra < 1 {
  		// Needs to be at least 1, because [x, x) means we don't want
  		// anything.
  		ra = 1
  	}
  	if ra > r.length-r.pos {
  		ra = r.length - r.pos
  	}
  	ret.begin, ret.end = r.t.byteRegionPieces(r.torrentOffset(r.pos), ra)
  	return
  }
docs: // Calculates the pieces this reader wants downloaded, ignoring the cached
  // value at r.pieces.