aspect DataFlow { public void ASTNode.lockDataFlow() { for(int i=0;i Access.lockedReachingDefs = null; public void Access.lockReachingDefs() { if(lockedReachingDefs == null) lockedReachingDefs = reachingDefinitions(); } public void ArrayAccess.lockDataFlow() { lockReachingDefs(); super.lockDataFlow(); } public void ClassInstanceExpr.lockDataFlow() { lockReachingDefs(); super.lockDataFlow(); } public void ConstructorAccess.lockDataFlow() { lockReachingDefs(); super.lockDataFlow(); } public void MethodAccess.lockDataFlow() { lockReachingDefs(); super.lockDataFlow(); } public void VarAccess.lockDataFlow() { lockReachingDefs(); super.lockDataFlow(); } public void ASTNode.unlockDataFlow() { for(int i=0;i