diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-01-26 10:23:13 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-01-26 10:25:29 +0000 |
| commit | fb439df085eb1f7095d987973475a7753d0a1103 (patch) | |
| tree | 361de3c13c39c292a6f5ea4ff778302efef5eac5 /src/main/java | |
| parent | 7d76b7679d0b70b0e38ff08aeeeb78acde14aac3 (diff) | |
Use correct type for this in methods for generic structs
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java index fa32a440..5feee88b 100644 --- a/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java +++ b/src/main/java/org/shedlang/compiler/typechecker/TypeChecker.java @@ -1786,9 +1786,16 @@ public class TypeChecker { // fine since those steps can (currently, at least) happen // in any other -- maybe they should just be merged, given // that otherwise this is invalid? + var thisType = switch (typeOrConstructor) { + case TypeOrConstructor.Constructor<SimpleStructType> constructor -> + Types.constructedType(constructor.value(), constructor.value().params()); + case TypeOrConstructor.Type<SimpleStructType> type -> + type.value(); + }; + var declareFunctionResult = declareFunctionDefinition( untypedMethodNode, - Optional.of(typeOrConstructor.toType()), + Optional.of(thisType), context ); var typeCheckFunctionState = declareFunctionResult.value(); |
