Re: [RFC][Discuss] Covariant return- and contravariant parameter- types
| From: | Benjamin Morel | Date: | Tue, 27 Nov 2018 18:26:09 +0000 |
| Subject: | Re: [RFC][Discuss] Covariant return- and contravariant parameter- types | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-103519@lists.php.net to get a copy of this message | ||
I can only say that I've been waiting for this feature for years and am
really looking forward to see it implemented, hopefully in 7.4.
Good job on the RFC, I wish you luck!
On Mon, 26 Nov 2018 at 22:26, Levi Morrison <levim@php.net> wrote:
> I am happy to announce my latest RFC, [Covariant Returns and
> Contravariant Parameters][1], is open for discussion. If you do not
> recognize those terms then hopefully the introduction coupled with the
> [examples][2] will help. Here is one snippet that demonstrates
> covariant return types:
>
> <?php
> interface Repository {
> function fetch(int $id): ?Entity;
> }
>
> class UserFactory implements Repository {
> function fetch(int $id): ?UserEntity {
> /* Since UserEntity is an Entity, this is now allowed */
> /* ... implementation ... */
> }
> }
> ?>
>
> Covariant return types and contravariant parameter types are highly
> requested features; here are a few of the bug reports:
>
> * https://bugs.php.net/bug.php?id=71825
> * https://bugs.php.net/bug.php?id=72442
> * https://bugs.php.net/bug.php?id=75385
> * https://bugs.php.net/bug.php?id=75823
>
> There is a [preliminary implementation][3] that is available. It will
> not be rebased during discussion to allow people to check out the code
> and get updates without worrying about it breaking. The code quality
> can definitely be improved, and there are still a few todo comments in
> the code.
>
> Please do not discuss the items found in [Future Scope][4] as part of
> this thread, which includes discussing types such as
mixed,
> scalar, numeric, etc.
>
> I look forward to your feedback, and especially with your
> experimentation with the implementation.
>
> Levi Morrison
>
> [1]:
>
> https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters
> [2]:
>
> https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters#examples
> [3]:
>
> https://github.com/php/php-src/compare/master...morrisonlevi:variance2
> [4]:
>
> https://wiki.php.net/rfc/covariant-returns-and-contravariant-parameters#future_scope
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>