Issues (453)

src/SoapTypes/TimeRangeType.php (1 issue)

possible assignment of superclass instead of class.

Bug Documentation Minor
1
<?php
2
3
/*
4
 * This file is part of PHP CS Fixer.
5
 *
6
 * (c) Fabien Potencier <[email protected]>
7
 *     Dariusz RumiƄski <[email protected]>
8
 *
9
 * This source file is subject to the MIT license that is bundled
10
 * with this source code in the file LICENSE.
11
 */
12
13
namespace Etrias\PaazlConnector\SoapTypes;
14
15 View Code Duplication
class TimeRangeType
16
{
17
    /**
18
     * @var time
19
     */
20
    protected $lowerBound = null;
21
22
    /**
23
     * @var time
24
     */
25
    protected $upperBound = null;
26
27
    /**
28
     * Constructor.
29
     *
30
     * @var time
31
     * @var time $upperBound
32
     *
33
     * @param mixed $lowerBound
34
     * @param mixed $upperBound
35
     */
36
    public function __construct($lowerBound, $upperBound)
37
    {
38
        $this->lowerBound = $lowerBound;
0 ignored issues
show
Documentation Bug introduced by
$lowerBound is of type mixed, but the property $lowerBound was declared to be of type Etrias\PaazlConnector\SoapTypes\time. Are you sure that you always receive this specific sub-class here, or does it make sense to add an instanceof check?

Our type inference engine has found a suspicous assignment of a value to a property. This check raises an issue when a value that can be of a given class or a super-class is assigned to a property that is type hinted more strictly.

Either this assignment is in error or an instanceof check should be added for that assignment.

class Alien {}

class Dalek extends Alien {}

class Plot
{
    /** @var  Dalek */
    public $villain;
}

$alien = new Alien();
$plot = new Plot();
if ($alien instanceof Dalek) {
    $plot->villain = $alien;
}
Loading history...
39
        $this->upperBound = $upperBound;
40
    }
41
42
    /**
43
     * @return time
44
     */
45
    public function getLowerBound()
46
    {
47
        return $this->lowerBound;
48
    }
49
50
    /**
51
     * @param time $lowerBound
52
     *
53
     * @return $this
54
     */
55
    public function setLowerBound($lowerBound)
56
    {
57
        $this->lowerBound = $lowerBound;
58
59
        return $this;
60
    }
61
62
    /**
63
     * @return time
64
     */
65
    public function getUpperBound()
66
    {
67
        return $this->upperBound;
68
    }
69
70
    /**
71
     * @param time $upperBound
72
     *
73
     * @return $this
74
     */
75
    public function setUpperBound($upperBound)
76
    {
77
        $this->upperBound = $upperBound;
78
79
        return $this;
80
    }
81
}
82