Code Duplication    Length = 22-23 lines in 2 locations

src/Execution/BlockInterpreter.php 2 locations

@@ 289-310 (lines=22) @@
286
     *
287
     * @SuppressWarnings(PHPMD.StaticAccess)
288
     */
289
    private static function executeAndBlock(
290
        $input,
291
        int $blockIndex,
292
        array $blocks,
293
        ContextStorageInterface $context,
294
        CaptureAggregatorInterface $captures
295
    ): array {
296
        $block = $blocks[$blockIndex];
297
        assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION);
298
299
        $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY];
300
        $result       = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
301
        if (BlockReplies::isResultSuccessful($result) === true) {
302
            $nextInput      = BlockReplies::extractResultOutput($result);
303
            $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY];
304
            $result         = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures);
305
        }
306
307
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
308
309
        return $result;
310
    }
311
312
    /**
313
     * @param mixed                      $input
@@ 324-346 (lines=23) @@
321
     * @SuppressWarnings(PHPMD.StaticAccess)
322
     * @SuppressWarnings(PHPMD.ElseExpression)
323
     */
324
    private static function executeOrBlock(
325
        $input,
326
        int $blockIndex,
327
        array $blocks,
328
        ContextStorageInterface $context,
329
        CaptureAggregatorInterface $captures
330
    ): array {
331
        $block = $blocks[$blockIndex];
332
        assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION);
333
334
        $primaryIndex      = $block[BlockSerializer::OR_EXPRESSION_PRIMARY];
335
        $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
336
        if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) {
337
            $result = $resultFromPrimary;
338
        } else {
339
            $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY];
340
            $result         = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures);
341
        }
342
343
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
344
345
        return $result;
346
    }
347
348
    /**
349
     * @param array $serializedBlocks