* @param body the boy of the function whose propagated return type is to be computed
* @return the propagated return type that was computed
*/
private Type computePropagatedReturnTypeOfFunction(FunctionBody body) {
if (body instanceof ExpressionFunctionBody) {
ExpressionFunctionBody expressionBody = (ExpressionFunctionBody) body;
return expressionBody.getExpression().getBestType();
}
if (body instanceof BlockFunctionBody) {
final Type[] result = {null};
body.accept(new GeneralizingAstVisitor<Void>() {
@Override