lang: Reuse common override arguments #3154
Merged
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.
Problem
The new
discriminator = <EXPR>
argument can be used with#[instruction]
,#[account]
, and#[event]
attributes, but they don't share code between each other, which results in unnecessary duplication.Summary of changes
Add a new
Overrides
struct that can be shared between all previously mentioned attributes above.The implementation is slightly different for
#[account]
because it also has other arguments (zero copy and namespaces) that we'd like to keep backwards-compatible.This change achieves the same functionality with less than half of the previous code.
Note: This PR is part of a greater effort explained in #3097.