aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/lox/LoxClass.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/craftinginterpreters/lox/LoxClass.java')
-rw-r--r--src/com/craftinginterpreters/lox/LoxClass.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/com/craftinginterpreters/lox/LoxClass.java b/src/com/craftinginterpreters/lox/LoxClass.java
index 0c0223f..5e0e755 100644
--- a/src/com/craftinginterpreters/lox/LoxClass.java
+++ b/src/com/craftinginterpreters/lox/LoxClass.java
@@ -28,11 +28,17 @@ class LoxClass implements LoxCallable {
@Override
public Object call(Interpreter interpreter, List<Object> arguments) {
LoxInstance instance = new LoxInstance(this);
+ LoxFunction initializer = findMethod("init");
+ if (initializer != null) {
+ initializer.bind(instance).call(interpreter, arguments);
+ }
return instance;
}
@Override
public int arity() {
- return 0;
+ LoxFunction initializer = findMethod("init");
+ if (initializer == null) return 0;
+ return initializer.arity();
}
}