Merge pull request #740 from JeppeKnockaert/fix-cannot-redeclare-method

bugfix - Prevent redeclaring methods inside Aliases
This commit is contained in:
Barry vd. Heuvel
2018-12-17 17:40:51 +01:00
committed by GitHub
+5 -2
View File
@@ -176,6 +176,10 @@ class Alias
*/ */
public function getMethods() public function getMethods()
{ {
if (count($this->methods) > 0) {
return $this->methods;
}
$this->addMagicMethods(); $this->addMagicMethods();
$this->detectMethods(); $this->detectMethods();
return $this->methods; return $this->methods;
@@ -411,10 +415,9 @@ class Alias
*/ */
protected function removeDuplicateMethodsFromPhpDoc() protected function removeDuplicateMethodsFromPhpDoc()
{ {
$methods = count($this->methods) > 0 ? $this->methods : $this->getMethods();
$methodNames = array_map(function (Method $method) { $methodNames = array_map(function (Method $method) {
return $method->getName(); return $method->getName();
}, $methods); }, $this->getMethods());
foreach ($this->phpdoc->getTags() as $tag) { foreach ($this->phpdoc->getTags() as $tag) {
if ($tag instanceof MethodTag && in_array($tag->getMethodName(), $methodNames)) { if ($tag instanceof MethodTag && in_array($tag->getMethodName(), $methodNames)) {