Closed
Description
When a given with
expression returns a more refined instance, export is missing it from the implicit scope.
Regular givens or transparent inline givens are OK.
Compiler version
v3.0.1-RC2 (also tested on nightly)
Minimized code
object Catch22:
trait TC[V]
object TC:
export Hodor.TC.given
object Hodor:
object TC:
import Catch22.TC
given fromString[V <: String]: TC[V] = ???
transparent inline given fromDouble[V <: Double]: TC[V] =
new TC[V]:
type Out = Double
given fromInt[V <: Int]: TC[V] with
type Out = Int
object Test:
summon[Catch22.TC["hi"]] //works
summon[Catch22.TC[7.7]] //works
summon[Catch22.TC[1]] //error
Output
no implicit argument of type Catch22.TC[(1 : Int)] was found for parameter x of method summon in object Predef.
I found:
Catch22.TC.fromDouble[V]
But given instance fromDouble in object TC does not match type Catch22.TC[(1 : Int)].
Expectation
No error.