diff options
Diffstat (limited to 'src/com/craftinginterpreters/lox/LoxClass.java')
-rw-r--r-- | src/com/craftinginterpreters/lox/LoxClass.java | 8 |
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(); } } |