516efe77c9
^KT-56612 Fixed Merge-request: KT-MR-8849 Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com>
30 lines
875 B
Kotlin
Vendored
30 lines
875 B
Kotlin
Vendored
// FIR_IDENTICAL
|
|
|
|
interface FlameGraphModel<T>
|
|
|
|
internal typealias CallUsageNode = CallTreeNode<BaseCallStackElement>
|
|
|
|
interface CallTreeNode<out T : Any> : TreeNodeWithParent<CallWithValue<T>>
|
|
|
|
interface TreeNodeWithParent<out Data>
|
|
|
|
interface CallWithValue<out T : Any>
|
|
|
|
abstract class BaseCallStackElement
|
|
|
|
open class CallUsageNodeFlameGraphModel<Call : Any> : FlameGraphModel<CallTreeNode<Call>>
|
|
|
|
fun foo(model: FlameGraphModel<CallUsageNode>) {
|
|
// K1: Ok
|
|
val afterCast = model as CallUsageNodeFlameGraphModel
|
|
}
|
|
|
|
internal typealias CallTreeNodeTypealias<K> = CallTreeNode<K>
|
|
|
|
open class CallUsageNodeFlameGraphModelWithTypealiasedSupertypeArgument<Call : Any> : FlameGraphModel<CallTreeNodeTypealias<Call>>
|
|
|
|
fun bar(model: FlameGraphModel<CallUsageNode>) {
|
|
// K1: Ok
|
|
val afterCast = model as CallUsageNodeFlameGraphModelWithTypealiasedSupertypeArgument
|
|
}
|