diff options
| author | Michael Williamson <mike@zwobble.org> | 2026-11-09 18:08:01 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2026-11-09 18:08:01 +0000 |
| commit | c0c850fd195d0b2a54d94d245043b281b3ebd777 (patch) | |
| tree | 13e5cc523eb3038af86164ae0b2a5686bdf8a3f0 /src/test/java/org | |
| parent | 965b97728eb9a45fbe3dd44f2ba987b170bef6c1 (diff) | |
Read relation method from table member access
Diffstat (limited to 'src/test/java/org')
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerEvalExpressionTests.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerEvalExpressionTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerEvalExpressionTests.java index 43c5bb3..cae195a 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerEvalExpressionTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/typechecker/TypeCheckerEvalExpressionTests.java @@ -45,6 +45,24 @@ public class TypeCheckerEvalExpressionTests { assertThat(typed, equalTo(table)); } + @Test + public void memberAccessOnTableCanReadRelationMethod() { + var untyped = UntypedMemberAccessNode.arbitrary() + .withReceiver(UntypedReferenceNode.arbitrary().withName("authors")) + .withMemberName("where") + .build(); + var globalContext = TypeCheckerContextArb.globalContext(); + var namespaceName = NamespaceName.of("App"); + var namespaceContext = globalContext.enterNamespace(namespaceName); + var databaseSchema = new DatabaseSchema(namespaceName, "blogApp"); + var table = new Table(databaseSchema, "authors"); + namespaceContext.declare("authors", Types.table(table), NullSource.INSTANCE); + + var typed = TypeChecker.evalExpression(untyped, namespaceContext); + + assertThat(typed, equalTo(new RelationMethod(table, "where"))); + } + // == Number literal == @Test |
