Code Duplication    Length = 22-23 lines in 2 locations

src/Execution/BlockInterpreter.php 2 locations

@@ 263-284 (lines=22) @@
260
     *
261
     * @SuppressWarnings(PHPMD.StaticAccess)
262
     */
263
    private static function executeAndBlock(
264
        $input,
265
        int $blockIndex,
266
        array $blocks,
267
        ContextStorageInterface $context,
268
        CaptureAggregatorInterface $captures
269
    ): array {
270
        $block = $blocks[$blockIndex];
271
        assert(static::getBlockType($block) === BlockSerializer::TYPE__AND_EXPRESSION);
272
273
        $primaryIndex = $block[BlockSerializer::AND_EXPRESSION_PRIMARY];
274
        $result       = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
275
        if (BlockReplies::isResultSuccessful($result) === true) {
276
            $nextInput      = BlockReplies::extractResultOutput($result);
277
            $secondaryIndex = $block[BlockSerializer::AND_EXPRESSION_SECONDARY];
278
            $result         = static::executeBlockImpl($nextInput, $secondaryIndex, $blocks, $context, $captures);
279
        }
280
281
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
282
283
        return $result;
284
    }
285
286
    /**
287
     * @param mixed                      $input
@@ 298-320 (lines=23) @@
295
     * @SuppressWarnings(PHPMD.StaticAccess)
296
     * @SuppressWarnings(PHPMD.ElseExpression)
297
     */
298
    private static function executeOrBlock(
299
        $input,
300
        int $blockIndex,
301
        array $blocks,
302
        ContextStorageInterface $context,
303
        CaptureAggregatorInterface $captures
304
    ): array {
305
        $block = $blocks[$blockIndex];
306
        assert(static::getBlockType($block) === BlockSerializer::TYPE__OR_EXPRESSION);
307
308
        $primaryIndex      = $block[BlockSerializer::OR_EXPRESSION_PRIMARY];
309
        $resultFromPrimary = static::executeBlockImpl($input, $primaryIndex, $blocks, $context, $captures);
310
        if (BlockReplies::isResultSuccessful($resultFromPrimary) === true) {
311
            $result = $resultFromPrimary;
312
        } else {
313
            $secondaryIndex = $block[BlockSerializer::OR_EXPRESSION_SECONDARY];
314
            $result         = static::executeBlockImpl($input, $secondaryIndex, $blocks, $context, $captures);
315
        }
316
317
        static::captureSuccessfulBlockResultIfEnabled($result, $block, $captures);
318
319
        return $result;
320
    }
321
322
    /**
323
     * @param array $serializedBlocks