docs/_docs/reference/error-codes/E074.md
This error is emitted when a value class (a class extending AnyVal) is declared as abstract.
Value classes must be concrete because they are meant to be inlined by the compiler. An abstract value class cannot be instantiated and therefore cannot serve its purpose of avoiding object allocation.
abstract class Wrapper(val value: Int) extends AnyVal
-- [E074] Syntax Error: example.scala:1:15 -------------------------------------
1 |abstract class Wrapper(val value: Int) extends AnyVal
| ^
| Value classes may not be abstract
// Remove the abstract modifier
class Wrapper(val value: Int) extends AnyVal
// For abstraction, use a universal trait
trait Numeric extends Any:
def value: Int
class Wrapper(val value: Int) extends AnyVal with Numeric