On Wed, Aug 6, 2014 at 12:04 PM, via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> wrote:
On Wednesday, 6 August 2014 at 16:48:57 UTC, Timothee Cour via Digitalmars-d-learn wrote:
Thanks, I know with statement could be used but I was hoping for a solution
not involving adding syntax to call site.

If you control the declaration of the enum, you could write:

alias a1 = A.a1;
alias a2 = A.a2;

A bit tedious, but it works, and could be automated if need be.

yes, but that pollutes the scope, what I wanted was to only expose the aliases in places where A is expected, see motivational in previous message:

void fun(with(A){A a}, int b){...} //conceptually like this
void test(){
 int a1=1;
 fun(A.a1, a1); 
 fun(a1, a1);    // first a1 refers to A.a1, second one to local variable int a1
}

ok I guess this isn't possible using current semantics.