March 02, 2019 [Issue 19700] [2.085.0-beta.2] Obj-C wrong code overloading selectors and extern(D) | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=19700 Dlang Bot <dlang-bot@dlang.rocks> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #10 from Dlang Bot <dlang-bot@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 -- |
Copyright © 1999-2021 by the D Language Foundation