void (@NotNull PsiElement element) { if (stmtLevel && element instanceof GrCodeBlock) { final PsiElement lBrace = ((GrCodeBlock)element).getLBrace(); if (nlsAfter(lBrace)) { addRange(new LineRange(lBrace).endLine); } addChildRanges(((GrCodeBlock)element).getStatements()); final PsiElement rBrace = ((GrCodeBlock)element).getRBrace(); if (nlsAfter(rBrace)) { final int endLine = new LineRange(rBrace).endLine; if (lastStart >= 0) { for (int i = lastStart + 1; i < endLine; i++) { addRange(i); } } } } else if (stmtLevel && element instanceof GrCaseSection) { PsiElement delimiter = ((GrCaseSection)element).getColon(); if (delimiter != null) { if (nlsAfter(delimiter)) { addRange(new LineRange(element.getFirstChild(), delimiter).endLine); } addChildRanges(((GrCaseSection)element).getStatements()); } else { var statements = ((GrCaseSection)element).getStatements(); if (statements.length == 1 && statements[0] instanceof GrBlockStatement) { GrOpenBlock block = ((GrBlockStatement)statements[0]).getBlock(); if (nlsAfter(block.getLBrace())) { addRange(new LineRange(element.getFirstChild(), block.getLBrace()).endLine); } addChildRanges(block.getStatements()); } } } else if (element instanceof GroovyFileBase) { addChildRanges(((GroovyFileBase)element).getTopStatements()); } else if (!stmtLevel && !topLevel && element instanceof GrTypeDefinitionBody) { addChildRanges(((GrTypeDefinitionBody)element).getMemberDeclarations()); } else { super.visitElement(element); } }