Skip to content

Union of literal types is not inferred correctly #22219

Closed
@goshacodes

Description

@goshacodes

Compiler version

3.3.4

Minimized code

type MonthNumber =
  1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12

List[(String, MonthNumber)](
    "January" -> 1,
    "February" -> 2,
    "March" -> 3,
    "April" -> 4,
    "May" -> 5,
    "June"-> 6,
    "July" -> 7,
    "August" -> 8,
    "September" -> 9,
    "October" -> 10,
    "November" -> 11,
    "December" -> 12
  ).foreach { (name, number) =>
    summon[number.type <:< MonthNumber]
  }

Output

Cannot prove that (number : Int) <:< MonthNumber.
    summon[number.type <:< MonthNumber]

Expectation

Compiles

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions