fix(rustify_derive): remove derive block expr to fix LSP type inference #29
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 updates
rustify_deriveto remove the block expression that theimpl Endpointwas wrapped in.This resolves an issue where
rust-analyzeris unable to infer the type ofEndpoint::Responsein some cases. The issue is described at:Endpoint::Response#28🔧 Changes
const #const_ident: () = {...};wrappingimpl Endpointin the derive macrouseimports that were contained in this block expressionRequestMethod->rustify::enums::RequestMethodI believe this fix is backwards-compatible, but I invite others to check me on that.
Since
vaultrsusesrustify, I checkedvaultrsonmaster(aaa7ff6) withrustify_derivedependency pointed at this branch.cargo buildsucceeds andcargo clippyreports two unusedserde::Serializeimports:This is likely due to switching to
serde::Serializein the macro. I think not requiring thisuseis an improvement, but if we prefer I can adjust the PR.✅ Testing
rust-analyzerto infer response types in my editor.Endpoint::Response#28, as well as in my project using this library.cargo testcargo checkcargo clippycargo run --package rustify --example reqres1cargo run --package rustify --example reqres2