Open
Description
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.