Shorter type names in recursive types #33
Closed
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.
Description:
This is a workaround for trait bounds generated for recursive types in scale-codec.(see paritytech/parity-scale-codec#603, fixes paritytech/subxt#1603).
To generate short
Path
s in recursive types we will be temporarily storingparent_path
inside the settings struct that's passed around when generatingTokenStream
s.So instead of passing just the
alloc_crate_path
to theTypePath::to_syn_type
we will pass all of thesettings
to make use ofparent_path
. So when we encounter aPath
with a param and it will be equal to theparent_path
we will only leave the last segment inside of it.Examples: