Code Duplication    Length = 22-23 lines in 2 locations

src/Execution/BlockInterpreter.php 2 locations

@@ 279-300 (lines=22) @@
276
     *
277
     * @SuppressWarnings(PHPMD.StaticAccess)
278
     */
279
    private static function executeAndBlock(
280
        $input,
281
        int $blockIndex,
282
        array $blocks,
283
        ContextStorageInterface $context,
284
        CaptureAggregatorInterface $captures
285
    ): array {
286
        $block = $blocks[$blockIndex];
287
        assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION);
288
289
        $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY];
290
        $result       = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
291
        if (BlockReplies::isResultSuccessful($result) === true) {
292
            $nextInput      = BlockReplies::extractResultOutput($result);
293
            $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY];
294
            $result         = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures);
295
        }
296
297
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
298
299
        return $result;
300
    }
301
302
    /**
303
     * @param mixed                      $input
@@ 314-336 (lines=23) @@
311
     * @SuppressWarnings(PHPMD.StaticAccess)
312
     * @SuppressWarnings(PHPMD.ElseExpression)
313
     */
314
    private static function executeOrBlock(
315
        $input,
316
        int $blockIndex,
317
        array $blocks,
318
        ContextStorageInterface $context,
319
        CaptureAggregatorInterface $captures
320
    ): array {
321
        $block = $blocks[$blockIndex];
322
        assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION);
323
324
        $primaryIndex      = $block[BlockSerializer::OR_EXPRESSION_PRIMARY];
325
        $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
326
        if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) {
327
            $result = $resultFromPrimary;
328
        } else {
329
            $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY];
330
            $result         = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures);
331
        }
332
333
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
334
335
        return $result;
336
    }
337
338
    /**
339
     * @param array $serializedBlocks