Completed
Pull Request — master (#290)
by Enrico
04:49 queued 02:11
created

ReturnVoid   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 34
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 3

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 34
ccs 11
cts 11
cp 1
rs 10
c 0
b 0
f 0
wmc 3
lcom 0
cbo 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A pass() 0 12 2
A getRegister() 0 6 1
1
<?php
2
3
namespace PHPSA\Analyzer\Pass\Statement;
4
5
use PhpParser\Node\Stmt;
6
use PhpParser\Node;
7
use PhpParser\Node\Stmt\Return_;
8
use PHPSA\Analyzer\Helper\DefaultMetadataPassTrait;
9
use PHPSA\Analyzer\Pass;
10
use PHPSA\Context;
11
12
class ReturnVoid implements Pass\AnalyzerPassInterface
13
{
14
    use DefaultMetadataPassTrait;
15
16
    const DESCRIPTION = 'Checks for return void statements.';
17
18
    /**
19
     * @param $stmt
20
     * @param Context $context
21
     * @return bool
22
     */
23 1
    public function pass(Return_ $stmt, Context $context)
24
    {
25 1
        if ($stmt->expr === null) { // this is not the value null but "no value"
26 1
            $context->notice(
27 1
                'return.void',
28 1
                'You are trying to return void',
29
                $stmt
30 1
            );
31 1
            return true;
32
        }
33 1
        return false;
34
    }
35
36
    /**
37
     * @return array
38
     */
39 2
    public function getRegister()
40
    {
41
        return [
42 2
            Return_::class,
43 2
        ];
44
    }
45
}
46