aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
index ad3ed297..3cc5b541 100644
--- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
+++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java
@@ -409,22 +409,15 @@ public class TypeChecker {
var structTypeInfo = context.structTypeInfo(
receiverType,
untyped.fieldName()
- );
-
- if (structTypeInfo.isEmpty()) {
- throw new MissingStructTypeInfoError(receiverType, untyped.source());
- }
+ ).orElseThrow(() -> new MissingStructTypeInfoError(receiverType, untyped.source()));
- var fieldType = structTypeInfo.get().fieldType(untyped.fieldName());
-
- if (fieldType.isEmpty()) {
- throw new NoSuchFieldError(receiverType, untyped.fieldName(), untyped.source());
- }
+ var fieldType = structTypeInfo.fieldType(untyped.fieldName())
+ .orElseThrow(() -> new NoSuchFieldError(receiverType, untyped.fieldName(), untyped.source()));
return context.toResult(new TypedFieldAccessNode(
typedReceiver,
untyped.fieldName(),
- fieldType.get(),
+ fieldType,
untyped.source()
));
}