Skip to content

Incorrect overload resolution #19331

Open
@Bersier

Description

@Bersier

Compiler version

3.3.1, 3.3.2-RC1, 3.4.0-RC1

Minimized code

import scala.compiletime.ops.int.+
import scala.annotation.targetName

object Scope:
  opaque type Dim[I <: Int] = Double
  val foo: Dim[1] = 1.0
  extension[I <: Int](x: Dim[I])
    @targetName("specialTimes") def times(y: Dim[0]): Dim[I] = x * y
    @targetName("generalTimes") def times[J <: Int](y: Dim[J]): Dim[I + J] = x * y
end Scope

import Scope.*

val bar: Dim[2] = foo.times(foo)

Compiler output

Found:    (Scope.foo : Scope.Dim[(1 : Int)])
Required: Scope.Dim[(0 : Int)]

Expectation

No compile error.

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