Was just browsing through some front end code and found this bit of code in canInline() in inline.c: /* If any parameters are Tsarray's (which are passed by reference) * or out parameters (also passed by reference), don't do inlining. */ if (parameters) { for (int i = 0; i < parameters->dim; i++) { VarDeclaration *v = (VarDeclaration *)parameters->data[i]; if (v->isOut() || v->isRef() || v->type->toBasetype()->ty == Tsarray) goto Lno; } } The comment, as far as I can see, is obsolete since static arrays are now value types? Perhaps this restriction can be lifted now? Especially for functions on small vectors, I would expect inlining to be very beneficial. Just putting this here to have it not overlooked.
Seems to have been fixed in Changeset [497].