--- /dev/null
+package org.simantics.scl.compiler.internal.types.ast;
+
+import org.simantics.scl.compiler.internal.types.TypeElaborationContext;
+import org.simantics.scl.compiler.types.Type;
+import org.simantics.scl.compiler.types.Types;
+import org.simantics.scl.compiler.types.exceptions.SCLTypeParseException;
+
+
+public class TApplyAst extends TypeAst {
+ public final TypeAst function;
+ public final TypeAst parameter;
+
+ public TApplyAst(TypeAst function, TypeAst parameter) {
+ this.function = function;
+ this.parameter = parameter;
+ }
+
+ @Override
+ public void toString(StringBuilder b) {
+ function.toString(b, 2);
+ b.append(' ');
+ parameter.toString(b, 1);
+ }
+
+ @Override
+ public Type toType(TypeElaborationContext context) throws SCLTypeParseException {
+ return Types.apply(function.toType(context), parameter.toType(context));
+ }
+
+ @Override
+ public int getPrecedence() {
+ return 1;
+ }
+}