Forbid missing Debug implementations #673
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.
Denies any public type from missing a debug implementation.
Some exceptions are made for rarely used types, and types that are only used as reach associated type parameters to agents.
This offers the peace of mind that any end-user can just slap a
#[derive(Debug)]
on their component, and it will compile without them having to do a custom debug impl.The trade off is slightly longer compile times, and likely a more bloated WASM binary.
There was a recent addition in rust 1.38.0 of std::any::type_name.
This would allow yew to offer better information about what inner types our opaque and generic types correspond to instead of just punting and saying
"Opaque<_>"
for our debug strings.Since this would require a bump to a higher version of rustc to support this, I didn't include it, because it isn't worth that for marginally better debug diagnostics.
Its just another thing to keep in the back of your mind if the minimum supported version is ever raised.