private static IList <ITranslatable> GetCatchBlockTranslations(
            IList <CatchBlock> catchBlocks,
            out int estimatedCatchBlocksSize,
            ITranslationContext context)
        {
            if (catchBlocks.Count == 0)
            {
                estimatedCatchBlocksSize = 0;
                return(Enumerable <ITranslatable> .EmptyArray);
            }

            var catchBlockTranslations = new ITranslatable[catchBlocks.Count];

            estimatedCatchBlocksSize = 0;

            for (int i = 0, l = catchBlocks.Count; ;)
            {
                var catchBlockTranslation = new CatchBlockTranslation(catchBlocks[i], context);

                estimatedCatchBlocksSize += catchBlockTranslation.EstimatedSize;
                catchBlockTranslations[i] = catchBlockTranslation;

                if (++i == l)
                {
                    break;
                }
            }

            return(catchBlockTranslations);
        }
        private static IList <ITranslatable> GetCatchBlockTranslations(
            IList <CatchBlock> catchBlocks,
            out int catchBlockCount,
            out int catchBlockTranslationsSize,
            out int catchBlocksFormattingSize,
            ITranslationContext context)
        {
            catchBlockCount = catchBlocks.Count;

            if (catchBlockCount == 0)
            {
                catchBlockTranslationsSize = catchBlocksFormattingSize = 0;
                return(Enumerable <ITranslatable> .EmptyArray);
            }

            var catchBlockTranslations = new ITranslatable[catchBlockCount];

            catchBlockTranslationsSize = catchBlocksFormattingSize = 0;

            for (var i = 0; ;)
            {
                var catchBlockTranslation = new CatchBlockTranslation(catchBlocks[i], context);

                catchBlockTranslationsSize += catchBlockTranslation.TranslationSize;
                catchBlocksFormattingSize  += catchBlockTranslation.FormattingSize;
                catchBlockTranslations[i]   = catchBlockTranslation;

                ++i;

                if (i == catchBlockCount)
                {
                    break;
                }
            }

            return(catchBlockTranslations);
        }