Passed
Push — 1.x ( a10ca3...650a57 )
by Ulises Jeremias
02:21
created

Builder::empty()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php namespace Mbh\Collection\Traits;
2
3
/**
4
 * MBHFramework
5
 *
6
 * @link      https://github.com/MBHFramework/mbh-framework
7
 * @copyright Copyright (c) 2017 Ulises Jeremias Cornejo Fandos
8
 * @license   https://github.com/MBHFramework/mbh-framework/blob/master/LICENSE (MIT License)
9
 */
10
11
use SplFixedArray;
12
use Traversable;
13
use Countable as CountableInterface;
14
15
trait Builder
16
{
17
    /**
18
     * @inheritDoc
19
     */
20
    public static function empty()
21
    {
22
        return new static(new SplFixedArray(0));
0 ignored issues
show
Unused Code introduced by
The call to Mbh\Collection\Traits\Builder::__construct() has too many arguments starting with new SplFixedArray(0). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

22
        return /** @scrutinizer ignore-call */ new static(new SplFixedArray(0));

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
23
    }
24
25
    /**
26
     * @inheritDoc
27
     */
28
    public static function fromArray(array $array)
29
    {
30
        return new static(SplFixedArray::fromArray($array));
0 ignored issues
show
Unused Code introduced by
The call to Mbh\Collection\Traits\Builder::__construct() has too many arguments starting with SplFixedArray::fromArray($array). ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

30
        return /** @scrutinizer ignore-call */ new static(SplFixedArray::fromArray($array));

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
31
    }
32
33
    /**
34
     * @inheritDoc
35
     */
36
    public static function fromItems(Traversable $array)
37
    {
38
        if (!$array instanceof CountableInterface) {
39
            return static::fromArray(iterator_to_array($array));
40
        }
41
42
        $sfa = new SplFixedArray(count($array));
43
44
        foreach ($array as $i => $elem) {
45
            $sfa[$i] = $elem;
46
        }
47
48
        return new static($sfa);
0 ignored issues
show
Unused Code introduced by
The call to Mbh\Collection\Traits\Builder::__construct() has too many arguments starting with $sfa. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

48
        return /** @scrutinizer ignore-call */ new static($sfa);

This check compares calls to functions or methods with their respective definitions. If the call has more arguments than are defined, it raises an issue.

If a function is defined several times with a different number of parameters, the check may pick up the wrong definition and report false positives. One codebase where this has been known to happen is Wordpress. Please note the @ignore annotation hint above.

Loading history...
49
    }
50
51
    abstract protected function checkCapacity();
52
}
53