aspect CallerCrossRefs { // Fill in cross-references for callee -> caller boolean Program.callerCrossRefsFilledIn = false; private Set MethodDecl.privateCallers = new HashSet(); public Set MethodDecl.callers() { Program root = getProgram(); if (!root.callerCrossRefsFilledIn) { root.fillInCallerCrossRefs(); root.callerCrossRefsFilledIn = true; } return privateCallers; } void ASTNode.fillInCallerCrossRefs() { for(int i=0; i