Code Duplication    Length = 25-25 lines in 2 locations

src/Arrayy.php 2 locations

@@ 308-332 (lines=25) @@
305
     * @psalm-return static<TKey,T>
306
     * @psalm-mutation-free
307
     */
308
    public function appendImmutable($value, $key = null): self
309
    {
310
        $generator = function () use ($key, $value): \Generator {
311
            if ($this->properties !== []) {
312
                $this->checkType($key, $value);
313
            }
314
315
            /** @noinspection YieldFromCanBeUsedInspection - FP */
316
            foreach ($this->getGenerator() as $keyOld => $itemOld) {
317
                yield $keyOld => $itemOld;
318
            }
319
320
            if ($key !== null) {
321
                yield $key => $value;
322
            } else {
323
                yield $value;
324
            }
325
        };
326
327
        return static::create(
328
            $generator,
329
            $this->iteratorClass,
330
            false
331
        );
332
    }
333
334
    /**
335
     * Sort the entries by value.
@@ 4613-4637 (lines=25) @@
4610
     * @psalm-return static<TKey,T>
4611
     * @psalm-mutation-free
4612
     */
4613
    public function prependImmutable($value, $key = null)
4614
    {
4615
        $generator = function () use ($key, $value): \Generator {
4616
            if ($this->properties !== []) {
4617
                $this->checkType($key, $value);
4618
            }
4619
4620
            if ($key !== null) {
4621
                yield $key => $value;
4622
            } else {
4623
                yield $value;
4624
            }
4625
4626
            /** @noinspection YieldFromCanBeUsedInspection - FP */
4627
            foreach ($this->getGenerator() as $keyOld => $itemOld) {
4628
                yield $keyOld => $itemOld;
4629
            }
4630
        };
4631
4632
        return static::create(
4633
            $generator,
4634
            $this->iteratorClass,
4635
            false
4636
        );
4637
    }
4638
4639
    /**
4640
     * Add a suffix to each key.