diff --git a/Src/Mass.Core.Tests/Expressions/FunctionExpressionTests.cs b/Src/Mass.Core.Tests/Expressions/FunctionExpressionTests.cs index 5ba5f10..1752d91 100644 --- a/Src/Mass.Core.Tests/Expressions/FunctionExpressionTests.cs +++ b/Src/Mass.Core.Tests/Expressions/FunctionExpressionTests.cs @@ -26,7 +26,7 @@ public void EvaluateFunctionExpression() var function = (IFunction)result; - Assert.AreEqual(3, function.Apply(new object[] { 1, 2 })); + Assert.AreEqual(3, function.Apply(null, new object[] { 1, 2 })); } [TestMethod] diff --git a/Src/Mass.Core.Tests/Functions/DefinedFunctionTests.cs b/Src/Mass.Core.Tests/Functions/DefinedFunctionTests.cs index f7e2cb7..9af0eff 100644 --- a/Src/Mass.Core.Tests/Functions/DefinedFunctionTests.cs +++ b/Src/Mass.Core.Tests/Functions/DefinedFunctionTests.cs @@ -23,7 +23,7 @@ public void DefineAndExecuteSimplePrintln() DefinedFunction function = new DefinedFunction(new ExpressionCommand(new CallExpression(new NameExpression("puts"), new IExpression[] { new ConstantExpression(123) })), new string[] { }, machine.RootContext); - Assert.IsNull(function.Apply(new object[] { })); + Assert.IsNull(function.Apply(null, new object[] { })); Assert.AreEqual("123\r\n", writer.ToString()); } @@ -34,7 +34,7 @@ public void DefineAndExecuteFunctionWithParameters() DefinedFunction function = new DefinedFunction(new ExpressionCommand(new BinaryArithmeticExpression(new NameExpression("a"), new NameExpression("b"), ArithmeticOperator.Add)), new string[] { "a", "b" }, context); - var result = function.Apply(new object[] { 1, 2 }); + var result = function.Apply(null, new object[] { 1, 2 }); Assert.IsNotNull(result); Assert.AreEqual(3, result); diff --git a/Src/Mass.Core.Tests/Functions/PrintFunctionTests.cs b/Src/Mass.Core.Tests/Functions/PrintFunctionTests.cs index 766a6c8..2043381 100644 --- a/Src/Mass.Core.Tests/Functions/PrintFunctionTests.cs +++ b/Src/Mass.Core.Tests/Functions/PrintFunctionTests.cs @@ -17,7 +17,7 @@ public void PrintInteger() StringWriter writer = new StringWriter(); PrintFunction function = new PrintFunction(writer); - Assert.IsNull(function.Apply(new object[] { 123 })); + Assert.IsNull(function.Apply(null, new object[] { 123 })); Assert.AreEqual("123", writer.ToString()); } @@ -39,7 +39,7 @@ public void PrintTwoIntegers() StringWriter writer = new StringWriter(); PrintFunction function = new PrintFunction(writer); - Assert.IsNull(function.Apply(new object[] { 123, 456 })); + Assert.IsNull(function.Apply(null, new object[] { 123, 456 })); Assert.AreEqual("123456", writer.ToString()); } diff --git a/Src/Mass.Core.Tests/Functions/PrintlnFunctionTests.cs b/Src/Mass.Core.Tests/Functions/PrintlnFunctionTests.cs index 6b94975..60fb55e 100644 --- a/Src/Mass.Core.Tests/Functions/PrintlnFunctionTests.cs +++ b/Src/Mass.Core.Tests/Functions/PrintlnFunctionTests.cs @@ -17,7 +17,7 @@ public void PrintlnInteger() StringWriter writer = new StringWriter(); PrintlnFunction function = new PrintlnFunction(writer); - Assert.IsNull(function.Apply(new object[] { 123 })); + Assert.IsNull(function.Apply(null, new object[] { 123 })); Assert.AreEqual("123\r\n", writer.ToString()); } @@ -39,7 +39,7 @@ public void PrintlnTwoIntegers() StringWriter writer = new StringWriter(); PrintlnFunction function = new PrintlnFunction(writer); - Assert.IsNull(function.Apply(new object[] { 123, 456 })); + Assert.IsNull(function.Apply(null, new object[] { 123, 456 })); Assert.AreEqual("123\r\n456\r\n", writer.ToString()); } diff --git a/Src/Mass.Core.Tests/Functions/RequireFunctionTests.cs b/Src/Mass.Core.Tests/Functions/RequireFunctionTests.cs index cb675a9..9854575 100644 --- a/Src/Mass.Core.Tests/Functions/RequireFunctionTests.cs +++ b/Src/Mass.Core.Tests/Functions/RequireFunctionTests.cs @@ -18,7 +18,7 @@ public void RequireLocalFile() Machine machine = new Machine(); RequireFunction require = new RequireFunction(machine); - AssertModule(require.Apply(new object[] { "SimpleModule.ms" })); + AssertModule(require.Apply(null, new object[] { "SimpleModule.ms" })); } [TestMethod] @@ -38,8 +38,8 @@ public void RequireLocalFileTwice() Machine machine = new Machine(); RequireFunction require = new RequireFunction(machine); - var original = require.Apply(new object[] { "SimpleModule" }); - var result = require.Apply(new object[] { "SimpleModule" }); + var original = require.Apply(null, new object[] { "SimpleModule" }); + var result = require.Apply(null, new object[] { "SimpleModule" }); AssertModule(result); Assert.AreSame(original, result); @@ -52,7 +52,7 @@ public void RequireLocalFileWithExplicitExtension() Machine machine = new Machine(); RequireFunction require = new RequireFunction(machine); - AssertModule(require.Apply(new object[] { "SimpleModule.ms" })); + AssertModule(require.Apply(null, new object[] { "SimpleModule.ms" })); } [TestMethod] @@ -62,7 +62,7 @@ public void RequireLocalFileWithLocalDirectory() Machine machine = new Machine(); RequireFunction require = new RequireFunction(machine); - AssertModule(require.Apply(new object[] { "./SimpleModule" })); + AssertModule(require.Apply(null, new object[] { "./SimpleModule" })); } [TestMethod] @@ -73,7 +73,7 @@ public void RequireUnknownModule() try { - require.Apply(new object[] { "unknown" }); + require.Apply(null, new object[] { "unknown" }); Assert.Fail(); } catch (Exception ex) @@ -91,7 +91,7 @@ public void RequireUnknownLocalModule() try { - require.Apply(new object[] { "./unknown" }); + require.Apply(null, new object[] { "./unknown" }); Assert.Fail(); } catch (Exception ex) @@ -109,7 +109,7 @@ public void RequireUnknownAbsoluteModule() try { - require.Apply(new object[] { "/unknown" }); + require.Apply(null, new object[] { "/unknown" }); Assert.Fail(); } catch (Exception ex) diff --git a/Src/Mass.Core/Expressions/CallExpression.cs b/Src/Mass.Core/Expressions/CallExpression.cs index 15fa0bc..1c68ed4 100644 --- a/Src/Mass.Core/Expressions/CallExpression.cs +++ b/Src/Mass.Core/Expressions/CallExpression.cs @@ -28,7 +28,7 @@ public object Evaluate(Context context) foreach (var argument in this.arguments) values.Add(argument.Evaluate(context)); - return function.Apply(values); + return function.Apply(null, values); } public override bool Equals(object obj) diff --git a/Src/Mass.Core/Functions/DefinedFunction.cs b/Src/Mass.Core/Functions/DefinedFunction.cs index 582cecb..5f96f65 100644 --- a/Src/Mass.Core/Functions/DefinedFunction.cs +++ b/Src/Mass.Core/Functions/DefinedFunction.cs @@ -20,12 +20,6 @@ public DefinedFunction(ICommand body, IList parameters, Context context) this.parameters = parameters; } - public object Apply(IList values) - { - Context newcontext = new Context(this.context, null); - return this.DoApply(newcontext, values); - } - public object Apply(object self, IList values) { Context newcontext = new Context(this.context, null); diff --git a/Src/Mass.Core/Functions/IFunction.cs b/Src/Mass.Core/Functions/IFunction.cs index 201b9d2..370a936 100644 --- a/Src/Mass.Core/Functions/IFunction.cs +++ b/Src/Mass.Core/Functions/IFunction.cs @@ -8,8 +8,6 @@ public interface IFunction { - object Apply(IList values); - object Apply(object self, IList values); } } diff --git a/Src/Mass.Core/Functions/PrintFunction.cs b/Src/Mass.Core/Functions/PrintFunction.cs index 0f73a0d..0f7c52d 100644 --- a/Src/Mass.Core/Functions/PrintFunction.cs +++ b/Src/Mass.Core/Functions/PrintFunction.cs @@ -16,17 +16,12 @@ public PrintFunction(TextWriter writer) this.writer = writer; } - public object Apply(IList values) + public object Apply(object self, IList values) { foreach (var value in values) this.writer.Write(value); return null; } - - public object Apply(object self, IList values) - { - return this.Apply(values); - } } } diff --git a/Src/Mass.Core/Functions/PrintlnFunction.cs b/Src/Mass.Core/Functions/PrintlnFunction.cs index 5cfb0ba..e880919 100644 --- a/Src/Mass.Core/Functions/PrintlnFunction.cs +++ b/Src/Mass.Core/Functions/PrintlnFunction.cs @@ -16,17 +16,12 @@ public PrintlnFunction(TextWriter writer) this.writer = writer; } - public object Apply(IList values) + public object Apply(object self, IList values) { foreach (var value in values) this.writer.WriteLine(value); return null; } - - public object Apply(object self, IList values) - { - return this.Apply(values); - } } } diff --git a/Src/Mass.Core/Functions/RequireFunction.cs b/Src/Mass.Core/Functions/RequireFunction.cs index d00a549..1179e66 100644 --- a/Src/Mass.Core/Functions/RequireFunction.cs +++ b/Src/Mass.Core/Functions/RequireFunction.cs @@ -23,7 +23,7 @@ public RequireFunction(Machine machine, string path) this.path = path; } - public object Apply(IList values) + public object Apply(object self, IList values) { string name = (string)values[0]; @@ -38,11 +38,6 @@ public object Apply(IList values) return this.machine.ExecuteFile(filename, true); } - public object Apply(object self, IList values) - { - return this.Apply(values); - } - private string GetFilename(string path, string name) { string filename = name;