July 15, 2014 [Issue 13009] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 Vladimir Panteleev <thecybershadow@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |12379 -- |
July 16, 2014 [Issue 13009] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 --- Comment #1 from Sobirari Muhomori <dfj1esp02@sneakemail.com> --- The struct literal should be probably mutable, so mutable overload (exact mutability match) should be preferred. If its mutability can't be affected by the method. -- |
August 05, 2014 [Issue 13009] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 hsteoh@quickfur.ath.cx changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |hsteoh@quickfur.ath.cx Severity|normal |blocker --- Comment #2 from hsteoh@quickfur.ath.cx --- Blocks: https://github.com/D-Programming-Language/phobos/pull/2011 -- |
August 29, 2014 [Issue 13009] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 Vladimir Panteleev <thecybershadow@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P2 |P1 Severity|blocker |regression --- Comment #3 from Vladimir Panteleev <thecybershadow@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 -- |
September 22, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 Andrew Edwards <edwards.ac@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |edwards.ac@gmail.com Summary|inout overload conflicts |[REG2.064] inout overload |with non-inout when used |conflicts with non-inout |via alias this |when used via alias this -- |
October 06, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 Martin Nowak <code@dawg.eu> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |code@dawg.eu --- Comment #4 from Martin Nowak <code@dawg.eu> --- Why do you need both a mutable and an inout version of the same function? -- |
October 06, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 --- Comment #5 from Vladimir Panteleev <thecybershadow@gmail.com> --- I don't, RefCounted does. -- |
October 19, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 --- Comment #6 from Martin Nowak <code@dawg.eu> --- (In reply to Vladimir Panteleev from comment #5) > I don't, RefCounted does. And why? Shouldn't inout just do the trick? -- |
October 19, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 --- Comment #7 from Vladimir Panteleev <thecybershadow@gmail.com> --- Probably. monarchdodra is planning to fix this: https://github.com/D-Programming-Language/phobos/pull/2011#issuecomment-55572141 -- |
October 26, 2014 [Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this | ||||
---|---|---|---|---|
| ||||
https://issues.dlang.org/show_bug.cgi?id=13009 monarchdodra@gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |monarchdodra@gmail.com --- Comment #8 from monarchdodra@gmail.com --- (In reply to Martin Nowak from comment #6) > (In reply to Vladimir Panteleev from comment #5) > > I don't, RefCounted does. > > And why? Shouldn't inout just do the trick? Yes and no. There shouldn't be overloads. The reason there is a (conditional) mutable version is so that "autoInitialize.Yes" can mutate to create an instance. That said, I think that when you have "autoInitialize.Yes", there should be no inout version at all, since inout *can't* mutate the RefCounted to do said initialization. The conclusion is that while both mutable/inout version are needed, both should be mutually exclusive, and noone should ever see it overloaded. (In reply to Vladimir Panteleev from comment #7) > Probably. monarchdodra is planning to fix this: https://github.com/D-Programming-Language/phobos/pull/2011#issuecomment- 55572141 Not anymore. No time. -- |
Copyright © 1999-2021 by the D Language Foundation