the flag dip1000 was not shown in the help file. And indeed for the second program compiling with dip1000 results in, test.d(6): Error: scope variable r may not be returned But the first program still compiles and runs without problem, even with dip1000.