Skip to content

auto-generated names for givens are too short #23831

@mr-git

Description

@mr-git

Compiler version

3.7.2

Minimized code

//> using scala 3.7.2
trait Special[A]

object syntax:
  given Special[Option[Long]] = ???
  given Special[Option[Int]] = ???

Output

-- [E120] Naming Error: --------------------------------------------------------
3 |  given Special[Option[Int]] = ???
  |        ^
  |Double definition:
  |final lazy given val given_Special_Option: Special[Option[Long]] in object syntax at line 2 and
  |final lazy given val given_Special_Option: Special[Option[Int]] in object syntax at line 3
1 error found

Expectation

The generated names for givens should not be limited to 2 nested types.

Workaround

//> using scala 3.7.2

import scala.annotation.targetName

trait Special[A]

object syntax:
  @targetName("Special_Option_Long")
  given Special[Option[Long]] = ???
  @targetName("Special_Option_Int")
  given Special[Option[Int]] = ???

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions