[Issue 4841] -inline wrecks nested struct with alias template parameter (An array()/map inlining problem)

d-bugmail at puremagic.com d-bugmail at puremagic.com
Sat Feb 16 15:54:44 PST 2013


http://d.puremagic.com/issues/show_bug.cgi?id=4841


Jonathan M Davis <jmdavisProg at gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jmdavisProg at gmx.com


--- Comment #10 from Jonathan M Davis <jmdavisProg at gmx.com> 2013-02-16 15:54:35 PST ---
Another example of this would be:

import std.string;

void main()
{
    auto str = new char[](5);
    assert(sformat(str, "%s", 42) == "42");
}

If you compile with -inline, it fails to compile with the latest master, giving

/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2593): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2593): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2597): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2593): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2593): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2596): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2597): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2601): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2601): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2604): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2604): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2604): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2605): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, char[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2601): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2601): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)[]).put
/home/jmdavis/dmd2/linux/bin/../../src/phobos/std/string.d(2604): Error:
function std.string.sformat!(char, int).sformat is a nested function and cannot
be accessed from std.range.put!(Sink, const(char)[]).put

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list