org_aspectj_ajde_core_tests_CompilerMessagesTest_java
org.aspectj.asm.internal.AspectJElementHierarchy
@Override
    public IProgramElement findCloserMatchForLineNumber(IProgramElement node, int lineno) {
        if (node == null || node.getChildren() == null) {
            return null;
        }
        for (IProgramElement child : node.getChildren()) {
            IProgramElement evenCloserMatch;
            ISourceLocation childLoc = child.getSourceLocation();
            if (childLoc == null) continue;
            if (childLoc.getLine() <= lineno && childLoc.getEndLine() >= lineno) {
                evenCloserMatch = this.findCloserMatchForLineNumber(child, lineno);
                if (evenCloserMatch == null) {
                    return child;
                }
                return evenCloserMatch;
            }
            if (!child.getKind().isType() || (evenCloserMatch = this.findCloserMatchForLineNumber(child, lineno)) == null) continue;
            return evenCloserMatch;
        }
        return null;
    }
 -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean
 [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean [EXIT] [EXIT] [EXIT]