Thread overview
[Issue 10785] Interface diamond covariance causes silent breakage
Jul 18, 2015
Kenji Hara
June 09, 2015
https://issues.dlang.org/show_bug.cgi?id=10785

Andrei Alexandrescu <andrei@erdani.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|D1 & D2                     |D2

--
July 18, 2015
https://issues.dlang.org/show_bug.cgi?id=10785

Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |DUPLICATE

--- Comment #4 from Kenji Hara <k.hara.pg@gmail.com> ---
(In reply to FeepingCreature from comment #0)
> Consider this code:
> 
> interface A { A foo(); }
> 
> interface A1 : A { A1 foo(); }
> interface A2 : A { A2 foo(); }
> 
> class C : A1, A2 {
>   override C foo() { return new C; }

To implement A1.foo, the returned class C reference will be implicitly upcasted
to A1.
Then the issue 1747 happens.

> }

*** This issue has been marked as a duplicate of issue 1747 ***

--
March 30, 2019
https://issues.dlang.org/show_bug.cgi?id=10785
Issue 10785 depends on issue 10806, which changed state.

Issue 10806 Summary: Interface covariance for more than one interface at once also broken https://issues.dlang.org/show_bug.cgi?id=10806

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--