private void ReplaceMetaMethodInvocationSite(MethodInvocationExpression node, Node replacement)
{
if (replacement == null || replacement is Statement)
{
if (node.ParentNode.NodeType != NodeType.ExpressionStatement)
NotImplemented(node, "Cant use an statement where an expression is expected.");
var statementParent = node.ParentNode.ParentNode;
statementParent.Replace(node.ParentNode, replacement);
if (replacement != null)
replacement = My<CodeReifier>.Instance.Reify((Statement)replacement);
}
else
{
node.ParentNode.Replace(node, replacement);
replacement = My<CodeReifier>.Instance.Reify((Expression) replacement);
}
Visit(replacement);
}