Files
kotlin-fork/compiler/testData/diagnostics/tests/inference/regressions/kt47941.kt
T
Ivan Kylchik c7435ba760 Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00

30 lines
667 B
Kotlin
Vendored

// FIR_IDENTICAL
// !DIAGNOSTICS: -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNCHECKED_CAST
// WITH_STDLIB
sealed interface Metric {}
class Counter: Metric
class Gauge<T>: Metric
fun <K> foo(y: List<K?>, x: Inv<in K?>, p: (Inv<K?>, K?) -> Unit) {}
fun <M> materialize(): M = null as M
class Inv<L>(var x: L)
fun <T : Metric?> register(name: String, metric: T): T? {
when (metric) {
is Counter -> {
return metric
}
is Gauge<*> -> {
foo(listOf(), Inv(metric)) { x, y ->
var a = y
a = materialize()
}
return metric
}
else -> return null
}
}