void (@NotNull PsiCodeBlock block) { startElement(block); int prevOffset = myCurrentFlow.getSize(); PsiStatement[] statements = block.getStatements(); for (PsiStatement statement : statements) { ProgressManager.checkCanceled(); statement.accept(this); } //each statement should contain at least one instruction in order to getElement(offset) work int nextOffset = myCurrentFlow.getSize(); if (!(block.getParent() instanceof PsiSwitchStatement) && prevOffset == nextOffset) { emitEmptyInstruction(); } if (block == myCodeFragment) { generateCompactConstructorAssignments(); } finishElement(block); if (prevOffset != 0) { registerSubRange(block, prevOffset); } }