Bug 64070 fix, traits aliasing of collided methods #277
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Here's a description https://bugs.php.net/bug.php?id=64070
Basically the problem can be described so:
We have a trait Foo that has a method bar()
We have a trait Bar that has a method bar()
Bar uses Foo, and to avoid collisions, it aliases Foo::bar() as foo()
Now the problem: when Foo::bar() copied to a Bar with alias foo(), its function_name (zend_function.common.function_name) remains as "bar". So when some other class or trait uses Bar, it receives Foo::bar() as bar, not as foo() and that causes a problem.