/** * Checks whether <code>node</code> escapes at most in the caller. ie it doesn't escape in an * unanalyzed method, a thread or a static field. */ public boolean escapesOnlyInCaller(PANode node) { if (hasEscapedIntoAMethod(node)) return false; // escapes into an unanalyzed method for (Iterator it = nodeHolesSet(node).iterator(); it.hasNext(); ) { PANode hole_node = (PANode) it.next(); if (hole_node.type() != PANode.PARAM) return false; // escapes into a thread or a static } return true; }