File tree Expand file tree Collapse file tree 3 files changed +35
-2
lines changed
src/Naneau/Obfuscator/Node/Visitor Expand file tree Collapse file tree 3 files changed +35
-2
lines changed Original file line number Diff line number Diff line change @@ -123,6 +123,39 @@ public function enterNode(Node $node)
123
123
return $ node ;
124
124
}
125
125
126
+ if ($ node instanceof Node \Stmt \ClassMethod) {
127
+
128
+ if ($ node ->returnType instanceof Name) {
129
+ // Name
130
+ $ name = $ node ->returnType ->toString ();
131
+
132
+ // Has it been renamed?
133
+ if ($ this ->isRenamed ($ name )) {
134
+ $ node ->returnType = $ this ->getNewName ($ name );
135
+ return $ node ;
136
+ } elseif ($ this ->isRenamed ($ node ->returnType ->getFirst ())) {
137
+ reset ($ node ->returnType ->parts );
138
+ $ node ->returnType ->parts [key ($ node ->returnType ->parts )] = $ this ->getNewName ($ node ->returnType ->getFirst ());
139
+ return $ node ;
140
+ }
141
+ }
142
+
143
+ if ($ node ->returnType instanceof Node \NullableType && $ node ->returnType ->type instanceof Name) {
144
+ // Name
145
+ $ name = $ node ->returnType ->type ->toString ();
146
+
147
+ // Has it been renamed?
148
+ if ($ this ->isRenamed ($ name )) {
149
+ $ node ->returnType ->type = $ this ->getNewName ($ name );
150
+ return $ node ;
151
+ } elseif ($ this ->isRenamed ($ node ->returnType ->type ->getFirst ())) {
152
+ reset ($ node ->returnType ->type ->parts );
153
+ $ node ->returnType ->type ->parts [key ($ node ->returnType ->type ->parts )] = $ this ->getNewName ($ node ->returnType ->type ->getFirst ());
154
+ return $ node ;
155
+ }
156
+ }
157
+ }
158
+
126
159
// Param rename
127
160
if ($ node instanceof Param && $ node ->type instanceof Name) {
128
161
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ public function __construct() {
35
35
36
36
class classE extends namespaceDAlias \classD implements namespaceDAlias \interfaceA {
37
37
38
- public function method (namespaceDAlias \classD $ objectD ) {
38
+ public function method (namespaceDAlias \classD $ objectD ) : ? namespaceDAlias \ classD {
39
39
40
40
}
41
41
}
Original file line number Diff line number Diff line change 1
1
<?php
2
- namespace namespaceA ; class classA { } namespace namespaceC \namespaceD ; class classD { } interface interfaceA { } namespace namespaceB ; use namespaceA \classA as spf0f507 ; use namespaceC \namespaceD as sp63627e ; class classB { private $ spa26210 ; private $ sp2e1034 ; public function __construct () { $ this ->spa26210 = new spf0f507 (); $ this ->sp2e1034 = new sp63627e \classD (); } } class classE extends sp63627e \classD implements sp63627e \interfaceA { public function method (sp63627e \classD $ spc1ac55 ) { } }
2
+ namespace namespaceA ; class classA { } namespace namespaceC \namespaceD ; class classD { } interface interfaceA { } namespace namespaceB ; use namespaceA \classA as spf0f507 ; use namespaceC \namespaceD as sp63627e ; class classB { private $ spa26210 ; private $ sp2e1034 ; public function __construct () { $ this ->spa26210 = new spf0f507 (); $ this ->sp2e1034 = new sp63627e \classD (); } } class classE extends sp63627e \classD implements sp63627e \interfaceA { public function method (sp63627e \classD $ spc1ac55 ) : ? sp63627e \ classD { } }
You can’t perform that action at this time.
0 commit comments