[Issue 13009] inout overload conflicts with non-inout when used via alias this
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Wed Aug 27 00:21:59 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13009
Vladimir Panteleev <thecybershadow at gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P2 |P1
Severity|blocker |regression
--- Comment #3 from Vladimir Panteleev <thecybershadow at gmail.com> ---
Today I stumbled upon this issue again, and discovered it's a regression.
One manifestation of this issue is that it prevents using static methods of
RefCounted's wrapped class.
Example:
////////// test.d /////////
import std.typecons;
struct SImpl
{
static void open() {}
}
alias S = RefCounted!SImpl;
void main()
{
S.open();
}
///////////////////////////
Works in DMD 2.063. In 2.064.2 and newer:
test.d(14): Error: std.typecons.RefCounted!(SImpl,
cast(RefCountedAutoInitialize)1).RefCounted.refCountedPayload called with
argument types () matches both:
C:\...\std\typecons.d(3893): std.typecons.RefCounted!(SImpl,
cast(RefCountedAutoInitialize)1).RefCounted.refCountedPayload()
and:
C:\...\std\typecons.d(3885): std.typecons.RefCounted!(SImpl,
cast(RefCountedAutoInitialize)1).RefCounted.refCountedPayload()
Introduced in https://github.com/D-Programming-Language/dmd/pull/2047
--
More information about the Digitalmars-d-bugs
mailing list