public Context MakeContext(IList<object> arguments)
{
if (this.parameters.Count != arguments.Count)
return null;
Context context = new Context();
for (int k = 0; k < this.parameters.Count; k++)
if (!MatchUtilities.MatchObjects(this.parameters[k], arguments[k], context))
return null;
context.SetParent(this.context);
return context;
}
public void CannotMakeContextByNoMatch() { Function function = new Function(null, new object[] { new Variable("X"), new Variable("X") }, new AddExpression(new VariableExpression(new Variable("X")), new VariableExpression(new Variable("X")))); Context context = function.MakeContext(new object[] { 1, 2 }); Assert.IsNull(context); }