On Friday, January 26, 2018 8:43:20 AM CST Christoph M. Becker wrote:
> On 26.01.2018 at 00:28, Larry Garfield wrote:
> > On the read side (which you'd want for a generator or similar), the logic
> > you'd want is essentially:
> > 
> > class Ints extends ArrayObject {
> > 
> >     public function current() : int {
> >     
> >         return parent::current();
> >     
> >     }
> > 
> > }
> > 
> > Which lints fine, but when I tested it just now returns strings quite
> > happily without a type error, which seems wrong to me.  (Why is it doing
> > that, and is it a bug?)
> 
> ArrayObject does not have a `current` method[1] (it does not implement
> Iterator, but rather IteratorAggregate), so it is never called, and
> therefore the `parent::current()` call doesn't error, from what I can tell.
> 
> For what it's worth, overriding the `offsetGet` method works as expected[2].
> 
> [1] <https://3v4l.org/0o55V>
> [2] <https://3v4l.org/1njNa>

Well that would explain it.  I had tried offsetGet() as well, but realized 
after reading this that I just flat out fatfingered it. Ah well.

Still, the rest of my post still applies.

--Larry Garfield

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to