Implements common case class & case object methods normally synthesized by the compiler. Extending this trait by
case class or case object prevents the compiler from synthesizing these methods which can reduce generated JS size
at penalty of not-exactly-precise implementation of canEqual and equals and its runtime performance.
For this reason, non-abstract classes extending this trait should always be final.
If possible, prefer using AbstractCase rather than this trait.
Implements common case class & case object methods normally synthesized by the compiler. Extending this trait by case class or case object prevents the compiler from synthesizing these methods which can reduce generated JS size at penalty of not-exactly-precise implementation of
canEqual
andequals
and its runtime performance. For this reason, non-abstract classes extending this trait should always be final. If possible, prefer using AbstractCase rather than this trait.