[FIR] Correctly detect super type in delegated constructor call

This commit is contained in:
Dmitriy Novozhilov
2020-04-16 17:46:18 +03:00
parent adfd478361
commit 7f02d57d88
56 changed files with 199 additions and 230 deletions
@@ -0,0 +1,27 @@
// FILE: AJava.java
public class AJava {
public AJava(String s) {}
}
// FILE: main.kt
class BJava : AJava, C {
constructor(s: String) : super(s)
}
open class AKt(val s: String)
class BKt : AKt, C {
constructor(s: String) : super(s)
}
interface C
typealias QQQ = AKt
typealias DDD = C
class CKt : QQQ, DDD {
constructor(s: String) : super(s)
}
@@ -0,0 +1,32 @@
FILE: main.kt
public final class BJava : R|AJava|, R|C| {
public constructor(s: R|kotlin/String|): R|BJava| {
super<R|AJava|>(R|<local>/s|)
}
}
public open class AKt : R|kotlin/Any| {
public constructor(s: R|kotlin/String|): R|AKt| {
super<R|kotlin/Any|>()
}
public final val s: R|kotlin/String| = R|<local>/s|
public get(): R|kotlin/String|
}
public final class BKt : R|AKt|, R|C| {
public constructor(s: R|kotlin/String|): R|BKt| {
super<R|AKt|>(R|<local>/s|)
}
}
public abstract interface C : R|kotlin/Any| {
}
public final typealias QQQ = R|AKt|
public final typealias DDD = R|C|
public final class CKt : R|QQQ|, R|DDD| {
public constructor(s: R|kotlin/String|): R|CKt| {
super<R|QQQ|>(R|<local>/s|)
}
}