Jump to page: 1 2
Thread overview
[Issue 14626] [REG2.066] byValue doesn't work with inout AA
Jul 01, 2015
Martin Nowak
Jul 01, 2015
Martin Nowak
Jul 08, 2015
Kenji Hara
Jul 16, 2015
Kenji Hara
Jul 16, 2015
Kenji Hara
Jul 16, 2015
Kenji Hara
May 28, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

Steven Schveighoffer <schveiguy@yahoo.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |schveiguy@yahoo.com

--- Comment #1 from Steven Schveighoffer <schveiguy@yahoo.com> ---
That it worked before I think is a bug (the compiler did a lot of hand-waving with AA's to avoid sticky issues).

We really really need a way to specify something returns or uses inout that isn't a *new* inout scope. Only then, can we get this to work.

--
July 01, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |code@dawg.eu

--- Comment #2 from Martin Nowak <code@dawg.eu> ---
But byValue should work with const AAs and inout is convertible to const, so it seems the template signature of byValue is incorrect.

--
July 01, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

--- Comment #3 from Martin Nowak <code@dawg.eu> ---
Looks like the classical, mutable iterator over const/immutable container issue
complicated by inout.
Not sure if we can solve it with the current language features.

--
July 08, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|                            |14788

--
July 16, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

--- Comment #4 from Kenji Hara <k.hara.pg@gmail.com> ---
(In reply to Steven Schveighoffer from comment #1)
> That it worked before I think is a bug (the compiler did a lot of hand-waving with AA's to avoid sticky issues).

Yes, there was a compiler hack for the inout key/value types. https://github.com/D-Programming-Language/dmd/blob/v2.065.0/src/mtype.c#L4897

(In reply to Martin Nowak from comment #3)
> Looks like the classical, mutable iterator over const/immutable container
> issue complicated by inout.
> Not sure if we can solve it with the current language features.

It would be a new DIP to extend inout feature.

--
July 16, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #5 from Kenji Hara <k.hara.pg@gmail.com> ---
Emulate the 2.065 and earlier behavior. https://github.com/D-Programming-Language/druntime/pull/1324

--
July 16, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

Kenji Hara <k.hara.pg@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Depends on|14788                       |

--
July 17, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

github-bugzilla@puremagic.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--
July 17, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

--- Comment #6 from github-bugzilla@puremagic.com ---
Commits pushed to stable at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/6d57c68df1f72e9416548ad450e56a16bb1fdb90 fix Issue 14626 - byValue doesn't work with inout AA

Until 2.065, compiler had substituted all `inout` qualifiers in the `Key` and `Value` types to `const`, then those had passed to the template struct `AssociativeArray`.

https://github.com/D-Programming-Language/dmd/blob/v2.065.0/src/mtype.c#L4897

This change emulates that.

https://github.com/D-Programming-Language/druntime/commit/ad900eb3cc38397c4fa3a0a805793f002d03abc7 Merge pull request #1326 from 9rnsr/fix14626

[REG2.066] Issue 14626 - byValue doesn't work with inout AA

--
July 24, 2015
https://issues.dlang.org/show_bug.cgi?id=14626

--- Comment #7 from github-bugzilla@puremagic.com ---
Commits pushed to master at https://github.com/D-Programming-Language/druntime

https://github.com/D-Programming-Language/druntime/commit/6d57c68df1f72e9416548ad450e56a16bb1fdb90 fix Issue 14626 - byValue doesn't work with inout AA

https://github.com/D-Programming-Language/druntime/commit/ad900eb3cc38397c4fa3a0a805793f002d03abc7 Merge pull request #1326 from 9rnsr/fix14626

--
« First   ‹ Prev
1 2