October 03, 2013
mixin template test()
{
	int next;
}

void foo(alias l, alias t)()
{
	t.next = l.next;
}

void main()
{
	struct A
	{
		int next;
	}
	
	A a;

	mixin test l1;
	mixin test l2;
	
	foo!(l1,a);     //ok!
	foo!(l1,l2);    //compilation error!
}

October 03, 2013
On Thursday, 3 October 2013 at 12:24:38 UTC, Zhouxuan wrote:
> mixin template test()
> {
> 	int next;
> }
>
> void foo(alias l, alias t)()
> {
> 	t.next = l.next;
> }
>
> void main()
> {
> 	struct A
> 	{
> 		int next;
> 	}
> 	
> 	A a;
>
> 	mixin test l1;
> 	mixin test l2;
> 	
> 	foo!(l1,a);     //ok!
> 	foo!(l1,l2);    //compilation error!
> }

Local aliasing problems..?

The error message is
  Error: function D main is a nested function and cannot be accessed from t.foo!(l1, l2).foo

Moving the mixins out of main works.