On 09/10/2015 01:55 PM, Paul Sandoz wrote:
On 10 Sep 2015, at 22:22, Stuart Marks<stuart.ma...@oracle.com> wrote:
It'd be better to initialize expectedCount to modCount in constrocutor?
That's how I had it initially, but at Paul Sandoz' suggestion I delayed the
initialization to the first call to tryAdvance().
Yes, it’s preferable to have a "late-binding” Spliterator, as is the case for
Matcher and collections.
The “best-effort” implementation is more than sufficient given the extremely
low probability of non-detection.
Well, you only need to have a separate boolean field for the "first invocation of
tryAdvance()"
instead of utilizing the modCount for two purposes. But it's true there is no
guarantee nothing
is going to happen between the modCount check and hasNext()... I leave it to
the expert:-)
Paul.
This allows the Scanner's state to be modified after stream creation but
before stream pipeline execution. This is the way that Paul's stream code in
Matcher works. I'm not sure how important this is. Having Scanner be
gratuitously different from Matcher seems like it would be irritating though.