Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Resolve generics of inherited pseudo methods #7430

Merged
merged 2 commits into from Jan 19, 2022

Conversation

vincent4vx
Copy link
Contributor

See: #7419

This PR contains 2 fixes :

  • Use real called object type on template resolution
  • Detect the class like which actually declare the called pseudo method

For the second fix, pseudo methods are copied to the child class like storage, so the declaring class is missing. That why tracking of the declaring method id is required, and lookup from parent_classes is not required.

But, pseudo methods declared on implemented interface are not copied (actual cause of #7198), so resolution of the declaring class like cannot be performed only by a lookup on declaring_pseudo_method_ids for this particular case.

Should I copy all pseudo_methods (and also declaring_pseudo_method_ids) from implemented interfaces in this PR, or it should be fixed on another PR ?

@orklah orklah added the release:feature The PR will be included in 'Features' section of the release notes label Jan 19, 2022
@orklah
Copy link
Collaborator

orklah commented Jan 19, 2022

Small PR is good :) It's easier to review! I'll merge this one for now

@orklah orklah merged commit d274d52 into vimeo:4.x Jan 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release:feature The PR will be included in 'Features' section of the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants