We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Procedure: Method Dispatch
Compute the call signature:
null
Collect methods that match the call-site method’s name and number of arguments and have a supertype signiture of the :
If M′ is empty, throw an exception as there are no dispatchable methods.
Reduce the set to methods that are not supertypes of any other method in the set, these are the most specific signatures:
At this point, M″ will have at least one member.
If |M″| > 1, resolve ambiguity using a modified C3 linearization (the MPS variant) with precedence for arguments left to right.
At this point, the algorithm will always produce one most preferred method to dispatch to.
TODO formalize C3 and left to right precedence
The text was updated successfully, but these errors were encountered:
Gattag
No branches or pull requests
Procedure: Method Dispatch
Compute the call signature:
null
arguments in sa with the corresponding parameter types from scs.Collect methods that match the call-site method’s name and number of arguments and have a supertype signiture of the :
If M′ is empty, throw an exception as there are no dispatchable
methods.
Reduce the set to methods that are not supertypes of any other method in the set, these are the most specific signatures:
At this point, M″ will have at least one member.
If |M″| > 1, resolve ambiguity using a modified C3 linearization (the MPS variant) with precedence for arguments left to right.
At this point, the algorithm will always produce one most preferred method to dispatch to.
TODO formalize C3 and left to right precedence
The text was updated successfully, but these errors were encountered: