Re: Reverting "Too Few Arguments Exception" RFC
| From: | Christoph M. Becker | Date: | Thu, 25 Aug 2016 12:12:41 +0000 |
| Subject: | Re: Reverting "Too Few Arguments Exception" RFC | ||
| References: | 1 2 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-95445@lists.php.net to get a copy of this message | ||
On 24.08.2016 at 18:45, Nikita Popov wrote:
> On Aug 24, 2016 9:55 AM, "Davey Shafik" <davey@php.net> wrote:
>>
>> Given this thread: http://externals.io/thread/233
>>
>> I'm not happy with the state of this going into RC1 next week, and without
>> changes (such as the patch I provided), I would like to revert this change
>> and leave it for 7.2.
>>
>> My patch will _retain_ BC for internal functions with non strict_types
>> (except for the error message, which can be reconciled), and for functions
>> that previously threw a TypeError, ArgumentCountError is a subclass so BC
>> is preserved there also.
>>
>> The issue is that the array functions that do this argument count checking
>> themselves and still issue a warning, regardless of strict_types.
>>
>> We can leave the original behavior for array functions, but they then
>> differ from other internals functions.
>>
>> It is a BC break for userland functions (as per the RFC), throwing an
>> ArgumentCountError regardless of strict_types.
>>
>> At this point, we _must_ come to consensus by Monday to get it into RC1
> (if
>> there are changes needed) or we should remove it from 7.1. Also, I would
>> like someone more experienced to review my patch.
>
> I have some trouble understanding what the issue is here. The mentioned RFC
> affects only userland functions, so the non-standard behavior of some array
> functions shouldn't matter.
>
> Personally I am entirely indifferent as to what exception gets thrown when
> too little arguments are passed -- this is a type of error that should not
> be caught by anything but catch-all handlers.
>
> Inability to provide a more specific exception should not be a blocker for
> this, especially as this is beyond the scope of the original RFC.
Indeed, the RFC explicitly claims:
| Behavior of internal functions is not going to be changed.
The RFC has been accepted, so I don't see a reason to revert the
respective changes (even though I'm still not happy with this change
happening in a minor version).
--
Christoph M. Becker