diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.kt new file mode 100644 index 00000000000..5bb5f86542d --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.kt @@ -0,0 +1,15 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class Usage : Foo2 { + override fun foo() {} +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt new file mode 100644 index 00000000000..3ebf2fc893e --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.txt @@ -0,0 +1,421 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(COMPANION_GENERATION)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(CONTRACTS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class Usage : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] constructor(): R|Usage| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class Usage : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] constructor(): R|Usage| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.kt new file mode 100644 index 00000000000..b434c2ab829 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt new file mode 100644 index 00000000000..0bf772dfb9b --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.txt @@ -0,0 +1,996 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(COMPANION_GENERATION)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(CONTRACTS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.kt new file mode 100644 index 00000000000..748e7042d21 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt new file mode 100644 index 00000000000..95ee1d0b6c1 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.txt @@ -0,0 +1,997 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(COMPANION_GENERATION)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(CONTRACTS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.kt new file mode 100644 index 00000000000..2ef1b61d6b9 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt new file mode 100644 index 00000000000..1fdf198855f --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.txt @@ -0,0 +1,997 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(COMPANION_GENERATION)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(SUPER_TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(CONTRACTS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.kt new file mode 100644 index 00000000000..9359192e348 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt new file mode 100644 index 00000000000..77402564df8 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.txt @@ -0,0 +1,997 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(COMPANION_GENERATION)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(CONTRACTS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.kt new file mode 100644 index 00000000000..8c9c914b1c3 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.kt @@ -0,0 +1,11 @@ +interface Foo1 : Foo2 { + override fun foo() +} + +interface Foo2 : Foo3 { + override fun foo() +} + +interface Foo3 : Foo1 { + override fun foo() +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt new file mode 100644 index 00000000000..79be24f3f2d --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.txt @@ -0,0 +1,223 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(COMPANION_GENERATION)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(CONTRACTS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.kt new file mode 100644 index 00000000000..cd348705227 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.kt @@ -0,0 +1,11 @@ +interface Foo1 : Foo2 { + fun foo() +} + +interface Foo2 : Foo3 { + override fun foo() +} + +interface Foo3 : Foo1 { + override fun foo() +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt new file mode 100644 index 00000000000..06e5e8e5e77 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.txt @@ -0,0 +1,223 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(COMPANION_GENERATION)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(CONTRACTS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.kt new file mode 100644 index 00000000000..34fb8f67a67 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.kt @@ -0,0 +1,15 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class Usage : Foo2 { + override fun foo() {} +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.txt new file mode 100644 index 00000000000..43c0667a6cd --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.txt @@ -0,0 +1,424 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| { + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo(): R|kotlin/Unit| { + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class Usage : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] constructor(): R|Usage| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.kt new file mode 100644 index 00000000000..93ccff33171 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.txt new file mode 100644 index 00000000000..79bbd348a71 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.txt @@ -0,0 +1,1000 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.kt new file mode 100644 index 00000000000..8aa70126983 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.txt new file mode 100644 index 00000000000..de16098cdf2 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.txt @@ -0,0 +1,1000 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun bar([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] fun bar([ResolvedTo(COMPANION_GENERATION)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(SUPER_TYPES)] fun bar([ResolvedTo(SUPER_TYPES)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(TYPES)] fun bar([ResolvedTo(TYPES)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun bar([ResolvedTo(EXPECT_ACTUAL_MATCHING)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun bar([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(CONTRACTS)] fun bar([ResolvedTo(CONTRACTS)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun bar([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun bar([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.kt new file mode 100644 index 00000000000..b5f77cdfb63 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.kt @@ -0,0 +1,37 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.txt new file mode 100644 index 00000000000..51b13847626 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.txt @@ -0,0 +1,1000 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(SUPER_TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.kt new file mode 100644 index 00000000000..f2e7d48f600 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.kt @@ -0,0 +1,11 @@ +interface Foo1 : Foo2 { + override fun foo() +} + +interface Foo2 : Foo3 { + override fun foo() +} + +interface Foo3 : Foo1 { + override fun foo() +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.txt new file mode 100644 index 00000000000..e56c2efeb78 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.txt @@ -0,0 +1,223 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.kt new file mode 100644 index 00000000000..8fc332c2b03 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.kt @@ -0,0 +1,11 @@ +interface Foo1 : Foo2 { + fun foo() +} + +interface Foo2 : Foo3 { + override fun foo() +} + +interface Foo3 : Foo1 { + override fun foo() +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.txt new file mode 100644 index 00000000000..ecc086ea925 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.txt @@ -0,0 +1,223 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(SUPER_TYPES)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(TYPES)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(CONTRACTS)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.kt new file mode 100644 index 00000000000..da489b83d7a --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.kt @@ -0,0 +1,16 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class Usage : Foo2 { + override fun foo() {} + override val str = "" +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.txt new file mode 100644 index 00000000000..dc8b537cdfa --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.txt @@ -0,0 +1,462 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] get(): + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] get(): + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=Usage] get(): + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class Usage : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=Usage] get(): + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(SUPER_TYPES)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=Usage] get(): + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class Usage : R|Foo2| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(TYPES)] val str: = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] [ContainingClassKey=Usage] get(): + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] val str: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] get(): + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val str: = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=Usage] get(): + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val str: = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=Usage] get(): + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(CONTRACTS)] val str: = String() + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Usage] get(): + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val str: R|kotlin/String| = String() + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Usage] get(): R|kotlin/String| + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val str: R|kotlin/String| = String() + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Usage] get(): R|kotlin/String| + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(STATUS)] class Usage : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=Usage] constructor(): R|Usage| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| = String() + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] get(): R|kotlin/String| + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class Usage : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] constructor(): R|Usage| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + public open override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| = String() + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Usage] get(): R|kotlin/String| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.kt new file mode 100644 index 00000000000..5278552c7bf --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.kt @@ -0,0 +1,38 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + val st: String = 1 + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.txt new file mode 100644 index 00000000000..c6b715bd107 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.txt @@ -0,0 +1,1038 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] val st: String = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] val st: String = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val st: String = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=OuterClass] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(COMPANION_GENERATION)] val st: String = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=OuterClass] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(SUPER_TYPES)] val st: String = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=OuterClass] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(TYPES)] val st: R|kotlin/String| = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] val st: R|kotlin/String| = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val st: R|kotlin/String| = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val st: R|kotlin/String| = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(CONTRACTS)] val st: R|kotlin/String| = IntegerLiteral(1) + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val st: R|kotlin/String| = Int(1) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val st: R|kotlin/String| = Int(1) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(BODY_RESOLVE)] val st: R|kotlin/String| = Int(1) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] val st: R|kotlin/String| = Int(1) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.kt new file mode 100644 index 00000000000..2c10da7d968 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.kt @@ -0,0 +1,38 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + override val isBoo = true + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.txt new file mode 100644 index 00000000000..10551a34479 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.txt @@ -0,0 +1,1038 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(SUPER_TYPES)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(TYPES)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(CONTRACTS)] val isBoo: = Boolean(true) + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(true) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=NestedClass] get(): R|kotlin/Boolean| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val isBoo: R|kotlin/Boolean| = Boolean(true) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=NestedClass] get(): R|kotlin/Boolean| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(true) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] get(): R|kotlin/Boolean| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + public open override [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(true) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] get(): R|kotlin/Boolean| + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.kt new file mode 100644 index 00000000000..386c9bacaab --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.kt @@ -0,0 +1,39 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + + private val myProp = 1 + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.txt new file mode 100644 index 00000000000..aac00566b40 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.txt @@ -0,0 +1,1038 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(RAW_FIR)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(RAW_FIR)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(COMPANION_GENERATION)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(SUPER_TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(SUPER_TYPES)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(TYPES)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final? [ResolvedTo(TYPES)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(TYPES)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(STATUS)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val myProp: = LAZY_EXPRESSION + private [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(CONTRACTS)] val myProp: = IntegerLiteral(1) + private [ResolvedTo(CONTRACTS)] [ContainingClassKey=SimpleNestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val myProp: R|kotlin/Int| = Int(1) + private [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] get(): R|kotlin/Int| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val myProp: R|kotlin/Int| = Int(1) + private [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=SimpleNestedClass] get(): R|kotlin/Int| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public final [ResolvedTo(STATUS)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(STATUS)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public final [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + private final [ResolvedTo(BODY_RESOLVE)] val myProp: R|kotlin/Int| = Int(1) + private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] get(): R|kotlin/Int| + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass3.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + private final [ResolvedTo(BODY_RESOLVE)] val myProp: R|kotlin/Int| = Int(1) + private [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] get(): R|kotlin/Int| + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.kt new file mode 100644 index 00000000000..90b0ee74fb4 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.kt @@ -0,0 +1,40 @@ +interface Foo1 { + fun foo() + fun bar() + val str: String + + class ClassFromInterface +} + +interface Foo2 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +interface Foo3 : Foo1 { + fun foo(i: Int) + fun bar(s: String) + val isBoo: Boolean +} + +abstract class OuterClass : Foo1 { + class SimpleNestedClass { + fun foo() { + + } + } + + abstract class NestedClass : Foo2 { + override fun foo() {} + val st = "" + } + + abstract class AnotherNestedClass : NestedClass() { + override fun bar(s: String) { + + } + + override val isBoo = false + } +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.txt new file mode 100644 index 00000000000..cf4dd56f7dc --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.txt @@ -0,0 +1,1080 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(RAW_FIR)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(RAW_FIR)] class OuterClass : Foo1 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(RAW_FIR)] class NestedClass : Foo2 { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(RAW_FIR)] class AnotherNestedClass : NestedClass { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(COMPANION_GENERATION)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(SUPER_TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(SUPER_TYPES)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : R|kotlin/Any| { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : R|Foo1| { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): Boolean + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public? abstract [ResolvedTo(TYPES)] class OuterClass : R|Foo1| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? abstract [ResolvedTo(SUPER_TYPES)] class NestedClass : R|Foo2| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? [ResolvedTo(RAW_FIR)] val st: = LAZY_EXPRESSION + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedClass] get(): + + } + + public? abstract [ResolvedTo(TYPES)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public? [ResolvedTo(TYPES)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public? open? override [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override [ResolvedTo(TYPES)] val isBoo: = LAZY_EXPRESSION + public? [ResolvedTo(TYPES)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(STATUS)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val isBoo: = LAZY_EXPRESSION + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(CONTRACTS)] val isBoo: = Boolean(false) + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=AnotherNestedClass] get(): + + } + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(false) + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] get(): R|kotlin/Boolean| + + } + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val isBoo: R|kotlin/Boolean| = Boolean(false) + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=AnotherNestedClass] get(): R|kotlin/Boolean| + + } + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public? final? [ResolvedTo(RAW_FIR)] class ClassFromInterface : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + LAZY_super + } + + } + + } + public abstract [ResolvedTo(STATUS)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] fun bar([ResolvedTo(RAW_FIR)] s: String): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val isBoo: Boolean + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): Boolean + + } + public abstract [ResolvedTo(STATUS)] class OuterClass : R|Foo1| { + public [ResolvedTo(STATUS)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + LAZY_super<> + } + + public? final? [ResolvedTo(RAW_FIR)] class SimpleNestedClass : R|kotlin/Any| { + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + LAZY_super + } + + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public abstract [ResolvedTo(STATUS)] class NestedClass : R|Foo2| { + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + LAZY_super<> + } + + public open override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public final [ResolvedTo(STATUS)] val st: = LAZY_EXPRESSION + public [ResolvedTo(STATUS)] [ContainingClassKey=NestedClass] get(): + + } + + public abstract [ResolvedTo(STATUS)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(STATUS)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + LAZY_super + } + + public open override [ResolvedTo(STATUS)] fun bar([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK } + + public open override [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(false) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] get(): R|kotlin/Boolean| + + } + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] hierarchyWithOverrideAndNestedClass4.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : R|kotlin/Any| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + public final [ResolvedTo(BODY_RESOLVE)] class ClassFromInterface : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=ClassFromInterface] constructor(): R|Foo1.ClassFromInterface| { + super() + } + + } + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : R|Foo1| { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/Boolean| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] class OuterClass : R|Foo1| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=OuterClass] constructor(): R|OuterClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] class SimpleNestedClass : R|kotlin/Any| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=SimpleNestedClass] constructor(): R|OuterClass.SimpleNestedClass| { + super() + } + + public final [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class NestedClass : R|Foo2| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] constructor(): R|OuterClass.NestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| { + } + + public final [ResolvedTo(BODY_RESOLVE)] val st: R|kotlin/String| = String() + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=NestedClass] get(): R|kotlin/String| + + } + + public abstract [ResolvedTo(BODY_RESOLVE)] class AnotherNestedClass : R|OuterClass.NestedClass| { + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] constructor(): R|OuterClass.AnotherNestedClass| { + super() + } + + public open override [ResolvedTo(BODY_RESOLVE)] fun bar([ResolvedTo(BODY_RESOLVE)] s: R|kotlin/String|): R|kotlin/Unit| { + } + + public open override [ResolvedTo(BODY_RESOLVE)] val isBoo: R|kotlin/Boolean| = Boolean(false) + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=AnotherNestedClass] get(): R|kotlin/Boolean| + + } + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.kt new file mode 100644 index 00000000000..0550e53e496 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.kt @@ -0,0 +1,14 @@ +interface Foo1 : Foo2 { + override fun foo() + override val str: String +} + +interface Foo2 : Foo3 { + override fun foo() + override val str: String +} + +interface Foo3 : Foo1 { + override fun foo() + override val str: String +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.txt new file mode 100644 index 00000000000..2ef204909cf --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.txt @@ -0,0 +1,349 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val str: String + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(COMPANION_GENERATION)] val str: String + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(SUPER_TYPES)] val str: String + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(TYPES)] val str: R|kotlin/String| + public? [ResolvedTo(TYPES)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val str: R|kotlin/String| + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val str: R|kotlin/String| + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(CONTRACTS)] val str: R|kotlin/String| + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val str: R|kotlin/String| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/String| + + } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.kt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.kt new file mode 100644 index 00000000000..3731333ba14 --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.kt @@ -0,0 +1,14 @@ +interface Foo1 : Foo2 { + fun foo() + val str: String +} + +interface Foo2 : Foo3 { + override fun foo() + override val str: String +} + +interface Foo3 : Foo1 { + override fun foo() + override val str: String +} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.txt b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.txt new file mode 100644 index 00000000000..38b084a183d --- /dev/null +++ b/analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.txt @@ -0,0 +1,349 @@ +RAW_FIR: +FILE: [ResolvedTo(RAW_FIR)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +IMPORTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +COMPILER_REQUIRED_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] val str: String + public? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +COMPANION_GENERATION: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(RAW_FIR)] interface Foo1 : Foo2 { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(COMPANION_GENERATION)] val str: String + public? [ResolvedTo(COMPANION_GENERATION)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo2 : Foo3 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(RAW_FIR)] interface Foo3 : Foo1 { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +SUPER_TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(SUPER_TYPES)] val str: String + public? [ResolvedTo(SUPER_TYPES)] [ContainingClassKey=Foo1] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +TYPES: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public? final? [ResolvedTo(TYPES)] interface Foo1 : /Foo2> { + public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? final? [ResolvedTo(TYPES)] val str: R|kotlin/String| + public? [ResolvedTo(TYPES)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +STATUS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(STATUS)] val str: R|kotlin/String| + public [ResolvedTo(STATUS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +EXPECT_ACTUAL_MATCHING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(EXPECT_ACTUAL_MATCHING)] val str: R|kotlin/String| + public [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +ARGUMENTS_OF_ANNOTATIONS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] val str: R|kotlin/String| + public [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +CONTRACTS: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(CONTRACTS)] val str: R|kotlin/String| + public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +IMPLICIT_TYPES_BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +ANNOTATIONS_ARGUMENTS_MAPPING: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] val str: R|kotlin/String| + public [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +BODY_RESOLVE: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(RAW_FIR)] annotations container + public abstract [ResolvedTo(STATUS)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo2 : /Foo3> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo2] get(): String + + } + public? final? [ResolvedTo(SUPER_TYPES)] interface Foo3 : /Foo1> { + public? open? override [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| + + public? open? override [ResolvedTo(RAW_FIR)] val str: String + public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Foo3] get(): String + + } + +FILE RAW TO BODY: +FILE: [ResolvedTo(IMPORTS)] simpleLoopInOverride2.kt + [ResolvedTo(BODY_RESOLVE)] annotations container + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo1 : /Foo2> { + public abstract [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo1] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo2 : /Foo3> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo2] get(): R|kotlin/String| + + } + public abstract [ResolvedTo(BODY_RESOLVE)] interface Foo3 : /Foo1> { + public abstract override [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| + + public abstract override [ResolvedTo(BODY_RESOLVE)] val str: R|kotlin/String| + public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=Foo3] get(): R|kotlin/String| + + } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java index ac294ff10f2..e6d7247ec91 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirOutOfContentRootLazyDeclarationResolveTestGenerated.java @@ -459,6 +459,36 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/functionInValueClass.kt"); } + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass4.kt") + public void testHierarchyWithOverrideAndNestedClass4() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.kt"); + } + @Test @TestMetadata("nestedClass.kt") public void testNestedClass() throws Exception { @@ -470,6 +500,18 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst public void testNestedClassWithPropertiesOverrides() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.kt"); } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.kt"); + } } @Nested @@ -520,6 +562,42 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst public void testFunctionWithTypeParameters() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/functionWithTypeParameters.kt"); } + + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.kt"); + } } @Nested @@ -531,6 +609,36 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/properties"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass4.kt") + public void testHierarchyWithOverrideAndNestedClass4() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.kt"); + } + @Test @TestMetadata("propertyGetterWithExplicitType.kt") public void testPropertyGetterWithExplicitType() throws Exception { @@ -560,6 +668,18 @@ public class FirOutOfContentRootLazyDeclarationResolveTestGenerated extends Abst public void testPropertyWithTypeParameters() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/propertyWithTypeParameters.kt"); } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.kt"); + } } @Nested diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java index d15e6608bac..6902a88b590 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirSourceLazyDeclarationResolveTestGenerated.java @@ -459,6 +459,36 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/functionInValueClass.kt"); } + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass4.kt") + public void testHierarchyWithOverrideAndNestedClass4() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/hierarchyWithOverrideAndNestedClass4.kt"); + } + @Test @TestMetadata("nestedClass.kt") public void testNestedClass() throws Exception { @@ -470,6 +500,18 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou public void testNestedClassWithPropertiesOverrides() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/nestedClassWithPropertiesOverrides.kt"); } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/classes/simpleLoopInOverride2.kt"); + } } @Nested @@ -520,6 +562,42 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou public void testFunctionWithTypeParameters() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/functionWithTypeParameters.kt"); } + + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/functions/simpleLoopInOverride2.kt"); + } } @Nested @@ -531,6 +609,36 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("analysis/low-level-api-fir/testdata/lazyResolve/properties"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("hierarchyWithOverride.kt") + public void testHierarchyWithOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverride.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass.kt") + public void testHierarchyWithOverrideAndNestedClass() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass2.kt") + public void testHierarchyWithOverrideAndNestedClass2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass2.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass3.kt") + public void testHierarchyWithOverrideAndNestedClass3() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass3.kt"); + } + + @Test + @TestMetadata("hierarchyWithOverrideAndNestedClass4.kt") + public void testHierarchyWithOverrideAndNestedClass4() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/hierarchyWithOverrideAndNestedClass4.kt"); + } + @Test @TestMetadata("propertyGetterWithExplicitType.kt") public void testPropertyGetterWithExplicitType() throws Exception { @@ -560,6 +668,18 @@ public class FirSourceLazyDeclarationResolveTestGenerated extends AbstractFirSou public void testPropertyWithTypeParameters() throws Exception { runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/propertyWithTypeParameters.kt"); } + + @Test + @TestMetadata("simpleLoopInOverride.kt") + public void testSimpleLoopInOverride() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride.kt"); + } + + @Test + @TestMetadata("simpleLoopInOverride2.kt") + public void testSimpleLoopInOverride2() throws Exception { + runTest("analysis/low-level-api-fir/testdata/lazyResolve/properties/simpleLoopInOverride2.kt"); + } } @Nested