Skip to content

Commit a15c6b7

Browse files
committed
Make ClassMethodRenamedCaseOnly extend Delta
1 parent d49730c commit a15c6b7

File tree

5 files changed

+89
-44
lines changed

5 files changed

+89
-44
lines changed

src/PHPSemVerChecker/Analyzer/ClassAnalyzer.php

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,18 @@ public function analyze(Registry $registryBefore, Registry $registryAfter)
6767
// Leave non-strict comparison here
6868
if ($classBefore != $classAfter) {
6969

70-
// Check for case change of class name
71-
if(
72-
$classBefore->name !== $classAfter->name
73-
&& strtolower($classBefore->name) === strtolower($classAfter->name)
74-
) {
75-
$report->add($this->context, new ClassRenamedCaseOnly($fileAfter, $classAfter));
70+
// Check for case change of class name.
71+
// If we entered this section then the normalized names (lowercase) were equal.
72+
if ($classBefore->name !== $classAfter->name) {
73+
$report->add(
74+
$this->context,
75+
new ClassRenamedCaseOnly(
76+
$fileBefore,
77+
$classBefore,
78+
$fileAfter,
79+
$classAfter
80+
)
81+
);
7682
}
7783

7884
$analyzers = [

src/PHPSemVerChecker/Analyzer/ClassMethodAnalyzer.php

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,19 @@ public function analyze(Stmt $contextBefore, Stmt $contextAfter)
9494

9595
// Detect method renamed case only.
9696
// If we entered this section then the normalized names (lowercase) were equal.
97-
if($methodBefore->name !== $methodAfter->name) {
98-
$report->add($this->context, new ClassMethodRenamedCaseOnly($this->context, $this->fileAfter, $contextAfter, $methodAfter));
97+
if ($methodBefore->name !== $methodAfter->name) {
98+
$report->add(
99+
$this->context,
100+
new ClassMethodRenamedCaseOnly(
101+
$this->context,
102+
$this->fileBefore,
103+
$contextAfter,
104+
$methodBefore,
105+
$this->fileAfter,
106+
$contextAfter,
107+
$methodAfter
108+
)
109+
);
99110
}
100111

101112
$signatureResult = Signature::analyze($methodBefore->getParams(), $methodAfter->getParams());

src/PHPSemVerChecker/Operation/ClassMethodRenamedCaseOnly.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace PHPSemVerChecker\Operation;
44

5-
class ClassMethodRenamedCaseOnly extends ClassMethodOperationUnary
5+
class ClassMethodRenamedCaseOnly extends ClassMethodOperationDelta
66
{
77
/**
88
* @var array
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?php
2+
3+
namespace PHPSemVerChecker\Operation;
4+
5+
use PhpParser\Node\Stmt\Class_;
6+
use PHPSemVerChecker\Node\Statement\Class_ as PClass;
7+
8+
class ClassOperationDelta extends Operation
9+
{
10+
/**
11+
* @var string
12+
*/
13+
protected $fileBefore;
14+
/**
15+
* @var \PhpParser\Node\Stmt\Class_
16+
*/
17+
protected $classBefore;
18+
/**
19+
* @var string
20+
*/
21+
protected $fileAfter;
22+
/**
23+
* @var \PhpParser\Node\Stmt\Class_
24+
*/
25+
protected $classAfter;
26+
27+
/**
28+
* @param string $file
29+
* @param \PhpParser\Node\Stmt\Class_ $class
30+
*/
31+
public function __construct($fileBefore, Class_ $classBefore, $fileAfter, Class_ $classAfter)
32+
{
33+
$this->fileBefore = $fileBefore;
34+
$this->classBefore = $classBefore;
35+
$this->fileAfter = $fileAfter;
36+
$this->classAfter = $classAfter;
37+
}
38+
39+
/**
40+
* @return string
41+
*/
42+
public function getLocation()
43+
{
44+
return $this->fileAfter;
45+
}
46+
47+
/**
48+
* @return int
49+
*/
50+
public function getLine()
51+
{
52+
return $this->classAfter->getLine();
53+
}
54+
55+
/**
56+
* @return string
57+
*/
58+
public function getTarget()
59+
{
60+
return PClass::getFullyQualifiedName($this->classAfter);
61+
}
62+
}

src/PHPSemVerChecker/Operation/ClassRenamedCaseOnly.php

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use PhpParser\Node\Stmt\Class_;
66
use PHPSemVerChecker\Node\Statement\Class_ as PClass;
77

8-
class ClassRenamedCaseOnly extends Operation {
8+
class ClassRenamedCaseOnly extends ClassOperationDelta {
99
/**
1010
* @var string
1111
*/
@@ -22,38 +22,4 @@ class ClassRenamedCaseOnly extends Operation {
2222
* @var \PhpParser\Node\Stmt\Class_
2323
*/
2424
protected $classAfter;
25-
26-
/**
27-
* @param string $fileAfter
28-
* @param \PhpParser\Node\Stmt\Class_ $classAfter
29-
*/
30-
public function __construct($fileAfter, Class_ $classAfter)
31-
{
32-
$this->fileAfter = $fileAfter;
33-
$this->classAfter = $classAfter;
34-
}
35-
36-
/**
37-
* @return string
38-
*/
39-
public function getLocation()
40-
{
41-
return $this->fileAfter;
42-
}
43-
44-
/**
45-
* @return int
46-
*/
47-
public function getLine()
48-
{
49-
return $this->classAfter->getLine();
50-
}
51-
52-
/**
53-
* @return string
54-
*/
55-
public function getTarget()
56-
{
57-
return PClass::getFullyQualifiedName($this->classAfter);
58-
}
5925
}

0 commit comments

Comments
 (0)