Interesting. Defining foo(x, y=0) is supposed to be equivalent to defining foo(x, y) and foo(x)=foo(x,0), but it looks like the latter form triggers inlining and the former does not. The latter form is more common in older Julia code because the former syntax was only added in Julia 0.2.
However, I can't reproduce it on simpler examples; in most cases that I try, the two definition forms produce the same code.
