void (List<? super ASTNode> array, ASTNode parent, int startOffset, int endOffset) { int offset = 0; for (ASTNode child = parent.getFirstChildNode(); child != null; child = child.getTreeNext()) { int length = child.getTextLength(); if (startOffset <= offset + length && offset <= endOffset) { IElementType type = child.getElementType(); if (type == JavaElementType.JAVA_CODE_REFERENCE || type == JavaElementType.REFERENCE_EXPRESSION) { array.add(child); } else { addReferencesInRangeForComposite(array, child, startOffset - offset, endOffset - offset); } } offset += length; } }