docs: public static Type inferType(Expression2 expression, Type rootType, TypeDeclaration typeDeclaration) {
      Map<Integer, Type> subexpressionTypeMap = inferTypeMap(expression, rootType, typeDeclaration);
      return subexpressionTypeMap.get(0);
    }