Actually, looking at the original PR #12129 vs #12590, the behaviour has shifted subtly.

The original PR simply warns about that this will not be supported in the future (`array_delegable?` still returns true if the method ends with a bang) but doesn't change the behaviour, which is how breaking changes like these are usually handled (deprecated then removed in next version).

In #12590, the behaviour changed to "this would no longer work without warning". Is this shift intentional? I mean if this is rarely used or will cause serious errors, than maybe this is justified, but otherwise, the original behaviour seems more inline with the usual policy. (It should still at least warn though, imo)

Sorry for bombarding you with questions :P

cc @rafaelfranca