Skip to content

Commit

Permalink
Merge pull request naneau#11 from Cheburon/fix-php7-params
Browse files Browse the repository at this point in the history
fix
  • Loading branch information
Cheburon authored Apr 7, 2017
2 parents b4caa1a + 33d0ef5 commit 0cdc636
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 3 deletions.
16 changes: 15 additions & 1 deletion src/Naneau/Obfuscator/Node/Visitor/ScrambleUse.php
Original file line number Diff line number Diff line change
Expand Up @@ -156,9 +156,23 @@ public function enterNode(Node $node)
}
}

if ($node instanceof Param && $node->type instanceof Node\NullableType && $node->type->type instanceof Name) {
// Name
$name = $node->type->type->toString();

// Has it been renamed?
if ($this->isRenamed($name)) {
$node->type->type = $this->getNewName($name);
return $node;
} elseif ($this->isRenamed($node->type->type->getFirst())) {
reset($node->type->type->parts);
$node->type->type->parts[key($node->type->type->parts)] = $this->getNewName($node->type->type->getFirst());
return $node;
}
}

// Param rename
if ($node instanceof Param && $node->type instanceof Name) {

// Name
$name = $node->type->toString();

Expand Down
2 changes: 1 addition & 1 deletion tests/before/Namespaces.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public function __construct() {

class classE extends namespaceDAlias\classD implements namespaceDAlias\interfaceA {

public function method(namespaceDAlias\classD $objectD) : ?namespaceDAlias\classD {
public function method(?namespaceDAlias\classD $objectD) : ?namespaceDAlias\classD {

}
}
2 changes: 1 addition & 1 deletion tests/expected/Namespaces.php
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
<?php
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 { } }
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 { } }

0 comments on commit 0cdc636

Please sign in to comment.