Why can't I assign a mixin to an alias?

Mihail-K via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Jun 10 15:56:28 PDT 2016


On Friday, 10 June 2016 at 22:38:29 UTC, Dechcaudron wrote:
> I have the following code:
>
> private string getVariableSignalWrappersName(VarType)()
> {
> 	return VarType.stringof ~ "SignalWrappers";
> }
>
> void addVariableListener(VarType)(int variableIndex, void 
> delegate(int, VarType))
> {
> 	alias typeSignalWrappers = 
> mixin(getVariableSignalWrappersName!VarType);
> }
>
> On compilation, the following error is issued:
> Error: basic type expected, not mixin
>
> Why should it be like that? I believe the compiler should not 
> impose restrictions on what mixins can or cannot do :/

I'm no expert, but this looks like a grammar issue more than 
anything else. You can work around it by moving the alias 
declaration into the mixin.

mixin("alias typeSignalWrappers = " ~ 
getVariableSignalWrappersName!VarType ~ ";");



More information about the Digitalmars-d-learn mailing list