[Issue 19700] [2.085.0-beta.2] Obj-C wrong code overloading selectors and extern(D)
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Sat Mar 2 10:05:29 UTC 2019
https://issues.dlang.org/show_bug.cgi?id=19700
Dlang Bot <dlang-bot at dlang.rocks> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |FIXED
--- Comment #10 from Dlang Bot <dlang-bot at dlang.rocks> ---
dlang/dmd pull request #9402 "Fix issue 19700: Obj-C wrong code overloading
selectors and extern(D)" was merged into stable:
- bc8338ed8c3d30af8685f3c0a4f7576b32b20b3d by Jacob Carlborg:
Fix issue 19700: Obj-C wrong code overloading selectors and extern(D)
The issue is that if an Objective-C class contains at least one method
with a body it will be considered an internally defined class. This
means that for a declaration for a class that is supposed to be
defined externally it won't look for this class externally when
linking. Basically the internally defined class has taken precedence
over the externally defined class. When some of the methods don't have
a body a runtime exception will occur in the Objective-C runtime when
they're called.
The fix is to require `extern (Objective-C) extern` for externally
defined classes. For internally defined classes, `extern (Objective-C)`
is used.
https://github.com/dlang/dmd/pull/9402
--
More information about the Digitalmars-d-bugs
mailing list