dotnet/runtime

PipeReader.AdvanceTo throws InvalidCastException

Open

#849 aberto em 13 de dez. de 2019

Ver no GitHub
 (1 comment) (0 reactions) (0 assignees)C# (5.445 forks)batch import
area-System.IO.Pipelineshelp wanted

Métricas do repositório

Stars
 (17.886 stars)
Métricas de merge de PR
 (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)

Description

I'm puzzled by the fact that PipeReader.AdvanceTo accepts a default(SequencePosition) but throws InvalidCastException when provided a position from an empty sequence. Is that by design?

var pipe = new Pipe();
pipe.Reader.AdvanceTo(default); // this works
pipe.Reader.AdvanceTo(ReadOnlySequence<byte>.Empty.Start); // this throws InvalidCastException

Should it throw ArgumentException instead given the SequencePosition came from an unrelated ReadOnlySequence<byte>?

I'm a bit puzzled that PipeReader.AdvanceTo can be called before reading anyway.

Guia do colaborador