Files
Ivan Kochurkin 69b9bfc3e0 [FIR] Initialize public visibility for class-like declarations at FIR building phase if no modifier is presented
Java resolving subsystem requires calculated visibility for correct disambiguation of supertypes.
But visibility remains `Unknown` for Kotlin class-like declarations during supertypes resolving because `STATUS` resolve phase is performed after `SUPER_TYPES` phase.
To fix the problem, the visibility should be initialized to public at the FIR building phase if no modifier is presented.

^KT-64127 Fixed
2024-01-04 16:17:32 +00:00

52 lines
2.5 KiB
Plaintext
Vendored

FILE: delegatedFieldNestedName.kt
@Target(AnnotationTarget#.TYPE#) public final? annotation class Anno : R|kotlin/Annotation| {
public? [ContainingClassKey=Anno] constructor([CorrespondingProperty=second/Anno.i] i: Int): R|second/Anno| {
super<R|kotlin/Any|>()
}
public? final? [IsFromPrimaryConstructor=true] val i: Int = R|<local>/i|
public? [ContainingClassKey=Anno] get(): Int
}
public final? interface Base<A> : R|kotlin/Any| {
public? final? fun foo(): R|kotlin/Unit| {
}
}
public final? interface Second<T> : R|kotlin/Any| {
}
public? final? const val outer: <implicit> = IntegerLiteral(0)
public? get(): <implicit>
public? final? const val inner: <implicit> = String()
public? get(): <implicit>
public final? [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0, 1=FirFieldSymbol second/MyClass.$$delegate_1}] class MyClass : @Anno(IntegerLiteral(0).plus#(outer#)) Base<@Anno(IntegerLiteral(1).plus#(outer#)) Base<@Anno(IntegerLiteral(2).plus#(outer#)) Int>>, @Anno(IntegerLiteral(4).plus#(outer#)) Second<@Anno(IntegerLiteral(5).plus#(outer#)) String> {
public? [ContainingClassKey=MyClass] constructor(): R|second/MyClass| {
super<<implicit>>()
}
private final field $$delegate_0: @Anno(IntegerLiteral(0).plus#(outer#)) Base<@Anno(IntegerLiteral(1).plus#(outer#)) Base<@Anno(IntegerLiteral(2).plus#(outer#)) Int>> = Companion#
private final field $$delegate_1: @Anno(IntegerLiteral(4).plus#(outer#)) Second<@Anno(IntegerLiteral(5).plus#(outer#)) String> = NestedObject#
public final? companion object Companion : @Anno(IntegerLiteral(6).plus#(inner#)) Base<@Anno(IntegerLiteral(7).plus#(inner#)) Base<@Anno(IntegerLiteral(8).plus#(inner#)) Int>> {
private [ContainingClassKey=Companion] constructor(): R|second/MyClass.Companion| {
super<<implicit>>()
}
public? final? const val outer: <implicit> = String()
public? [ContainingClassKey=Companion] get(): <implicit>
public? final? const val inner: <implicit> = IntegerLiteral(0)
public? [ContainingClassKey=Companion] get(): <implicit>
}
public final? object NestedObject : @Anno(IntegerLiteral(9).plus#(inner#)) Second<@Anno(IntegerLiteral(10).plus#(inner#)) String> {
private [ContainingClassKey=NestedObject] constructor(): R|second/MyClass.NestedObject| {
super<<implicit>>()
}
}
}