-
Notifications
You must be signed in to change notification settings - Fork 5.4k
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
Fixes find_method_for_type bail out with 1st match #6606
Conversation
CodSpeed Performance ReportMerging #6606 will degrade performances by 35.42%Comparing Summary
Benchmarks breakdown
|
When find_method_for_type could not match the parameters and return type with the available methods it would return the first match by name. This was not a deterministic and secure behavior so now we strictly match the parameter types and return type. Fixes #5086
find_method_for_type now if we have: impl<T> FromBytes for T and: impl FromBytes for DataPoint, we pick the second implementation. Fixes #6572
001ac1f
to
ea19c3e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One minor comment, but otherwise it looks good.
Some of the methods in type_check_context.rs are getting a bit long - I wonder if we should put some time into refactoring them?
## Description When find_method_for_type could not match the parameters and return type with the available methods it would return the first match by name. This was not a deterministic and secure behavior so now we strictly match the parameter and return types. Fixes #5086 find_method_for_type now if we have: impl<T> FromBytes for T and: impl FromBytes for DataPoint, we pick the second implementation. Fixes #6572 ## Checklist - [x] I have linked to any relevant issues. - [x] I have commented my code, particularly in hard-to-understand areas. - [ ] I have updated the documentation where relevant (API docs, the reference, and the Sway book). - [ ] If my change requires substantial documentation changes, I have [requested support from the DevRel team](https://github.com/FuelLabs/devrel-requests/issues/new/choose) - [x] I have added tests that prove my fix is effective or that my feature works. - [x] I have added (or requested a maintainer to add) the necessary `Breaking*` or `New Feature` labels where relevant. - [x] I have done my best to ensure that my PR adheres to [the Fuel Labs Code Review Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md). - [x] I have requested a review from the relevant team or maintainers. --------- Co-authored-by: IGI-111 <[email protected]> Co-authored-by: Joshua Batty <[email protected]>
Description
When find_method_for_type could not match the parameters and return type with the available methods it would return the first match by name.
This was not a deterministic and secure behavior so now we strictly match the parameter and return types.
Fixes #5086
find_method_for_type now if we have: impl FromBytes for T
and: impl FromBytes for DataPoint, we pick the second implementation.
Fixes #6572
Checklist
Breaking*
orNew Feature
labels where relevant.