Qualify Some/String/Vec paths in generated code#1032
Draft
danieleades wants to merge 1 commit into
Draft
Conversation
Generated code mostly uses fully-qualified paths (::std::...) so that output compiles even when the schema defines types with names like Some, String, or Vec. A few emitted blocks still used bare paths: - the schemars::JsonSchema impl for deny-value newtypes used bare Some - the TryFrom impl proxied through an inner type's FromStr used bare String - the ConversionError From impl used bare String - sets were rendered as bare Vec<T> Qualify all of these.
bcf6993 to
f62e57a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Generated code mostly uses fully-qualified paths (
::std::...) so that output compiles even when the schema defines types namedSome,String, orVec(see therust-collisionstest schema). A few emitted blocks still used bare paths:schemars::JsonSchemaimpl for deny-value newtypes used bareSomeTryFromimpl proxied through an inner type'sFromStrused bareStringConversionErrorFromimpl used bareStringVec<T>This qualifies all of these. Pure path qualification — no change to the set of impls generated (+83/−83 across goldens).
An earlier revision of this PR also re-introduced a
TryFrom<&String>impl at the FromStr-proxy site; that was dropped since it reverts #946, which deliberately removed it as non-idiomatic.