FILE: genericConstructors.kt public final class A : R|kotlin/Any| { public constructor(t: R|T|): R|A| { super() } public final fun foo(x: R|T|): R|kotlin/Unit| { } } public abstract class B : R|kotlin/Any| { public constructor(e: R|E|): R|B| { super() } public final val myE: R|E| = this@R|/B|.R|/B.id|(R|/e|) public get(): R|E| public final val a: R|A| = R|/A.A|(R|/e|) public get(): R|A| public final fun id(e: R|E|): R|E| { ^id R|/e| } } public final class C : R|B| { public constructor(): R|C| { super|>(String()) } public final fun bar(): R|kotlin/Unit| { this@R|/C|.R|SubstitutionOverride|>|.R|SubstitutionOverride|(String()) } }