@Override
    protected void doResolve(TypeContext context) {
        if (expressions().isEmpty()) return;

        var outputType = resolveForwards(context);
        assignOutputType(outputType);
        resolveBackwards(context);

        for (Expression expression : expressions())
            context.resolve(expression);
    }
Resolves types backwards and returns the required input, or null if resolution could not progress to the start.
indexinglanguage/src/main/java/com/yahoo/vespa/indexinglanguage/expressions/StatementExpression.java