Back to Scala3

E078: Value Class Needs Exactly One Val Parameter

docs/_docs/reference/error-codes/E078.md

3.8.41.1 KB
Original Source

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

scala
class Wrapper() extends AnyVal

Error

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

Solution

scala
// Add exactly one val parameter
class Wrapper(val value: Int) extends AnyVal
scala
// For multiple values, use a regular class or case class
case class Wrapper(x: Int, y: Int)
<!-- SOURCE-ONLY: Remove the notice below once this page has been manually updated. --> <aside class="warning"> This reference page was created with LLM assistance - the description of the error code may not be accurate or cover all possible scenarios. </aside>