Support implicit Context type in #[cgp_impl]
#189
Merged
+86
−19
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.
This PR brings a quality of life improvement on the use of
#[cgp_impl], by allowing the genericContexttype to be omitted.Example
Before this PR, the generic
Contextneeds to be always specified, such as:With the changes in this PR, the same provider can now be simplified as:
This significantly improves the ergonomic of writing context-generic implementations in the simple cases. With the generic
Contexttype removed, a#[cgp_impl]block looks much more like a direct implementation of a trait with no generic parameters involved. This can bridge the gap for developers coming from OOP background, as they can view the implementation as being similar to implementing a class.