You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Back again, with more potential upstream candidates :)
@bplommer wrote us some very nice internal scalafix rules for http4s. They are generally applicable, particularly for OSS libraries that must be mindful about binary compatibility. So we would like to give you the right of first refusal before we upstream it to typelevel-scalafix 😉
Fantastic! Glad to hear that :) thank you so much.
Maybe we could group them under some kind of SafeADT rule, with some configuration allowing opt-out?
Yes, that makes sense to me. Those ADT best practices look good too, although I'm curious about whether the advice to mark case objects as final is still relevant in modern Scala, and if so how it relates to the RedundantSyntax.finalObject rule.
Note: in Scala 2.12 and earlier removing the `final` modifier will slightly change the resulting bytecode - see [this bug ticket](https://github.com/scala/bug/issues/11094) for further information.
Back again, with more potential upstream candidates :)
@bplommer wrote us some very nice internal scalafix rules for http4s. They are generally applicable, particularly for OSS libraries that must be mindful about binary compatibility. So we would like to give you the right of first refusal before we upstream it to typelevel-scalafix 😉
noFinalObject
Add rewriting rule RedundantSyntax.finalObject #1496noNonFinalCaseClass
"Case classes should be final, sealed, or private"leakingSealedHierarchy
"descendants of sealed traits should be sealed, final, or private"nonValidatingCopyConstructor
"Case classes with private constructors should be abstract to prevent exposing a non-validating copy constructor"Thanks, appreciate your time to look into these!
The text was updated successfully, but these errors were encountered: