-
-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
New lint: non-sealed pub trait
method default implementation removed
#294
Comments
Sure! |
pub trait
method default implementation removed
The "non-sealed" part here is very important: removing default implementations for sealed traits is not a breaking change -- I think it isn't even semver-minor. Removing the default implementation is breaking if it can force other crates to provide implementations whereas previously they relied on the existence of a default. Sealed traits cannot be implemented by other crates -- only the crate that defines the sealed trait can implement it. So no other crate could possibly have had implementations of the trait which might be broken. Sealing a previously non-sealed trait, however, is a very breaking change, and I just added it to the list in #5. |
We still need the |
When the
pub trait
method's default implementation is removed, the method is no more provided and turns into a declared method. This forces the new version to implement the now-declared method in all of theimpl
blocks which were deriving that trait with its previously-provided method in the old version.Required new version: Major
This requires some schema additions:
Trait
to itsMethod
s [linked PR]has_body
field forMethod
[linked PR]The text was updated successfully, but these errors were encountered: