E078: Value Class Needs Exactly One Val Parameter

This error is emitted when a value class (a class extending AnyVal) doesn't have exactly one val parameter.

Value classes must have exactly one val parameter in their primary constructor. This single parameter is the wrapped value that the value class represents at runtime.


Example

class Wrapper() extends AnyVal

Error

-- [E078] Syntax Error: example.scala:1:6 --------------------------------------
1 |class Wrapper() extends AnyVal
  |      ^
  |      Value class needs one val parameter

Solution

// Add exactly one val parameter
class Wrapper(val value: Int) extends AnyVal
// For multiple values, use a regular class or case class
case class Wrapper(x: Int, y: Int)