summaryrefslogtreecommitdiff
path: root/src/test/java/org
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2026-11-09 18:08:01 +0000
committerMichael Williamson <mike@zwobble.org>2026-11-09 18:08:01 +0000
commitc0c850fd195d0b2a54d94d245043b281b3ebd777 (patch)
tree13e5cc523eb3038af86164ae0b2a5686bdf8a3f0 /src/test/java/org
parent965b97728eb9a45fbe3dd44f2ba987b170bef6c1 (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.java18
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