aspect OverridesCrossRefs { // Fill in cross-references for // - overrides -> overriders // - TODO: handle implements relation // - TODO: handle sub/super-interfaces public Collection MethodDecl.overriders() { Program root = getProgram(); if (!root.overridesCrossRefsFilledIn) { root.overridesCrossRefs(); root.overridesCrossRefsFilledIn = true; } return privateOverriders; } private LinkedList MethodDecl.privateOverriders = new LinkedList(); boolean Program.overridesCrossRefsFilledIn = false; void ASTNode.overridesCrossRefs() { for(int i=0; i