> If you want the reverse to be true, then your code has bugs waiting to > show themselves
I don’t, I just don’t want fatal errors in production when I upgrade library I extend. Let me keep logging such issues and fix them later, instead of producing hard crash for customers. > The earlier we can catch these bugs, the better. What prevents somebody to catch warnings? This RFC is about hard crash that I disagree with. This type of issue is problematic only when expecting parent but injecting child. > On 9. Apr 2019, at 17:35, Levi Morrison <le...@php.net> wrote: > > On Tue, Apr 9, 2019 at 9:00 AM Gabriel O <gade...@gmail.com> wrote: >> >> I believe rfc deals with reverse situation >> >> On 9 April 2019 4:47:50 PM Dan Ackroyd <dan...@basereality.com> wrote: >> >>> On Tue, 9 Apr 2019 at 11:58, Gabriel O <gade...@gmail.com> wrote: >>> >>>> And this RFC conveniently shows only big LSP violation examples like array >>>> -> int, but not widely used narrowing like mixed/object -> specific >>>> instance. >>> >>> >>> Type narrowing or contravariant parameters is properly supported for >>> PHP 7.4: >>> https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters >>> , which is why this RFC doesn't need to cover them. >>> >>> cheers >>> Dan >>> Ack > > If you want the reverse to be true, then your code has bugs waiting to > show themselves. The earlier we can catch these bugs, the better. > > One thing to note is that return type information does permit > optimizations in some cases. For instance, I believe if a private > method has a return type constraint of int, then the optimizer can > rule out certain edge cases, and in some cases use type specialized > handlers. We can do these sorts of optimizations in more places if the > LSP issues are always errors, instead of warnings. > > So for both correctness and performance, I support this change. -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php