Jump to page: 1 24  
Page
Thread overview
[Issue 13009] [REG2.064] inout overload conflicts with non-inout when used via alias this
[Issue 13009] inout overload conflicts with non-inout when used via alias this
Jul 15, 2014
Vladimir Panteleev
Jul 16, 2014
Sobirari Muhomori
Aug 29, 2014
Vladimir Panteleev
Sep 22, 2014
Andrew Edwards
Oct 06, 2014
Martin Nowak
Oct 06, 2014
Vladimir Panteleev
Oct 19, 2014
Martin Nowak
Oct 19, 2014
Vladimir Panteleev
Feb 16, 2015
Kenji Hara
Oct 30, 2015
Vladimir Panteleev
Nov 03, 2015
Kenji Hara
Jan 29, 2017
bitwise
Dec 21, 2018
Walter Bright
Dec 22, 2018
bitwise
Feb 12, 2020
Walter Bright
Feb 12, 2020
Vladimir Panteleev
Oct 01, 2021
Dlang Bot
Oct 05, 2021
Dlang Bot
Oct 08, 2021
Dlang Bot
July 15, 2014
https://issues.dlang.org/show_bug.cgi?id=13009

Vladimir Panteleev <thecybershadow@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Blocks|                            |12379

--
July 16, 2014
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
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
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
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
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
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
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
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
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.

--
« First   ‹ Prev
1 2 3 4