public override IValue interpret(Context context) { MethodFinder finder = new MethodFinder(context, this); IMethodDeclaration declaration = finder.findBest(true); if (declaration == null) { throw new SyntaxError("No such method: " + this.ToString()); } Context local = selector.newLocalContext(context, declaration); declaration.registerParameters(local); assignArguments(context, local, declaration); return(declaration.interpret(local)); }