Bug 19339 – extern(C++, namespace|string) disables UFCS

Status
RESOLVED
Resolution
FIXED
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2018-10-29T09:10:22Z
Last change time
2019-06-29T14:17:17Z
Keywords
C++
Assigned to
No Owner
Creator
Mathias LANG

Comments

Comment #0 by pro.mathias.lang — 2018-10-29T09:10:22Z
``` extern (C++, std) { void fake_sym (int); } extern (C++, `std`) { void fake_sym2 (int); } extern (C++) { void fake_sym3 (int); } void main () { 42.fake_sym; // Line 5 42.fake_sym2; // Line 6 42.fake_sym3; } ``` Does not compile for `fake_sym` and `fake_sym2`, but works for the 3rd case: ``` test.d(5): Error: no property fake_sym for type int test.d(6): Error: no property fake_sym2 for type int ``` Tested with the latest release (v2.081.2) and ~master.
Comment #1 by turkeyman — 2018-10-29T19:09:16Z
Wtf?! That's not okay.
Comment #2 by pro.mathias.lang — 2019-06-29T14:17:17Z
The string case was fixed by https://issues.dlang.org/show_bug.cgi?id=19339 The non-string case is "by design".