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

           Summary: template identifier is not a member of alias
           Product: D
           Version: D2
          Platform: Other
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: nob...@puremagic.com
        ReportedBy: ellery-newco...@utulsa.edu


--- Comment #0 from Ellery Newcomer <ellery-newco...@utulsa.edu> 2011-08-11 
20:07:06 PDT ---
inside this issue is a forward reference error, so it might just be a dup of
some other issue, but here it is anyways. A workaround exists and is expressed
in the code.

dmd32 2.054

the code:

struct SignalOnChange(L...) {
    static struct Inner(IndexedBy){
        static auto r(){
            Inner i;
            return i;
        }
    }
}

enum UseWhatWorks = false;

struct ContainerArgs(X...){
    static if(UseWhatWorks){
        alias typeof(X[0].Inner!(int).r()) Signals;
    }else{
        alias X[0] Signals0;
        alias Signals0.Inner!(int) Signals;
    }
}

class MIC(RawValue, Args...){
    alias ContainerArgs!(Args).Signals NormSignals;
}

void main(){
    alias MIC!(int,
            SignalOnChange!(int,int)) C;
}


the fireworks:

error11.d(26): Error: alias
error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals0
template identifier Inner is not a member of alias Signals0
error11.d(26): Error: alias
error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals0
template identifier Inner is not a member of alias Signals0
error11.d(27): Error: no property 'Inner!(int)' for type
'SignalOnChange!(int,int)'
error11.d(27): Error: alias
error11.ContainerArgs!(SignalOnChange!(int,int)).ContainerArgs.Signals cannot
alias an expression __error
error11.d(32): Error: template instance
error11.ContainerArgs!(SignalOnChange!(int,int)) error instantiating
error11.d(36):        instantiated from here:
MIC!(int,SignalOnChange!(int,int))
error11.d(32): Error: forward reference to 'Signals0.Inner!(int)'

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

Reply via email to