protected override QilNode VisitInvoke(QilInvoke local0) {
QilNode local1 = local0[0];
QilNode local2 = local0[1];
if (this[XmlILOptimization.NormalizeInvokeEmpty]) {
if (local1.NodeType == QilNodeType.Function) {
QilNode local4 = local1[1];
if (local4.NodeType == QilNodeType.Sequence) {
if ( (local4).Count == (0) ) {
if (AllowReplace(XmlILOptimization.NormalizeInvokeEmpty, local0)) {
return Replace(XmlILOptimization.NormalizeInvokeEmpty, local0, VisitSequence(f.Sequence()));
}
}
}
}
}
if (this[XmlILOptimization.AnnotateTrackCallers]) {
if (AllowReplace(XmlILOptimization.AnnotateTrackCallers, local0)) {
XmlILConstructInfo.Write(local1).CallersInfo.Add(XmlILConstructInfo.Write(local0)); }
}
if (this[XmlILOptimization.AnnotateInvoke]) {
if (local1.NodeType == QilNodeType.Function) {
QilNode local4 = local1[1];
if (AllowReplace(XmlILOptimization.AnnotateInvoke, local0)) {
OptimizerPatterns.Inherit((QilNode) (local4), (QilNode) (local0), OptimizerPatternName.IsDocOrderDistinct); OptimizerPatterns.Inherit((QilNode) (local4), (QilNode) (local0), OptimizerPatternName.SameDepth); }
}
}
return NoReplace(local0);
}