aboutsummaryrefslogtreecommitdiff
path: root/src/test/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-03-02 13:55:47 +0000
committerMichael Williamson <mike@zwobble.org>2024-03-02 13:56:00 +0000
commita7108d4744d972886845690df7f66edb3b5d48ec (patch)
tree8c39b4df4c9fefd45ddec7d333c78bc383ca3902 /src/test/java
parentf6a85de5487af16af0f48eced8f770dbada24f75 (diff)
Add test for type-checking type param
Diffstat (limited to 'src/test/java')
-rw-r--r--src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelParamTests.java27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelParamTests.java b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelParamTests.java
new file mode 100644
index 00000000..08ba5d6b
--- /dev/null
+++ b/src/test/java/org/shedlang/compiler/typechecker/TypeCheckerTypeLevelParamTests.java
@@ -0,0 +1,27 @@
+package org.shedlang.compiler.typechecker;
+
+import org.junit.jupiter.api.Test;
+import org.shedlang.compiler.ast.untyped.Untyped;
+import org.shedlang.compiler.types.NamespaceName;
+import org.shedlang.compiler.types.Scope;
+import org.shedlang.compiler.types.TypeParam;
+
+import static org.zwobble.precisely.AssertThat.assertThat;
+import static org.zwobble.precisely.Matchers.equalTo;
+
+public class TypeCheckerTypeLevelParamTests {
+ private static final NamespaceName NAMESPACE_NAME = NamespaceName.of("Example");
+
+ @Test
+ public void canTypeCheckTypeParam() {
+ var untyped = Untyped.typeParam("T");
+ var scope = new Scope.Function(NAMESPACE_NAME, "f");
+
+ var result = TypeChecker.typeCheckTypeLevelParam(
+ untyped,
+ scope
+ );
+
+ assertThat(result, equalTo(new TypeParam(scope, "T")));
+ }
+}