[FIR] Correctly detect super type in delegated constructor call
This commit is contained in:
+27
@@ -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)
|
||||
}
|
||||
+32
@@ -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|)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -8,7 +8,7 @@ FILE: LinkedList.kt
|
||||
FILE: HashSet.kt
|
||||
public final class HashSet<T> : R|java/util/HashSet<T>| {
|
||||
public constructor<T>(): R|util/HashSet<T>| {
|
||||
super<R|kotlin/Any|>()
|
||||
super<R|java/util/HashSet<T>|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ FILE: notASupertype.kt
|
||||
}
|
||||
public final class B : R|A| {
|
||||
public constructor(): R|B| {
|
||||
super<R|kotlin/Any|>()
|
||||
super<R|A|>()
|
||||
}
|
||||
|
||||
public final fun g(): R|kotlin/Unit| {
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ FILE: checkArguments.kt
|
||||
}
|
||||
public final class C : R|B| {
|
||||
public constructor(): R|C| {
|
||||
super<R|kotlin/Any|>()
|
||||
super<R|B|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
FILE: test.kt
|
||||
public final class MyDecorator : R|Decorator<LookupElement>| {
|
||||
public constructor(): R|MyDecorator| {
|
||||
super<R|kotlin/Any|>()
|
||||
super<R|Decorator<LookupElement>|>()
|
||||
}
|
||||
|
||||
public final override fun getLookupString(): R|kotlin/String| {
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ FILE: test.kt
|
||||
|
||||
public final class Extra : R|test/Test| {
|
||||
public constructor(x: R|kotlin/Int|): R|test/Test.Extra| {
|
||||
super<R|kotlin/Any|>()
|
||||
super<R|test/Test|>()
|
||||
}
|
||||
|
||||
public final val x: R|kotlin/Int| = R|<local>/x|
|
||||
|
||||
Reference in New Issue
Block a user