Files
kotlin-fork/analysis/low-level-api-fir/testData/lazyResolve/delegatedFieldNestedNameClashScript.txt
T
Dmitrii Gridin e3d91741ca [LL FIR] resolve class before delegate field
This is required to have stable resolution order to avoid concurrent
modifications and correct resolution context.
E.g., this commit fixes the resolution behavior of delegate field for
ANNOTATION_ARGUMENTS phase – now annotation argument resolves in the
correct scope

^KT-63042
2023-11-23 15:55:07 +00:00

352 lines
17 KiB
Plaintext
Vendored

RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : Base {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
private final [ResolvedTo(RAW_FIR)] field $$delegate_0: 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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : Base {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
private final [ResolvedTo(RAW_FIR)] field $$delegate_0: 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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : Base {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
private final [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] field $$delegate_0: 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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(COMPANION_GENERATION)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : Base {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
private final [ResolvedTo(COMPANION_GENERATION)] field $$delegate_0: 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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(SUPER_TYPES)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
private final [ResolvedTo(SUPER_TYPES)] field $$delegate_0: 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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
TYPES:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public? final? [ResolvedTo(SUPER_TYPES)] interface Base : R|kotlin/Any| {
public? final? [ResolvedTo(RAW_FIR)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(TYPES)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=MyClass] constructor([ResolvedTo(RAW_FIR)] [CorrespondingProperty=second/MyClass.prop] prop: second.Base): R|second/MyClass| {
LAZY_super<<implicit>>
}
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
public? final? [ResolvedTo(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
STATUS:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(STATUS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(CONTRACTS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] delegatedFieldNestedNameClashScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(STATUS)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(STATUS)] fun foo(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(STATUS)] [ContainingClassKey=MyClass] constructor([ResolvedTo(STATUS)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
LAZY_super<<implicit>>
}
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(RAW_FIR)] interface Base : R|kotlin/Any| {
}
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] delegatedFieldNestedNameClashScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-delegatedFieldNestedNameClashScript.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>|
public abstract [ResolvedTo(BODY_RESOLVE)] interface Base : R|kotlin/Any| {
public open [ResolvedTo(BODY_RESOLVE)] fun foo(): R|kotlin/Unit| {
}
}
public final [ResolvedTo(BODY_RESOLVE)] [DelegateFieldsMapKey={0=FirFieldSymbol second/MyClass.$$delegate_0}] class MyClass : R|second/Base| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=MyClass] constructor([ResolvedTo(BODY_RESOLVE)] [CorrespondingProperty=second/MyClass.prop] prop: R|second/Base|): R|second/MyClass| {
super<R|kotlin/Any|>()
}
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|
public abstract [ResolvedTo(BODY_RESOLVE)] interface Base : R|kotlin/Any| {
}
}