On 21 August 2016 at 17:01, Marco Pivetta <ocram...@gmail.com> wrote: > Yes, but the __toString API is used for codegen, and current code > generators don't expect a `?` to appear there.
And they will continue to not have a `?` when reflecting PHP 7.0 code. It is only when reflecting 7.1 code, that has a different set of syntax, that the library will need to be changed to support a new version of PHP code. This is exactly the same as userland PHP code parsers. They continue to work in new versions of PHP, but only when analysing code from versions they were written to support. They will need to be upgraded to be able to parse syntax that wasn't present in the version of PHP that they were initially written for. > How many ... failing unit tests does it take to explain a BC break? As nullable types are only introduced in PHP 7.1, I strongly suspect that you won't have any unit tests that would work on PHP 7.0 that will start failing on PHP 7.1. So the answer is 'more than zero' ? We don't consider adding new features to be a BC break, as any code analyser or thing that uses reflection will continue to work, when they are given code from a version they were designed to support. btw I object to adding the leading slash. Escaping on output, is almost always the correct thing to do. And escaping intermediate representations of data is almost always the wrong thing. cheers Dan Ack -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php