Thread overview
[Issue 14962] [REG2.068] compiler inference of attributes for nested map seems broken
Aug 26, 2015
Jack Applegame
Aug 27, 2015
Kenji Hara
Aug 28, 2015
Kenji Hara
Aug 28, 2015
Kenji Hara
August 26, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

Jack Applegame <japplegame@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |japplegame@gmail.com

--
August 27, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

--- Comment #1 from Kenji Hara <k.hara.pg@gmail.com> ---
Two cases have different root issues, but had been introduce at once by: https://github.com/D-Programming-Language/dmd/pull/4464

--
August 28, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

--- Comment #2 from Kenji Hara <k.hara.pg@gmail.com> ---
(In reply to Steven Schveighoffer from comment #0)
> Another case:
> 
> import std.range;
> import std.algorithm;
> 
> class Foo {
>     int baz() {    return 1;}
>     void bar() {
>         auto s = [1].map!(i => baz()); // compiles
>         auto r = [1].map!(i => [1].map!(j => baz())); // error
>     }
> }
[snip]

I separated the second case into issue 14973.

--
August 28, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

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

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

--- Comment #3 from Kenji Hara <k.hara.pg@gmail.com> ---
The behavior comes from issue 14781. So I also changed it to a regression.

https://github.com/D-Programming-Language/dmd/pull/4970

--
August 30, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

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

https://github.com/D-Programming-Language/dmd/commit/0c9f5a272bf47e1ad81d2a8a4c56adfd3461fde7 fix Issue 14962 - compiler inference of attributes for nested map seems broken

It has been revealed since the commit/PR:

f22d9dbb42b6a32d5b4c7c9f3db45e07c9f8aaf6 https://github.com/D-Programming-Language/dmd/pull/4464

By the fix, some attribute inference order bug for template functions had
been fixed - when foo() calls bar!(), and bar!() calls baz!(), the bar!()
attribute should be inferred after the attrs of baz!() determined.

And then, compiler infers the purity of nested two lambdas in the 14962 test case, and the case has been rejected by the 14781 behavior.

https://github.com/D-Programming-Language/dmd/commit/b30556bf2ce1b4e49fdba51ea759725c2fc6e48f Merge pull request #4970 from 9rnsr/fix14781

[REG2.067/2.068] Issue 14781 & 14962 - fix problematic purity inference introduced in #3626

--
August 30, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

github-bugzilla@puremagic.com changed:

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

--
September 02, 2015
https://issues.dlang.org/show_bug.cgi?id=14962

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

https://github.com/D-Programming-Language/dmd/commit/0c9f5a272bf47e1ad81d2a8a4c56adfd3461fde7 fix Issue 14962 - compiler inference of attributes for nested map seems broken

https://github.com/D-Programming-Language/dmd/commit/b30556bf2ce1b4e49fdba51ea759725c2fc6e48f Merge pull request #4970 from 9rnsr/fix14781

--