[FIR] resolve delegate field return type in correct scope

We should resolve it in the same way as delegate constructor call
to avoid access to nested class scopes

^KT-63522 Fixed
^KT-63042
This commit is contained in:
Dmitrii Gridin
2023-11-16 17:51:16 +01:00
committed by Space Team
parent ab6b3a6047
commit 0b253dc815
31 changed files with 362 additions and 231 deletions
@@ -114,7 +114,7 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(TYPES)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(TYPES)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public? final? [ResolvedTo(RAW_FIR)] [IsFromPrimaryConstructor=true] val prop: second.Base = R|<local>/prop|
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] get(): second.Base
@@ -135,12 +135,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(STATUS)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(STATUS)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -156,12 +156,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -177,12 +177,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(CONTRACTS)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(CONTRACTS)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -198,12 +198,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -219,12 +219,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|second/MyClass.Base| = LAZY_EXPRESSION
private final [ResolvedTo(ANNOTATION_ARGUMENTS)] field $$delegate_0: R|second/Base| = LAZY_EXPRESSION
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -240,12 +240,12 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClash.kt
LAZY_super<<implicit>>
}
private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|second/MyClass.Base| = R|<local>/prop|
private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|second/Base| = R|<local>/prop|
public final [ResolvedTo(STATUS)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] get(): R|second/Base|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
@@ -262,7 +262,7 @@ FILE: [ResolvedTo(BODY_RESOLVE)] delegatedFieldNestedNameClash.kt
super<R|kotlin/Any|>()
}
private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|second/MyClass.Base| = R|<local>/prop|
private final [ResolvedTo(BODY_RESOLVE)] field $$delegate_0: R|second/Base| = R|<local>/prop|
public final [ResolvedTo(BODY_RESOLVE)] [IsFromPrimaryConstructor=true] val prop: R|second/Base| = R|<local>/prop|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] get(): R|second/Base|