Hi Dmitry,

On 5 February 2015 at 14:31, Dmitry Stogov <dmi...@zend.com> wrote:

> Hi reeze,
>
> The original "return type" patch was designed to support internal
> functions as well.
> So I think, this is just a good addition.
>
Yes :)

>
> Only one note:
> I'm not sure, if we need the addition check in ZEND_DO_FCALL handler.
> On one hand it verifies that internal function returns proper result (but
> they MUST do it).
> On the other hand, it also slowdowns each additional call.
>
> Instead of modifying zend_verify_return_type() I would add
> zend_verify_internal_return_type(),
> and use: ZEND_ASSERT((fbc->common.fn_flags & ZEND_ACC_HAS_RETURN_TYPE) &&
> zend_verify_internal_return_type(fbc, EX_VAR(opline->result.var)));
>
> This would allow catching error in DEBUG build, but won't slowdown RELEASE
> build.
>
> If you agree, I may just commit this.
>

Sure!  Thank you!


>
> Thanks. Dmitry.
>
> On Thu, Feb 5, 2015 at 7:01 AM, reeze <re...@php.net> wrote:
>
>> PS:
>>
>> There is no enough unit tests to cover all of the branches, if we want
>> then
>> I have to add a bunch of for testing functions and classes in ZEND_DEBUG,
>> what is the better way?
>>
>> On 5 February 2015 at 11:54, reeze <re...@php.net> wrote:
>>
>> > Hi all,
>> >
>> > RFC:  https://wiki.php.net/rfc/internal_function_return_types
>> >
>> > I noticed that return types RFC[1] didn't support internal functions, I
>> > just open a PR[2]  to support it.
>> >
>> > There are some open issues we can discuss:
>> >
>> > 1. User land return types didn't stop the php, the current
>> implementation
>> > raise error to stop PHP from start, this may help debug problem.
>> > 2. User land return types didn't support Nullable types, but the RFC
>> > return types internally support it, I think it is feature. is that
>> > acceptable?
>> >
>> > Thank you.
>> >
>> > ---
>> >
>> > [1] https://wiki.php.net/rfc/return_types
>> > [2] https://github.com/php/php-src/pull/1050
>> >
>>
>
>


-- 
Reeze Xia
http://reeze.cn

Reply via email to