diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 15 |
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() )); } |
