org_eclipse_lemminx_services_XMLSelectionRangesTest_java
org.eclipse.lemminx.services.XMLSelectionRanges
private DOMNode getNodeAtOffset(DOMDocument xmlDocument, int offset) {
        DOMNode node;
        block3: {
            DOMDocumentType doctype;
            DTDDeclParameter subset;
            block2: {
                node = DOMDocument.findNodeOrAttrAt(xmlDocument, offset);
                if (!node.isAttribute()) break block2;
                DOMAttr attr = (DOMAttr)node;
                for (DOMNode attrChild : attr.getChildren()) {
                    if (attrChild.getStart() > offset || offset > attrChild.getEnd()) continue;
                    return attrChild;
                }
                break block3;
            }
            if (!node.isDoctype() || (subset = (doctype = (DOMDocumentType)node).getInternalSubsetNode()) == null || subset.getStart() >= offset || offset >= subset.getEnd()) break block3;
            for (DOMNode child : doctype.getChildren()) {
                if (child.getStart() == -1 || child.getStart() > offset || offset >= child.getEnd()) continue;
                return child;
            }
        }
        return node;
    }
 -> java.util.List.size(): int -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean -> java.lang.Boolean.booleanValue(): boolean -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean -> java.lang.Boolean.booleanValue(): boolean -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean -> java.lang.Boolean.booleanValue(): boolean -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean -> java.lang.Boolean.booleanValue(): boolean
 [CALL] [CALL] [CALL] [CALL] [EXIT] [CALL] -> java.util.List.size(): int -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object [CALL] -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean [EXIT] -> java.lang.Boolean.booleanValue(): boolean -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object [CALL] -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean [EXIT] -> java.lang.Boolean.booleanValue(): boolean [EXIT] -> java.util.List.get(int): java.lang.Object [CALL] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] -> java.util.List.size(): int -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object [CALL] -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean [EXIT] -> java.lang.Boolean.booleanValue(): boolean -> java.lang.Math.floor(double): double -> java.util.List.get(int): java.lang.Object -> java.util.function.Function.apply(java.lang.Object): java.lang.Object [CALL] -> java.lang.Boolean.valueOf(boolean): java.lang.Boolean [EXIT] -> java.lang.Boolean.booleanValue(): boolean [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [EXIT]