www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15298] New: Can't call nested template function unless it's


          Issue ID: 15298
           Summary: Can't call nested template function unless it's
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: dmd
          Assignee: nobody puremagic.com
          Reporter: thecybershadow gmail.com

///////////////////////// test.d /////////////////////////
// Call alias with a parameter.
void callAlias(alias f)()

alias Identity(alias X) = X;

void main()
    int local;

    // Declare an anonymous function template
    // which writes to a local.
    alias a = Identity!((i) { local = i; });

    // Declare a function template which does
    // the same thing.
    void b(T)(T i) { local = i; }

    callAlias!a; // Works
    callAlias!b; // Error: function test.main.b!int.b is a
                 // nested function and cannot be accessed
                 // from test.callAlias!(b).callAlias

As far as I can tell, a and b are essentially the same, except one is

Nov 06 2015