[Issue 20012] export inside mixin doesn't seem to work

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jul 24 04:57:47 UTC 2019


--- Comment #14 from Manu <turkeyman at gmail.com> ---
I use those workarounds; but I still have to explain why it's broken to people.

Those cases you describe, which are all cases of effectively anonymous
functions, should be the ones that use pragma(mangle), you can generate any
string you like and stuff it in there, the name is totally irrelevant. But
you're telling that I should generate the proper name in the default case,
which is the only case where the name IS relevant.

C functions have naming requirements too; C functions need to have an
underscore, or not, depending on the ABI. I shouldn't have to implement that
logic to emit a C function name with or without underscore.

The case where extern(C) doesn't mean extern(C) (your proposed cases where you
want to emit many functions, which is distinctly NOT C) are the ones that
should be doing special work; it should require effort to violate the meaning
of extern(C), not the other way around.

I also bet there are precisely zero use cases as you describe in existence.


More information about the Digitalmars-d-bugs mailing list