On Wed, Jul 12, 2023 at 5:01 AM G. P. B. <george.bany...@gmail.com> wrote:
> > Maybe the resistance to the proposal would be far less if the RFC, and > implementation, would check at compile time that the default > implementations only rely on known existing functions available to the > interface. > I asked in the discussion if this was a possibility, and it's the biggest concern I had about the feature as proposed. Rowan answered "As the RFC says, it introduces a form of multiple inheritance, and inheritance in PHP doesn't make any such guarantee" and Levi added "I hope static analysis can fill the gap here, but don't think these checks are necessary to ship this feature" - and this is fair enough, I think; we kind of do accept the nature of PHP is that there is some anti-intuitive weirdness versus statically compiled languages. I wasn't convinced at first but I've come to be persuaded even if it's not a perfect implementation of default methods as I would have wanted them, it's still a significant improvement on the trait + interface model we have now. It's ultimately a step in the right direction and I'm disappointed now it looks like it's not going to happen, at least in the next release. Would be good to know from some of the no votes if they'd reconsider for a future version.