Files
kotlin-fork/compiler/fir/analysis-tests/testData/resolveWithStdlib/reinitializations/constructorVarWrite.txt
T
Mikhail Glukhikh 7b4f781ea8 [FIR] Split primary constructor parameter scope into two different
In init block or property initializers,
for `val x` declared in primary constructor,
`x` reference is now resolved to property, not to parameter.
So we need two different scopes for primary constructor,
one for 'pure' parameters and another one for all parameters,
including val/var ones.

#KT-42844 Fixed
2020-10-30 18:44:55 +03:00

33 lines
1.0 KiB
Plaintext
Vendored

FILE: constructorVarWrite.kt
public final class Some : R|kotlin/Any| {
public constructor(foo: R|kotlin/Int|): R|Some| {
super<R|kotlin/Any|>()
}
public final var foo: R|kotlin/Int| = R|<local>/foo|
public get(): R|kotlin/Int|
public set(value: R|kotlin/Int|): R|kotlin/Unit|
init {
when () {
CMP(<, this@R|/Some|.R|/Some.foo|.R|kotlin/Int.compareTo|(Int(0))) -> {
this@R|/Some|.R|/Some.foo| = Int(0)
}
}
}
public final val y: R|kotlin/Int| = this@R|/Some|.R|kotlin/run|<R|Some|, R|kotlin/Int|>(<L> = run@fun R|Some|.<anonymous>(): R|kotlin/Int| <kind=EXACTLY_ONCE> {
this@R|special/anonymous|.R|/Some.foo| = Int(1)
^ this@R|special/anonymous|.R|/Some.foo|
}
)
public get(): R|kotlin/Int|
public constructor(): R|Some| {
this<R|Some|>(Int(-1))
this@R|/Some|.R|/Some.foo| = Int(2)
}
}