Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolve/objectInnerClass.fir.txt
T
Nikolay Lunyak f9c6af4d2a [FIR] Properly assign <local> packages to symbols
This prevents `FirConflictsExpressionChecker.kt`
from missing conflicting local functions. It used
to due to inconsistencies in assigning `<local>`,
and this commit makes it a bit more
straightforward.

The change in KtClassTypeQualifierRenderer
prevents `FirOverrideImplementTest.testLocalClass`
from failing in `intellij`. It didn't fail for
callables, because `KtCallableSignatureRenderer`
doesn't try to render packages.

^KT-59186 Fixed
2023-08-18 13:31:04 +00:00

200 lines
7.6 KiB
Plaintext
Vendored

FILE: objectInnerClass.kt
public final val case1: R|A| = object : R|A| {
private constructor(): R|<anonymous>| {
super<R|kotlin/Any|>()
}
local final inner class Child : R|<local>/<anonymous>.Base| {
public <anonymous>.constructor(property: R|B|): R|<local>/<anonymous>.Child| {
this@R|/<anonymous>|.super<R|<local>/<anonymous>.Base|>(R|<local>/property|)
}
public final fun R|<local>/<anonymous>.Base|.zoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|<local>/zoo|.R|<local>/property|
}
public final fun foo(): R|kotlin/Unit| {
this@R|<local>/<anonymous>.Child|.R|<local>/baseFun|()
lval x: R|B| = this@R|<local>/<anonymous>.Child|.R|<local>/property|
(this@R|<local>/<anonymous>.Child|, this@R|<local>/<anonymous>.Child|).R|<local>/zoo|()
(this@R|/<anonymous>|, this@R|<local>/<anonymous>.Child|).R|/<anonymous>.hoo|()
}
}
public final fun R|<local>/<anonymous>.Child|.voo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/<anonymous>.voo|.R|<local>/property|
}
public final fun R|<local>/<anonymous>.Base|.hoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/<anonymous>.hoo|.R|<local>/property|
}
local open inner class Base : R|kotlin/Any| {
public <anonymous>.constructor(property: R|B|): R|<local>/<anonymous>.Base| {
super<R|kotlin/Any|>()
}
public final val property: R|B| = R|<local>/property|
public get(): R|B|
public final fun baseFun(): R|kotlin/Unit| {
}
}
public final fun caseForBase(): R|kotlin/Unit| {
lval base: R|<local>/<anonymous>.Base| = this@R|/<anonymous>|.R|<local>/<anonymous>.Base.Base|(R|/B.B|())
R|<local>/base|.R|<local>/baseFun|()
R|<local>/base|.R|<local>/property|
(this@R|/<anonymous>|, R|<local>/base|).R|/<anonymous>.hoo|()
}
public final fun caseForChild(): R|kotlin/Unit| {
lval child: R|<local>/<anonymous>.Child| = this@R|/<anonymous>|.R|<local>/<anonymous>.Child.Child|(R|/B.B|())
R|<local>/child|.R|<local>/baseFun|()
R|<local>/child|.R|<local>/property|
R|<local>/child|.R|<local>/foo|()
(this@R|/<anonymous>|, R|<local>/child|).R|/<anonymous>.hoo|()
(this@R|/<anonymous>|, R|<local>/child|).R|/<anonymous>.voo|()
}
}
public get(): R|A|
public final class Case2 : R|kotlin/Any| {
public constructor(): R|Case2| {
super<R|kotlin/Any|>()
}
public final val x: R|Case2.Base| = object : R|Case2.Base| {
private constructor(): R|<anonymous>| {
this@R|/Case2|.super<R|Case2.Base|>(R|/B.B|())
}
public final fun R|Case2.Base|.zoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/<anonymous>.zoo|.R|/Case2.Base.property|
}
public final fun foo(): R|kotlin/Unit| {
this@R|/<anonymous>|.R|/Case2.Base.baseFun|()
lval x: R|B| = this@R|/<anonymous>|.R|/Case2.Base.property|
(this@R|/<anonymous>|, this@R|/<anonymous>|).R|/<anonymous>.zoo|()
(this@R|/Case2|, this@R|/<anonymous>|).R|/Case2.hoo|()
}
}
public get(): R|Case2.Base|
public final fun R|Case2.Base|.hoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/Case2.hoo|.R|/Case2.Base.property|
}
public open inner class Base : R|kotlin/Any| {
public Case2.constructor(property: R|B|): R|Case2.Base| {
super<R|kotlin/Any|>()
}
public final val property: R|B| = R|<local>/property|
public get(): R|B|
public final fun baseFun(): R|kotlin/Unit| {
}
}
public final fun caseForBase(): R|kotlin/Unit| {
lval base: R|Case2.Base| = this@R|/Case2|.R|/Case2.Base.Base|(R|/B.B|())
R|<local>/base|.R|/Case2.Base.baseFun|()
R|<local>/base|.R|/Case2.Base.property|
(this@R|/Case2|, R|<local>/base|).R|/Case2.hoo|()
}
public final fun caseForChild(): R|kotlin/Unit| {
lval child: R|Case2.Base| = this@R|/Case2|.R|/Case2.x|
R|<local>/child|.R|/Case2.Base.baseFun|()
R|<local>/child|.R|/Case2.Base.property|
(this@R|/Case2|, R|<local>/child|).R|/Case2.hoo|()
}
}
public final class Case3 : R|kotlin/Any| {
public constructor(): R|Case3| {
super<R|kotlin/Any|>()
}
public final val x: R|A| = object : R|A| {
private constructor(): R|<anonymous>| {
super<R|kotlin/Any|>()
}
local final inner class Child : R|<local>/<anonymous>.Base| {
public <anonymous>.constructor(property: R|B|): R|<local>/<anonymous>.Child| {
this@R|/<anonymous>|.super<R|<local>/<anonymous>.Base|>(R|<local>/property|)
}
public final fun R|<local>/<anonymous>.Base|.zoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|<local>/zoo|.R|<local>/property|
}
public final fun foo(): R|kotlin/Unit| {
this@R|<local>/<anonymous>.Child|.R|<local>/baseFun|()
lval x: R|B| = this@R|<local>/<anonymous>.Child|.R|<local>/property|
(this@R|<local>/<anonymous>.Child|, this@R|<local>/<anonymous>.Child|).R|<local>/zoo|()
(this@R|/<anonymous>|, this@R|<local>/<anonymous>.Child|).R|/<anonymous>.hoo|()
}
}
public final fun R|<local>/<anonymous>.Child|.voo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/<anonymous>.voo|.R|<local>/property|
}
public final fun R|<local>/<anonymous>.Base|.hoo(): R|kotlin/Unit| {
lval x: R|B| = this@R|/<anonymous>.hoo|.R|<local>/property|
}
local open inner class Base : R|kotlin/Any| {
public <anonymous>.constructor(property: R|B|): R|<local>/<anonymous>.Base| {
super<R|kotlin/Any|>()
}
public final val property: R|B| = R|<local>/property|
public get(): R|B|
public final fun baseFun(): R|kotlin/Unit| {
}
}
public final fun caseForBase(): R|kotlin/Unit| {
lval base: R|<local>/<anonymous>.Base| = this@R|/<anonymous>|.R|<local>/<anonymous>.Base.Base|(R|/B.B|())
R|<local>/base|.R|<local>/baseFun|()
R|<local>/base|.R|<local>/property|
(this@R|/<anonymous>|, R|<local>/base|).R|/<anonymous>.hoo|()
}
public final fun caseForChild(): R|kotlin/Unit| {
lval child: R|<local>/<anonymous>.Child| = this@R|/<anonymous>|.R|<local>/<anonymous>.Child.Child|(R|/B.B|())
R|<local>/child|.R|<local>/baseFun|()
R|<local>/child|.R|<local>/property|
R|<local>/child|.R|<local>/foo|()
(this@R|/<anonymous>|, R|<local>/child|).R|/<anonymous>.hoo|()
(this@R|/<anonymous>|, R|<local>/child|).R|/<anonymous>.voo|()
}
}
public get(): R|A|
}
public abstract interface A : R|kotlin/Any| {
}
public final class B : R|kotlin/Any| {
public constructor(): R|B| {
super<R|kotlin/Any|>()
}
}