aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/lox/Resolver.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/craftinginterpreters/lox/Resolver.java')
-rw-r--r--src/com/craftinginterpreters/lox/Resolver.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/com/craftinginterpreters/lox/Resolver.java b/src/com/craftinginterpreters/lox/Resolver.java
index a7c9911..649235a 100644
--- a/src/com/craftinginterpreters/lox/Resolver.java
+++ b/src/com/craftinginterpreters/lox/Resolver.java
@@ -15,7 +15,7 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> {
}
private enum FunctionType {
- NONE, FUNCTION
+ NONE, FUNCTION, METHOD
}
public void resolve(List<Stmt> statements) {
@@ -36,6 +36,12 @@ class Resolver implements Expr.Visitor<Void>, Stmt.Visitor<Void> {
public Void visitClassStmt(Stmt.Class stmt) {
declare(stmt.name);
define(stmt.name);
+
+ for (Stmt.Function method : stmt.methods) {
+ FunctionType declaration = FunctionType.METHOD;
+ resolveFunction(method, declaration);
+ }
+
return null;
}