private void OptimizeFunction(OptFunctionNode theFunction) { if (theFunction.fnode.RequiresActivation()) { return; } inDirectCallFunction = theFunction.IsTargetOfDirectCall(); this.theFunction = theFunction; ObjArray statementsArray = new ObjArray(); BuildStatementList_r(theFunction.fnode, statementsArray); Node[] theStatementNodes = new Node[statementsArray.Size()]; statementsArray.ToArray(theStatementNodes); Block.RunFlowAnalyzes(theFunction, theStatementNodes); if (!theFunction.fnode.RequiresActivation()) { parameterUsedInNumberContext = false; foreach (Node theStatementNode in theStatementNodes) { RewriteForNumberVariables(theStatementNode, NumberType); } theFunction.SetParameterNumberContext(parameterUsedInNumberContext); } }