CLOVIS
12/17/2020, 4:04 PMinterface A<T>
I want to write a function that takes an A
and a value of the same type.
Intuitively, this would look like:
fun <T> foo(a: A<T>, v: T)
The problem is that if I call it this way:
val a: A<String> = ...
val v: Int = ...
foo(a, v)
It calls foo<Any>(a, v)
, but I want it to call foo<String>(a, v)
(and fail, because `v`'s type doesn't match what was expected by a
).
This function is fairly simple, so solutions using reified
or other inline
mechanism are not a problem, but I don't see how to do it.Arkadii Ivanov
12/18/2020, 12:32 AMType mismatch: inferred type is Int but String was expected