FuncLiteralDeclaration.modifyReturns

Modify all expression type of return statements to tret.

On function literals, return type may be modified based on the context type after its semantic3 is done, in FuncExp::implicitCastTo.

A function() dg = (){ return new B(); } // OK if is(B : A) == true

If B to A conversion is convariant that requires offseet adjusting, all return statements should be adjusted to return expressions typed A.

class FuncLiteralDeclaration
void
modifyReturns
Suggestion Box / Bug Report