Re: Re: Strict type declarations not enforced for Reflection API invocation

From: Date: Tue, 10 Oct 2017 16:41:42 +0000
Subject: Re: Re: Strict type declarations not enforced for Reflection API invocation
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-100856@lists.php.net to get a copy of this message
2017-10-10 17:10 GMT+02:00 lists@rhsoft.net <lists@rhsoft.net>: > > Am 10.10.2017 um 16:57 schrieb Christoph M. Becker: > >> On 10.10.2017 at 15:41, Sebastian Bergmann wrote: >> >> I consider this a serious bug that leads to unexpected, confusing problems >>> such as >>> >>> https://github.com/sebastianbergmann/phpunit/issues/2796# >>> issuecomment-335180273. >>> >>> I understand Nikita's point of view (see >>> >>> https://github.com/php/php-src/pull/2837#issuecomment-335405067) >>> that >>> changing this behavior (aka. fixing this bug) can be considered a >>> "non-trivial backwards compatibility break". Therefore I would like to >>> bring this issue to the attention of this list with this mail. >>> >> >> This is most certainly not an *implementation* bug. The RFC which >> introduced strict typing[1] states: >> >> | By default, all PHP files are in weak type-checking mode. >> > > yes but the file in question has strict-types enabled > declare(strict_types=1); Yes, but array_map also uses weak types for the callback, like any other internal function call. But call_user_func is also special-cased, maybe we should do the same with the reflection calls. All in all, two typing modes were a bad idea to begin with, mostly because nobody payed attention to callbacks. Regards, Niklas

« previous php.internals (#100856) next »