struct Line { int line; alias line this; this(int line) { this.line = line; } } void foo(Line line1 = __LINE__, int line2 = __LINE__, int line3 = int(__LINE__)) { assert(line1 == 12); assert(line2 == 21); assert(line3 == 12); } void main() { foo(); }