diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java index 6260c9ef..75b49f39 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeCheckerSubTyping.java @@ -183,28 +183,24 @@ public class TypeCheckerSubTyping { subtype instanceof ConstructedType<?> subtypeConstructed && supertypeConstructed.constructor().equals(subtypeConstructed.constructor()) ) { - var failed = false; for (var i = 0; i < subtypeConstructed.constructor().params().size(); i++) { var subtypeArg = subtypeConstructed.args().get(i); var supertypeArg = supertypeConstructed.args().get(i); var result1 = tryAddSubtypeConstraint(subtypeArg, supertypeArg, constraints); if (result1.isEmpty()) { - failed = true; - break; + return Optional.empty(); } constraints = result1.get(); var result2 = tryAddSubtypeConstraint(supertypeArg, subtypeArg, constraints); if (result2.isEmpty()) { - failed = true; - break; + return Optional.empty(); } constraints = result2.get(); } - if (!failed) { - return Optional.of(constraints); - } + + return Optional.of(constraints); } if ( |
