List<Block> () { assert myBlocks == null; if (isLeaf()) { return AbstractBlock.EMPTY; } final List<DataLanguageBlockWrapper> subWrappers = BlockUtil.buildChildWrappers(myOriginal); final List<Block> children; if (myTlBlocks == null) { children = new ArrayList<>(subWrappers); } else if (subWrappers.size() == 0) { children = BlockUtil.splitBlockIntoFragments(myOriginal, myTlBlocks); } else { children = BlockUtil.mergeBlocks(myTlBlocks, subWrappers); } //BlockUtil.printBlocks(getTextRange(), children); return BlockUtil.setParent(children, this); }