On Thursday, 20 March 2025 at 16:57, Larry Garfield <la...@garfieldtech.com> 
wrote:

> On Thu, Mar 20, 2025, at 11:24 AM, Gina P. Banyard wrote:
> 
> > As the person that had the initial discussion in R11 with Jordan [1]
> > never as a parameter type for an interface actually is not the solution
> > for "poor man generics".
> > Matthew Fonda [2] already replied to the thread pointing out the remark
> > Nikita made in the discussion of the previous RFC.
> > But importantly, going from mixed parameter type to a generic parameter
> > type is allowed and not a BC change,
> > however, going from a never parameter type to a generic parameter type
> > is a BC break.
> 
> 
> To clarify, you're saying this:
> 
> [...]
>
> Am I following that? Because just from writing that I am not sure I agree, 
> which means I may be misunderstanding. :-)

I am saying:
interface I {
  pubic function foo(never $a);
}

can ***not*** be "upgraded" to

interface I<A> {
    pubic function foo(A $a);
}

whereas it is possible to go from

interface I {
  pubic function foo(mixed $a);
}

to

interface I<A> {
    pubic function foo(A $a);
}

The implementing classes are completely irrelevant in this context.

Best regards,

Gina P. Banyard

Reply via email to