struct Test { int i; alias i this; } auto testFunct( Test i){ } void main() { Test t; t = 1; testFunct( 1); } The assignment is fine, but the call is rejected by dmd. See also http://forum.dlang.org/post/fqfonkcdcjuwbaacqshe@forum.dlang.org