9
9
use PHPSemVerChecker \Operation \ClassMethodAdded ;
10
10
use PHPSemVerChecker \Operation \ClassMethodImplementationChanged ;
11
11
use PHPSemVerChecker \Operation \ClassMethodParameterChanged ;
12
+ use PHPSemVerChecker \Operation \ClassMethodParameterNameChanged ;
12
13
use PHPSemVerChecker \Operation \ClassMethodRemoved ;
13
- use PHPSemVerChecker \Operation \Unknown ;
14
14
use PHPSemVerChecker \Report \Report ;
15
15
use PHPSemVerChecker \SemanticVersioning \Level ;
16
16
@@ -49,14 +49,6 @@ public function analyze(Stmt $contextBefore, Stmt $contextAfter)
49
49
$ methodsAfterKeyed [$ method ->name ] = $ method ;
50
50
}
51
51
52
- $ methodsBeforeKeyed = array_filter ($ methodsBeforeKeyed , function (ClassMethod $ method ) {
53
- return $ method ->isPublic ();
54
- });
55
-
56
- $ methodsAfterKeyed = array_filter ($ methodsAfterKeyed , function (ClassMethod $ method ) {
57
- return $ method ->isPublic ();
58
- });
59
-
60
52
$ methodNamesBefore = array_keys ($ methodsBeforeKeyed );
61
53
$ methodNamesAfter = array_keys ($ methodsAfterKeyed );
62
54
$ methodsAdded = array_diff ($ methodNamesAfter , $ methodNamesBefore );
@@ -69,7 +61,7 @@ public function analyze(Stmt $contextBefore, Stmt $contextAfter)
69
61
foreach ($ methodsRemoved as $ method ) {
70
62
$ methodBefore = $ methodsBeforeKeyed [$ method ];
71
63
$ data = new ClassMethodRemoved ($ this ->context , $ this ->fileBefore , $ contextBefore , $ methodBefore );
72
- $ report ->addClassMethod ( $ data , Level:: MAJOR );
64
+ $ report ->add ( $ this -> context , $ data );
73
65
}
74
66
75
67
foreach ($ methodsToVerify as $ method ) {
@@ -82,24 +74,26 @@ public function analyze(Stmt $contextBefore, Stmt $contextAfter)
82
74
if ($ methodBefore != $ methodAfter ) {
83
75
$ paramsBefore = $ methodBefore ->params ;
84
76
$ paramsAfter = $ methodAfter ->params ;
85
- // Signature
86
77
78
+ // Signature
79
+ $ signatureChanged = false ;
87
80
if ( ! Signature::isSameTypehints ($ paramsBefore , $ paramsAfter )) {
88
81
$ data = new ClassMethodParameterChanged ($ this ->context , $ this ->fileBefore , $ contextBefore , $ methodBefore , $ this ->fileAfter , $ contextAfter , $ methodAfter );
89
- $ report ->addClassMethod ($ data , Level::MAJOR );
82
+ $ report ->add ($ this ->context , $ data );
83
+ $ signatureChanged = true ;
90
84
}
91
85
92
- if ( ! Signature::isSameVariables ($ paramsBefore , $ paramsAfter )) {
93
- $ data = new ClassMethodParameterChanged ($ this ->context , $ this ->fileBefore , $ contextBefore , $ methodBefore , $ this ->fileAfter , $ contextAfter , $ methodAfter );
94
- $ report ->addClassMethod ( $ data , Level:: PATCH );
86
+ if ( ! $ signatureChanged && ! Signature::isSameVariables ($ paramsBefore , $ paramsAfter )) {
87
+ $ data = new ClassMethodParameterNameChanged ($ this ->context , $ this ->fileBefore , $ contextBefore , $ methodBefore , $ this ->fileAfter , $ contextAfter , $ methodAfter );
88
+ $ report ->add ( $ this -> context , $ data );
95
89
}
96
90
97
91
// Different length (considering params with defaults)
98
92
99
93
// Difference in source code
100
94
if ($ methodBefore ->stmts != $ methodAfter ->stmts ) {
101
95
$ data = new ClassMethodImplementationChanged ($ this ->context , $ this ->fileBefore , $ contextBefore , $ methodBefore , $ this ->fileAfter , $ contextAfter , $ methodAfter );
102
- $ report ->addClassMethod ( $ data , Level:: PATCH );
96
+ $ report ->add ( $ this -> context , $ data );
103
97
}
104
98
}
105
99
}
@@ -108,7 +102,7 @@ public function analyze(Stmt $contextBefore, Stmt $contextAfter)
108
102
foreach ($ methodsAdded as $ method ) {
109
103
$ methodAfter = $ methodsAfterKeyed [$ method ];
110
104
$ data = new ClassMethodAdded ($ this ->context , $ this ->fileAfter , $ contextAfter , $ methodAfter );
111
- $ report ->addClassMethod ( $ data , Level:: MINOR );
105
+ $ report ->add ( $ this -> context , $ data );
112
106
}
113
107
114
108
return $ report ;
0 commit comments