private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) changed |= findDefPoints(fn, n, varTypes); } return changed; }
private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) { changed |= findDefPoints(fn, n, varTypes); } } return changed; }
private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) { changed |= findDefPoints(fn, n, varTypes); } } return changed; }
private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) { changed |= findDefPoints(fn, n, varTypes); } } return changed; }
private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) { changed |= findDefPoints(fn, n, varTypes); } } return changed; }
private boolean doTypeFlow(OptFunctionNode fn, Node[] statementNodes, int[] varTypes) { boolean changed = false; for (int i = itsStartNodeIndex; i <= itsEndNodeIndex; i++) { Node n = statementNodes[i]; if (n != null) changed |= findDefPoints(fn, n, varTypes); } return changed; }
default : while (child != null) { result |= findDefPoints(fn, child, varTypes); child = child.getNext(); result |= findDefPoints(fn, child, varTypes); child = child.getNext();
default : while (child != null) { result |= findDefPoints(fn, child, varTypes); child = child.getNext(); result |= findDefPoints(fn, child, varTypes); child = child.getNext();
private static boolean findDefPoints(OptFunctionNode fn, Node n, int[] varTypes) { boolean result = false; Node first = n.getFirstChild(); for (Node next = first; next != null; next = next.getNext()) { result |= findDefPoints(fn, next, varTypes); } switch (n.getType()) { case Token.DEC : case Token.INC : if (first.getType() == Token.GETVAR) { // theVar is a Number now int i = fn.getVarIndex(first); result |= assignType(varTypes, i, Optimizer.NumberType); } break; case Token.SETVAR : { Node rValue = first.getNext(); int theType = findExpressionType(fn, rValue, varTypes); int i = fn.getVarIndex(n); result |= assignType(varTypes, i, theType); break; } } return result; }
private static boolean findDefPoints(OptFunctionNode fn, Node n, int[] varTypes) { boolean result = false; Node first = n.getFirstChild(); for (Node next = first; next != null; next = next.getNext()) { result |= findDefPoints(fn, next, varTypes); } switch (n.getType()) { case Token.DEC : case Token.INC : if (first.getType() == Token.GETVAR) { // theVar is a Number now int i = fn.getVarIndex(first); result |= assignType(varTypes, i, Optimizer.NumberType); } break; case Token.SETVAR : { Node rValue = first.getNext(); int theType = findExpressionType(fn, rValue, varTypes); int i = fn.getVarIndex(n); result |= assignType(varTypes, i, theType); break; } } return result; }
Node first = n.getFirstChild(); for (Node next = first; next != null; next = next.getNext()) { result |= findDefPoints(fn, next, varTypes);
Node first = n.getFirstChild(); for (Node next = first; next != null; next = next.getNext()) { result |= findDefPoints(fn, next, varTypes);