aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-09-30 17:31:10 +0100
committerMichael Williamson <mike@zwobble.org>2023-09-30 17:31:10 +0100
commitce8dfcfecd0937fbf2f4d5b941517f3750f29af2 (patch)
tree62a208d4b517c642d40dc42d0c7fdef6f5943d3c /src/main/java
parentbc735ece60ac6cc3b0624d01408e2c95cc575533 (diff)
Add subtyping for bottom type
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java
index c9576191..b73011ce 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java
@@ -8,6 +8,18 @@ public class TypeCheckerSubTyping {
}
static boolean isSubType(Type subType, Type superType, TypeCheckerContext context) {
- return superType == Types.TOP || subType.equals(superType);
+ if (superType == Types.TOP) {
+ return true;
+ }
+
+ if (subType == Types.BOTTOM) {
+ return true;
+ }
+
+ if (subType.equals(superType)) {
+ return true;
+ }
+
+ return false;
}
}