https://issues.dlang.org/show_bug.cgi?id=17748
Martin Nowak <[email protected]> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |[email protected] --- Comment #7 from Martin Nowak <[email protected]> --- https://dlang.slack.com/archives/C1ZDHBB2S/p1508243056000454 IIUC, `extern(C)` is simply ignored for non-static member methods atm., neither changes mangling nor the method ABI. The only case where that is helpful is with blunt struct scope `extern(C)`. ```struct S { extern(C): // just everything static void foo() { } float foo(int a, float b) { return a + b; } } ``` At a first look it seems reasonable to deprecate using `extern(C)` on non-static member methods, and require people to rewrite above code to ```struct S { extern(C) static void foo() { } float foo(int a, float b) { return a + b; } } ``` . Static methods should support extern(C) calling convention, and in that case it seems reasonable to stick with the current behavior, to only affect the calling convention, but not the mangling. --
