Skip to content

In enum with type parameter, can't call constructor for enum case with default argument #22137

Closed
@joan38

Description

@joan38

Default parameters on enum cases does not seem to work properly.

Minimized code

enum Parser[+Value]:
  case Success(value: Value, issues: Seq[Failure] = Seq.empty) extends Parser[Value]
  case Failure(exception: Throwable)                           extends Parser[Nothing]

Parser.Success(1)
^
method $lessinit$greater$default$2 in object Success does not take type parameters

https://scastie.scala-lang.org/xZ81zFUkSECDcf2vpVgG1g

Workaround

enum Parser[+Value]:
  case Success[+Value](value: Value, issues: Seq[Failure] = Seq.empty) extends Parser[Value]
  case Failure(exception: Throwable)                                   extends Parser[Nothing]

Parser.Success(1)

https://scastie.scala-lang.org/avT9leMZRJmC0VMP14UeoA

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions