[Issue 13009] New: inout overload conflicts with non-inout when used via alias this
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Mon Jun 30 01:28:11 PDT 2014
https://issues.dlang.org/show_bug.cgi?id=13009
Issue ID: 13009
Summary: inout overload conflicts with non-inout when used via
alias this
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Keywords: rejects-valid
Severity: normal
Priority: P2
Component: DMD
Assignee: nobody at puremagic.com
Reporter: thecybershadow at gmail.com
Blocks: 12368
From
https://github.com/D-Programming-Language/phobos/pull/2011#issuecomment-38431708:
///////// test.d ////////
struct T
{
void put(char c) {}
}
struct S
{
T t;
@property
T getT()
{
return t;
}
@property
inout(T) getT() inout
{
return t;
}
alias getT this;
}
alias Sput = S.put;
/////////////////////////
This produces the errors:
test.d(25,1): Error: test.S.getT called with argument types () matches both:
test.d(11,7): test.S.getT()
and:
test.d(17,14): test.S.getT()
If this is not a compiler bug, then the implementation of RefCounted needs to
be changed to account for this behavior.
--
More information about the Digitalmars-d-bugs
mailing list