aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-03-02 14:54:29 +0000
committerMichael Williamson <mike@zwobble.org>2024-03-02 14:54:29 +0000
commitffe44975d9c6ad0cd9c1e870bf4beb669ca69b62 (patch)
tree8df99a324806dd8d1c2d2f856f2e5d1e1bbfc11c /src/main/java
parent89ff33ab9701c2d3e274fdb9772cab5b248c86e7 (diff)
Implement type substitution for effect unions
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/types/TypeSubstitution.java6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/org/shedlang/compiler/types/TypeSubstitution.java b/src/main/java/org/shedlang/compiler/types/TypeSubstitution.java
index f3a75936..7bb79124 100644
--- a/src/main/java/org/shedlang/compiler/types/TypeSubstitution.java
+++ b/src/main/java/org/shedlang/compiler/types/TypeSubstitution.java
@@ -12,8 +12,10 @@ public class TypeSubstitution {
map.substituteEffect(effectParam);
case EffectUnion effectUnion ->
- // TODO: recurse
- effect;
+ Effects.union(
+ substituteEffect(effectUnion.left(), map),
+ substituteEffect(effectUnion.right(), map)
+ );
case IoEffect ioEffect ->
effect;