org_eclipse_lemminx_extensions_contentmodel_XMLSyntaxDiagnosticsTest_java
org.eclipse.lemminx.extensions.contentmodel.participants.codeactions.CloseTagCodeAction
private void doCodeActionsForStartTagClosed(DOMElement element, DOMDocument document, Range diagnosticRange, Diagnostic diagnostic, List<CodeAction> codeActions) throws BadLocationException {
        block7: {
            block5: {
                String label;
                String tagName;
                String text;
                block6: {
                    text = document.getText();
                    if (element.hasEndTag()) break block5;
                    tagName = element.getTagName();
                    if (element.hasChildNodes()) break block6;
                    String insertText = "</" + tagName + ">";
                    int endOffset = element.getStartTagCloseOffset() + 1;
                    Position endPosition = document.positionAt(endOffset);
                    CodeAction closeEndTagAction = CodeActionFactory.insert("Close with '" + insertText + "'", endPosition, insertText, document.getTextDocument(), diagnostic);
                    codeActions.add(closeEndTagAction);
                    break block7;
                }
                boolean hasChildWithNoTagName = false;
                List<DOMNode> children = element.getChildren();
                for (DOMNode child : children) {
                    DOMElement childElement;
                    if (!child.isElement() || (childElement = (DOMElement)child).hasTagName() && !childElement.isOrphanEndTag()) continue;
                    String replaceTagName = element.getTagName();
                    CodeAction replaceTagAction = CloseTagCodeAction.replaceEndTagNameCodeAction(childElement, replaceTagName, diagnostic);
                    codeActions.add(replaceTagAction);
                    hasChildWithNoTagName = !childElement.hasTagName();
                }
                if (hasChildWithNoTagName) break block7;
                int endOffset = element.getLastChild().getEnd() - 1;
                if (endOffset < text.length()) {
                    char ch = text.charAt(endOffset);
                    while (Character.isWhitespace(ch)) {
                        ch = text.charAt(--endOffset);
                    }
                }
                ++endOffset;
                String insertText = label = "</" + tagName + ">";
                if (CloseTagCodeAction.hasElements(element)) {
                    LineIndentInfo indentInfo = document.getLineIndentInfo(diagnosticRange.getStart().getLine());
                    insertText = indentInfo.getLineDelimiter() + indentInfo.getWhitespacesIndent() + insertText;
                }
                Position endPosition = document.positionAt(endOffset);
                CodeAction closeEndTagAction = CodeActionFactory.insert("Close with '" + label + "'", endPosition, insertText, document.getTextDocument(), diagnostic);
                codeActions.add(closeEndTagAction);
                break block7;
            }
            List<DOMNode> children = element.getChildren();
            for (DOMNode child : children) {
                DOMElement childElement;
                if (!child.isElement() || (childElement = (DOMElement)child).hasTagName() && !childElement.isOrphanEndTag()) continue;
                CodeAction removeAction = CloseTagCodeAction.removeTagCodeAction(childElement, document, diagnostic);
                codeActions.add(removeAction);
            }
        }
    }
 -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.util.Collections.singletonList(java.lang.Object): java.util.List -> java.util.Arrays.asList(java.lang.Object[]): java.util.List -> java.lang.Integer.valueOf(int): java.lang.Integer -> java.util.Collections.singletonList(java.lang.Object): java.util.List -> java.util.List.add(java.lang.Object): boolean -> java.util.Iterator.hasNext(): boolean
 [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.util.List.iterator(): java.util.Iterator -> java.util.Iterator.hasNext(): boolean -> java.util.Iterator.next(): java.lang.Object [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] [EXIT] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [EXIT] -> java.util.List.size(): int -> java.util.List.get(int): java.lang.Object [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] [EXIT] [CALL] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.append(java.lang.String): java.lang.StringBuilder -> java.lang.StringBuilder.toString(): java.lang.String [CALL] [EXIT] [CALL] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] -> java.util.Collections.singletonList(java.lang.Object): java.util.List [CALL] [CALL] [CALL] [EXIT] [EXIT] [CALL] [EXIT] -> java.util.Arrays.asList(java.lang.Object[]): java.util.List [CALL] [EXIT] [CALL] [EXIT] [CALL] [EXIT] -> java.lang.Integer.valueOf(int): java.lang.Integer [CALL] [CALL] [CALL] [EXIT] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [CALL] [EXIT] [EXIT] [CALL] [CALL] [EXIT] [EXIT] -> java.util.Collections.singletonList(java.lang.Object): java.util.List [CALL] [EXIT] [CALL] [EXIT] [EXIT] [EXIT] [EXIT] -> java.util.List.add(java.lang.Object): boolean [CALL] [EXIT] -> java.util.Iterator.hasNext(): boolean [EXIT]