Thread overview
[Issue 13867] Overriding a method from an extern(C++) interface requires extern(C++) on the method definition
Jan 23, 2015
Guillaume Chatelet
Jan 24, 2015
yebblies
Apr 26, 2015
nick
Apr 26, 2015
nick
Apr 30, 2015
nick
May 06, 2016
Lionello Lunesu
January 23, 2015
https://issues.dlang.org/show_bug.cgi?id=13867

Guillaume Chatelet <chatelet.guillaume@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |C++
                 CC|                            |chatelet.guillaume@gmail.co
                   |                            |m

--
January 24, 2015
https://issues.dlang.org/show_bug.cgi?id=13867

yebblies <yebblies@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |diagnostic
                 CC|                            |yebblies@gmail.com
           Hardware|x86_64                      |All
                 OS|Linux                       |All

--
April 26, 2015
https://issues.dlang.org/show_bug.cgi?id=13867

nick <nicolas.jinchereau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |nicolas.jinchereau@gmail.co
                   |                            |m

--
April 26, 2015
https://issues.dlang.org/show_bug.cgi?id=13867

--- Comment #1 from nick <nicolas.jinchereau@gmail.com> ---
+1 for allowing extern(C++) interface members to be implemented without
specifying the linkage.

In fact, I believe it is a bug for this not to be the case.

Consider this example:

interface A {
    void foo();
}

extern(C++) interface B {
    void foo();
}

class Test : A, B {
    void foo() { }
    extern(C++) void foo(){}
}

void main() {
    Test test = new Test();
    test.foo();            // error: ambiguous call to 'foo'
}

I believe the fact that the above example would compile fine if 'extern(C++)' was removed reinforces this point.

I think this should be changed to a bug.

--
April 30, 2015
https://issues.dlang.org/show_bug.cgi?id=13867

nick <nicolas.jinchereau@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|enhancement                 |normal

--
May 06, 2016
https://issues.dlang.org/show_bug.cgi?id=13867

Lionello Lunesu <lio+bugzilla@lunesu.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull
                 CC|                            |lio+bugzilla@lunesu.com

--
May 06, 2016
https://issues.dlang.org/show_bug.cgi?id=13867

--- Comment #2 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/da397409004e3abb434ed2cdcfb0ff8615d28ad9 fix Issue 13867 - Improve error message when overriding an extern(C++) interface

https://github.com/dlang/dmd/commit/b862dab3ba938f4302192947de241b2ac024f95e Merge pull request #5732 from lionello/fix13867

fix Issue 13867 - Improve error message when overriding an extern(C++)
interface

--
May 06, 2016
https://issues.dlang.org/show_bug.cgi?id=13867

github-bugzilla@puremagic.com changed:

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

--
October 01, 2016
https://issues.dlang.org/show_bug.cgi?id=13867

--- Comment #3 from github-bugzilla@puremagic.com ---
Commits pushed to stable at https://github.com/dlang/dmd

https://github.com/dlang/dmd/commit/da397409004e3abb434ed2cdcfb0ff8615d28ad9 fix Issue 13867 - Improve error message when overriding an extern(C++) interface

https://github.com/dlang/dmd/commit/b862dab3ba938f4302192947de241b2ac024f95e Merge pull request #5732 from lionello/fix13867

--