[Analysis API decompiler] materialize delegate declarations in stubs

We should materialize delegated declarations to process callables
in scopes correctly. Standalone mode works the same way as it
deserialize directly into FIR.
Another solution is to rework proto and stub serializer/deserializer to
restore FirFields like `$$delegate_0` correctly to work with
`FirDelegatedMemberScope`

^KT-62896 Fixed
^KT-64584 Fixed
This commit is contained in:
Dmitrii Gridin
2023-12-27 19:55:40 +01:00
committed by Space Team
parent 06950f57db
commit d88249bda7
11 changed files with 778 additions and 19 deletions
@@ -2,15 +2,45 @@ KT element: KtClass
KT element text:
public final class I public constructor(p: A) : A {
private final val p: A /* compiled code */
public open var bar: kotlin.Long /* compiled code */
public open val kotlin.Int.doo: kotlin.String /* compiled code */
public open val foo: kotlin.Int /* compiled code */
public open var kotlin.Int.zoo: kotlin.Unit /* compiled code */
public open fun foo(): kotlin.Unit { /* compiled code */ }
public open fun kotlin.Int.smth(): kotlin.Short { /* compiled code */ }
}
FIR element: FirRegularClassImpl
FIR source kind: KtRealSourceElementKind
FIR element rendered:
public final [ResolvedTo(BODY_RESOLVE)] class I : R|A| {
public open [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit|
public open [ResolvedTo(BODY_RESOLVE)] fun R|kotlin/Int|.smth(): R|kotlin/Short|
public open [ResolvedTo(BODY_RESOLVE)] var bar: R|kotlin/Long|
public open [ResolvedTo(BODY_RESOLVE)] val R|kotlin/Int|.doo: R|kotlin/String|
public open [ResolvedTo(BODY_RESOLVE)] val foo: R|kotlin/Int|
private final [ResolvedTo(BODY_RESOLVE)] val p: R|A|
public open [ResolvedTo(BODY_RESOLVE)] var R|kotlin/Int|.zoo: R|kotlin/Unit|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=I] constructor([ResolvedTo(BODY_RESOLVE)] p: R|A|): R|I|
}