aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-06-09 18:20:45 +0100
committerMichael Williamson <mike@zwobble.org>2023-06-09 18:20:45 +0100
commitfed4d43be44186694f1dc351bbfb673f740364ca (patch)
tree9a733d07159e750c42314c4f40ac01d9f75c0647 /src/main/java
parent026c9207de0685cc665eef980c2934dc53e9cf90 (diff)
Add function type
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/types/FunctionType.java9
-rw-r--r--src/main/java/org/shedlang/compiler/types/Type.java2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/types/FunctionType.java b/src/main/java/org/shedlang/compiler/types/FunctionType.java
new file mode 100644
index 00000000..07505821
--- /dev/null
+++ b/src/main/java/org/shedlang/compiler/types/FunctionType.java
@@ -0,0 +1,9 @@
+package org.shedlang.compiler.types;
+
+import java.util.List;
+
+public record FunctionType(
+ List<Type> positionalArgs,
+ Type returnType
+) implements Type {
+}
diff --git a/src/main/java/org/shedlang/compiler/types/Type.java b/src/main/java/org/shedlang/compiler/types/Type.java
index b104f137..267fdcb8 100644
--- a/src/main/java/org/shedlang/compiler/types/Type.java
+++ b/src/main/java/org/shedlang/compiler/types/Type.java
@@ -1,4 +1,4 @@
package org.shedlang.compiler.types;
-public sealed interface Type permits StringType, UnitType {
+public sealed interface Type permits FunctionType, StringType, UnitType {
}