[LL FIR] make script initializers independent

Now we can resolve all script declarations independently

^KT-65344 Fixed
This commit is contained in:
Dmitrii Gridin
2024-02-05 15:57:24 +01:00
committed by Space Team
parent d59b8b3244
commit 58ad26ee5b
26 changed files with 535 additions and 362 deletions
@@ -3,7 +3,6 @@ with default settings:
[qualifier] one.A [qualifier] one.A
with DO_NOT_SHORTEN: with DO_NOT_SHORTEN:
with SHORTEN_IF_ALREADY_IMPORTED: with SHORTEN_IF_ALREADY_IMPORTED:
[qualifier] one.A
with SHORTEN_AND_IMPORT: with SHORTEN_AND_IMPORT:
[qualifier] one.A [qualifier] one.A
with SHORTEN_AND_STAR_IMPORT: with SHORTEN_AND_STAR_IMPORT:
@@ -334,9 +334,6 @@ fun FirElementWithResolveState.tryCollectDesignationWithFile(): FirDesignation?
return when (this) { return when (this) {
is FirSyntheticProperty, is FirSyntheticPropertyAccessor -> unexpectedElementError<FirElementWithResolveState>(this) is FirSyntheticProperty, is FirSyntheticPropertyAccessor -> unexpectedElementError<FirElementWithResolveState>(this)
is FirFileAnnotationsContainer, is FirDeclaration -> { is FirFileAnnotationsContainer, is FirDeclaration -> {
val scriptDesignation = (this as? FirDeclaration)?.scriptDesignation()
if (scriptDesignation != null) return scriptDesignation
val path = collectDesignationPath(this) ?: return null val path = collectDesignationPath(this) ?: return null
val firFile = path.lastOrNull()?.getContainingFile() ?: getContainingFile() ?: return null val firFile = path.lastOrNull()?.getContainingFile() ?: getContainingFile() ?: return null
FirDesignation(path = listOf(firFile) + path, target = this) FirDesignation(path = listOf(firFile) + path, target = this)
@@ -346,17 +343,6 @@ fun FirElementWithResolveState.tryCollectDesignationWithFile(): FirDesignation?
} }
} }
private fun FirDeclaration.scriptDesignation(): FirDesignation? {
return when {
this is FirAnonymousInitializer -> {
val firScriptSymbol = (containingDeclarationSymbol as? FirScriptSymbol) ?: return null
val firFile = firScriptSymbol.fir.getContainingFile() ?: return null
FirDesignation(path = listOf(firFile), target = firScriptSymbol.fir)
}
else -> null
}
}
internal fun patchDesignationPathIfNeeded(target: FirElementWithResolveState, targetPath: List<FirDeclaration>): List<FirDeclaration> { internal fun patchDesignationPathIfNeeded(target: FirElementWithResolveState, targetPath: List<FirDeclaration>): List<FirDeclaration> {
return patchDesignationPathForCopy(target, targetPath) ?: targetPath return patchDesignationPathForCopy(target, targetPath) ?: targetPath
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -302,12 +302,7 @@ internal fun getNonLocalContainingDeclaration(
when (parent) { when (parent) {
is KtScript -> propose(parent) is KtScript -> propose(parent)
is KtDestructuringDeclaration -> propose(parent) is KtDestructuringDeclaration -> propose(parent)
is KtScriptInitializer -> { is KtScriptInitializer -> propose(parent)
val blockExpression = parent.parent as? KtBlockExpression
if (blockExpression?.statements?.lastOrNull() == parent && predicate(parent)) {
propose(parent)
}
}
is KtClassInitializer -> { is KtClassInitializer -> {
val container = parent.containingDeclaration val container = parent.containingDeclaration
if (!container.isObjectLiteral() && if (!container.isObjectLiteral() &&
@@ -19,7 +19,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.util.findSourceNonLocalFi
import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic
import org.jetbrains.kotlin.fir.correspondingProperty import org.jetbrains.kotlin.fir.correspondingProperty
import org.jetbrains.kotlin.fir.declarations.FirDanglingModifierList import org.jetbrains.kotlin.fir.declarations.FirDanglingModifierList
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor import org.jetbrains.kotlin.fir.declarations.impl.FirPrimaryConstructor
@@ -142,15 +141,7 @@ internal class FileStructure private constructor(
override fun visitDeclaration(dcl: KtDeclaration) { override fun visitDeclaration(dcl: KtDeclaration) {
val structureElement = getStructureElementFor(dcl) val structureElement = getStructureElementFor(dcl)
structureElements += structureElement
// workaround to not duplicate diagnostics in the case of FirAnonymousInitializer in the last position
// will be dropped in the context of KT-65344
if (dcl !is KtScriptInitializer ||
structureElement is DeclarationBaseStructureElement<*> &&
structureElement.declaration.origin == FirDeclarationOrigin.ScriptCustomization.ResultProperty
) {
structureElements += structureElement
}
// Go down only in the case of container declaration // Go down only in the case of container declaration
val canHaveInnerStructure = dcl is KtClassOrObject || dcl is KtScript val canHaveInnerStructure = dcl is KtClassOrObject || dcl is KtScript
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2024 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.FileStructure
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.ScriptDiagnosticRetriever import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.ScriptDiagnosticRetriever
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.SingleNonLocalDeclarationDiagnosticRetriever import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.SingleNonLocalDeclarationDiagnosticRetriever
import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.isImplicitConstructor import org.jetbrains.kotlin.analysis.low.level.api.fir.diagnostics.isImplicitConstructor
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isElementWhichShouldBeResolvedAsPartOfScript
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.correspondingProperty import org.jetbrains.kotlin.fir.correspondingProperty
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -141,11 +140,6 @@ internal class RootScriptStructureElement(
internal fun <T, R> visitScriptDependentElements(script: FirScript, visitor: FirVisitor<T, R>, data: R) { internal fun <T, R> visitScriptDependentElements(script: FirScript, visitor: FirVisitor<T, R>, data: R) {
script.annotations.forEach { it.accept(visitor, data) } script.annotations.forEach { it.accept(visitor, data) }
script.contextReceivers.forEach { it.accept(visitor, data) } script.contextReceivers.forEach { it.accept(visitor, data) }
script.declarations.forEach {
if (it.isElementWhichShouldBeResolvedAsPartOfScript) {
it.accept(visitor, data)
}
}
} }
internal class ClassDeclarationStructureElement( internal class ClassDeclarationStructureElement(
@@ -867,13 +867,4 @@ private abstract class FirLazyBodiesCalculatorTransformer : FirTransformer<Persi
return codeFragment return codeFragment
} }
override fun transformScript(script: FirScript, data: PersistentList<FirDeclaration>): FirScript {
for (declaration in script.declarations) {
if (declaration !is FirAnonymousInitializer) continue
declaration.accept(this, data)
}
return script
}
} }
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve
import org.jetbrains.kotlin.analysis.low.level.api.fir.util.isElementWhichShouldBeResolvedAsPartOfScript
import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirElementWithResolveState import org.jetbrains.kotlin.fir.FirElementWithResolveState
import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.*
@@ -31,14 +30,7 @@ internal object LLFirPhaseUpdater {
} }
is FirAnonymousInitializer -> target.body?.accept(PhaseUpdatingTransformer, newPhase) is FirAnonymousInitializer -> target.body?.accept(PhaseUpdatingTransformer, newPhase)
is FirScript -> { is FirScript -> target.parameters.forEach { it.accept(PhaseUpdatingTransformer, newPhase) }
target.parameters.forEach { it.accept(PhaseUpdatingTransformer, newPhase) }
for (declaration in target.declarations) {
if (!declaration.isElementWhichShouldBeResolvedAsPartOfScript) continue
declaration.accept(PhaseUpdatingTransformer, newPhase)
}
}
is FirCodeFragment -> target.block.accept(PhaseUpdatingTransformer, newPhase) is FirCodeFragment -> target.block.accept(PhaseUpdatingTransformer, newPhase)
} }
} }
@@ -44,7 +44,6 @@ import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase
import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.ConeKotlinType
import org.jetbrains.kotlin.fir.types.isResolved import org.jetbrains.kotlin.fir.types.isResolved
import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry import org.jetbrains.kotlin.fir.utils.exceptions.withFirEntry
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.transformSingle import org.jetbrains.kotlin.fir.visitors.transformSingle
import org.jetbrains.kotlin.psi.KtCodeFragment import org.jetbrains.kotlin.psi.KtCodeFragment
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
@@ -72,7 +71,6 @@ internal object LLFirBodyLazyResolver : LLFirLazyResolver(FirResolvePhase.BODY_R
checkBodyIsResolved(target) checkBodyIsResolved(target)
} }
is FirFunction -> checkBodyIsResolved(target) is FirFunction -> checkBodyIsResolved(target)
is FirScript -> checkStatementsAreResolved(target)
} }
} }
} }
@@ -133,6 +131,7 @@ private class LLFirBodyTargetResolver(
return true return true
} }
is FirFile -> { is FirFile -> {
if (target.resolvePhase >= resolverPhase) return true if (target.resolvePhase >= resolverPhase) return true
@@ -146,12 +145,19 @@ private class LLFirBodyTargetResolver(
return true return true
} }
is FirScript -> { is FirScript -> {
if (target.resolvePhase >= resolverPhase) return true if (target.resolvePhase >= resolverPhase) return true
// resolve properties so they are available for CFG building in resolveScript // resolve properties so they are available for CFG building in resolveScript
resolveMembersForControlFlowGraph(target) resolveMembersForControlFlowGraph(target)
return false performCustomResolveUnderLock(target) {
resolve(target, BodyStateKeepers.SCRIPT)
}
return true
} }
is FirCodeFragment -> { is FirCodeFragment -> {
resolveCodeFragmentContext(target) resolveCodeFragmentContext(target)
performCustomResolveUnderLock(target) { performCustomResolveUnderLock(target) {
@@ -244,7 +250,7 @@ private class LLFirBodyTargetResolver(
private fun resolveMembersForControlFlowGraph(target: FirScript) { private fun resolveMembersForControlFlowGraph(target: FirScript) {
withScript(target) { withScript(target) {
for (member in target.declarations) { for (member in target.declarations) {
if (member is FirControlFlowGraphOwner && member.isUsedInControlFlowGraphBuilderForScript && member !is FirAnonymousInitializer) { if (member is FirControlFlowGraphOwner && member.isUsedInControlFlowGraphBuilderForScript) {
member.lazyResolveToPhase(resolverPhase.previous) member.lazyResolveToPhase(resolverPhase.previous)
performResolve(member) performResolve(member)
} }
@@ -293,14 +299,13 @@ private class LLFirBodyTargetResolver(
if (target is FirCallableDeclaration && target.isCopyCreatedInScope) return if (target is FirCallableDeclaration && target.isCopyCreatedInScope) return
when (target) { when (target) {
is FirFile, is FirRegularClass, is FirCodeFragment -> error("Should have been resolved in ${::doResolveWithoutLock.name}") is FirFile, is FirScript, is FirRegularClass, is FirCodeFragment -> error("Should have been resolved in ${::doResolveWithoutLock.name}")
is FirConstructor -> resolve(target, BodyStateKeepers.CONSTRUCTOR) is FirConstructor -> resolve(target, BodyStateKeepers.CONSTRUCTOR)
is FirFunction -> resolve(target, BodyStateKeepers.FUNCTION) is FirFunction -> resolve(target, BodyStateKeepers.FUNCTION)
is FirProperty -> resolve(target, BodyStateKeepers.PROPERTY) is FirProperty -> resolve(target, BodyStateKeepers.PROPERTY)
is FirField -> resolve(target, BodyStateKeepers.FIELD) is FirField -> resolve(target, BodyStateKeepers.FIELD)
is FirVariable -> resolve(target, BodyStateKeepers.VARIABLE) is FirVariable -> resolve(target, BodyStateKeepers.VARIABLE)
is FirAnonymousInitializer -> resolve(target, BodyStateKeepers.ANONYMOUS_INITIALIZER) is FirAnonymousInitializer -> resolve(target, BodyStateKeepers.ANONYMOUS_INITIALIZER)
is FirScript -> resolve(target, BodyStateKeepers.SCRIPT)
is FirDanglingModifierList, is FirDanglingModifierList,
is FirFileAnnotationsContainer, is FirFileAnnotationsContainer,
is FirTypeAlias, is FirTypeAlias,
@@ -327,29 +332,13 @@ private class LLFirBodyTargetResolver(
private fun resolveScript(script: FirScript) { private fun resolveScript(script: FirScript) {
transformer.declarationsTransformer.withScript(script) { transformer.declarationsTransformer.withScript(script) {
script.parameters.forEach { it.transformSingle(transformer, ResolutionMode.ContextIndependent) } script.parameters.forEach { it.transformSingle(transformer, ResolutionMode.ContextIndependent) }
script.transformDeclarations(
transformer = object : FirTransformer<Any?>() {
override fun <E : FirElement> transformElement(element: E, data: Any?): E {
if (element !is FirDeclaration || !element.isElementWhichShouldBeResolvedAsPartOfScript) return element
transformer.firResolveContextCollector?.addDeclarationContext(element, transformer.context)
return element.transformSingle(transformer, ResolutionMode.ContextIndependent)
}
},
data = null,
)
script script
} }
} }
} }
internal object BodyStateKeepers { internal object BodyStateKeepers {
val SCRIPT: StateKeeper<FirScript, FirDesignation> = stateKeeper { script, designation -> val SCRIPT: StateKeeper<FirScript, FirDesignation> = stateKeeper { _, _ ->
val oldDeclarations = script.declarations
if (oldDeclarations.none { it.isElementWhichShouldBeResolvedAsPartOfScript }) return@stateKeeper
entityList(oldDeclarations.mapNotNull { it as? FirAnonymousInitializer }, ANONYMOUS_INITIALIZER, designation)
add(FirScript::controlFlowGraphReference, FirScript::replaceControlFlowGraphReference) add(FirScript::controlFlowGraphReference, FirScript::replaceControlFlowGraphReference)
} }
@@ -61,7 +61,7 @@ internal fun KtDeclaration.findSourceNonLocalFirDeclaration(firFile: FirFile, pr
return@findSourceNonLocalFirDeclarationByProvider firScript?.takeIf { it.psi == declaration } return@findSourceNonLocalFirDeclarationByProvider firScript?.takeIf { it.psi == declaration }
} }
firScript?.declarations?.filterNot { it is FirAnonymousInitializer } firScript?.declarations
} else { } else {
firFile.declarations firFile.declarations
} }
@@ -204,7 +204,6 @@ val FirDeclaration.isGeneratedDeclaration
internal inline fun FirScript.forEachDeclaration(action: (FirDeclaration) -> Unit) { internal inline fun FirScript.forEachDeclaration(action: (FirDeclaration) -> Unit) {
for (statement in declarations) { for (statement in declarations) {
if (statement.isElementWhichShouldBeResolvedAsPartOfScript) continue
action(statement) action(statement)
} }
} }
@@ -228,8 +227,6 @@ internal inline fun FirDeclaration.forEachDeclaration(action: (FirDeclaration) -
} }
} }
internal val FirDeclaration.isElementWhichShouldBeResolvedAsPartOfScript: Boolean get() = this is FirAnonymousInitializer
/** /**
* Some "local" declarations are not local from the lazy resolution perspective. * Some "local" declarations are not local from the lazy resolution perspective.
*/ */
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.utils.isExpect import org.jetbrains.kotlin.fir.declarations.utils.isExpect
import org.jetbrains.kotlin.fir.expressions.FirAnnotation import org.jetbrains.kotlin.fir.expressions.FirAnnotation
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.expressions.FirResolvable import org.jetbrains.kotlin.fir.expressions.FirResolvable
import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess import org.jetbrains.kotlin.fir.expressions.UnresolvedExpressionTypeAccess
import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedArgumentList
@@ -107,19 +106,6 @@ internal fun checkBodyIsResolved(function: FirFunction) {
} }
} }
internal fun checkStatementsAreResolved(script: FirScript) {
fun checkExpression(expression: FirExpression) {
checkExpressionTypeIsResolved(expression.coneTypeOrNull, "script statement", script) {
withFirEntry("expression", expression)
}
}
for (declaration in script.declarations) {
if (declaration is FirAnonymousInitializer) {
declaration.body?.statements?.filterIsInstance<FirExpression>()?.forEach(::checkExpression)
}
}
}
internal fun checkExpectForActualIsResolved(memberDeclaration: FirMemberDeclaration) { internal fun checkExpectForActualIsResolved(memberDeclaration: FirMemberDeclaration) {
if (memberDeclaration.isExpect) return if (memberDeclaration.isExpect) return
@@ -14,21 +14,16 @@ Tower Data Context:
Element 6 Element 6
Scope: FirScriptDeclarationsScope Scope: FirScriptDeclarationsScope
Classifiers: Classifiers:
FirRegularClassSymbol public final class ScriptClass : R|kotlin/Any| FirRegularClassSymbol public final? class ScriptClass : R|kotlin/Any|
Functions Functions
FirNamedFunctionSymbol public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| FirNamedFunctionSymbol public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit|
FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int| FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int|
FirNamedFunctionSymbol public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int| FirNamedFunctionSymbol public? final? fun unusedScriptFunction(p: String): <implicit>
Properties: Properties:
FirPropertySymbol public final val $$result: R|kotlin/Unit| FirPropertySymbol public final val $$result: R|kotlin/Unit|
public get(): R|kotlin/Unit| public get(): R|kotlin/Unit|
Element 7 Element 7
Scope: FirLocalScope Scope: FirLocalScope
Classifiers:
FirRegularClassSymbol public final class ScriptClass : R|kotlin/Any|
Functions
FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int|
FirNamedFunctionSymbol public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int|
Properties: Properties:
FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>| FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>|
Element 8 Element 8
@@ -37,9 +32,9 @@ Tower Data Context:
SCRIPT: <script-statement.kts> SCRIPT: <script-statement.kts>
lval args: R|kotlin/Array<kotlin/String>| lval args: R|kotlin/Array<kotlin/String>|
public final class ScriptClass : R|kotlin/Any| public final? class ScriptClass : R|kotlin/Any|
public final fun scriptFunction(): R|kotlin/Int| public final fun scriptFunction(): R|kotlin/Int|
public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): <implicit>
init init
public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit|
public final val $$result: R|kotlin/Unit| public final val $$result: R|kotlin/Unit|
@@ -53,37 +48,30 @@ Tower Data Context:
FILE: [ResolvedTo(IMPORTS)] statement.kts FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-statement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class ScriptClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class ScriptClass : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|ScriptClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|ScriptClass| {
super<R|kotlin/Any|>() LAZY_super<R|kotlin/Any|>
} }
public final [ResolvedTo(BODY_RESOLVE)] val memberProperty: R|kotlin/Int| = Int(4) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
} }
public final [ResolvedTo(BODY_RESOLVE)] fun scriptFunction(): R|kotlin/Int| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun scriptFunction(): R|kotlin/Int| {
^scriptFunction Int(42) ^scriptFunction Int(42)
} }
public final [ResolvedTo(BODY_RESOLVE)] fun unusedScriptFunction([ResolvedTo(BODY_RESOLVE)] p: R|kotlin/String|): R|kotlin/Int| { public? final? [ResolvedTo(RAW_FIR)] fun unusedScriptFunction([ResolvedTo(RAW_FIR)] p: String): <implicit> { LAZY_BLOCK }
^unusedScriptFunction Int(22)
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/scriptFunction|() R|/scriptFunction|()
} }
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|, [ResolvedTo(BODY_RESOLVE)] action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int, [ResolvedTo(RAW_FIR)] action: ( (Int) -> Unit )): R|kotlin/Unit| { LAZY_BLOCK }
R|<local>/action|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(R|<local>/i|)
}
public final [ResolvedTo(BODY_RESOLVE)] val $$result: R|kotlin/Unit| = R|/foo|(R|/scriptFunction|(), <L> = [ResolvedTo(BODY_RESOLVE)] foo@fun <anonymous>([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Unit| <inline=NoInline> { public final [ResolvedTo(RAW_FIR)] val $$result: <implicit> = foo#(LAZY_EXPRESSION, <L> = LAZY_EXPRESSION)
R|/scriptFunction|() public [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Unit|
@@ -14,21 +14,16 @@ Tower Data Context:
Element 6 Element 6
Scope: FirScriptDeclarationsScope Scope: FirScriptDeclarationsScope
Classifiers: Classifiers:
FirRegularClassSymbol public final class ScriptClass : R|kotlin/Any| FirRegularClassSymbol public final? class ScriptClass : R|kotlin/Any|
Functions Functions
FirNamedFunctionSymbol public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| FirNamedFunctionSymbol public? final? fun foo(i: Int, action: ( (Int) -> Unit )): R|kotlin/Unit|
FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int| FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int|
FirNamedFunctionSymbol public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int| FirNamedFunctionSymbol public? final? fun unusedScriptFunction(p: String): <implicit>
Properties: Properties:
FirPropertySymbol public final val $$result: R|kotlin/Unit| FirPropertySymbol public final val $$result: <implicit>
public get(): R|kotlin/Unit| public get(): <implicit>
Element 7 Element 7
Scope: FirLocalScope Scope: FirLocalScope
Classifiers:
FirRegularClassSymbol public final class ScriptClass : R|kotlin/Any|
Functions
FirNamedFunctionSymbol public final fun scriptFunction(): R|kotlin/Int|
FirNamedFunctionSymbol public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int|
Properties: Properties:
FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>| FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>|
Element 8 Element 8
@@ -37,13 +32,13 @@ Tower Data Context:
SCRIPT: <script-statement.kts> SCRIPT: <script-statement.kts>
lval args: R|kotlin/Array<kotlin/String>| lval args: R|kotlin/Array<kotlin/String>|
public final class ScriptClass : R|kotlin/Any| public final? class ScriptClass : R|kotlin/Any|
public final fun scriptFunction(): R|kotlin/Int| public final fun scriptFunction(): R|kotlin/Int|
public final fun unusedScriptFunction(p: R|kotlin/String|): R|kotlin/Int| public? final? fun unusedScriptFunction(p: String): <implicit>
init init
public final fun foo(i: R|kotlin/Int|, action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| public? final? fun foo(i: Int, action: ( (Int) -> Unit )): R|kotlin/Unit|
public final val $$result: R|kotlin/Unit| public final val $$result: <implicit>
public get(): R|kotlin/Unit| public get(): <implicit>
Type: kotlin.script.templates.standard.ScriptTemplateWithArgs Type: kotlin.script.templates.standard.ScriptTemplateWithArgs
Label: <script> Label: <script>
Element 9 Element 9
@@ -53,37 +48,30 @@ Tower Data Context:
FILE: [ResolvedTo(IMPORTS)] statement.kts FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-statement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class ScriptClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class ScriptClass : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|ScriptClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|ScriptClass| {
super<R|kotlin/Any|>() LAZY_super<R|kotlin/Any|>
} }
public final [ResolvedTo(BODY_RESOLVE)] val memberProperty: R|kotlin/Int| = Int(4) public? final? [ResolvedTo(RAW_FIR)] val memberProperty: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
} }
public final [ResolvedTo(BODY_RESOLVE)] fun scriptFunction(): R|kotlin/Int| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun scriptFunction(): R|kotlin/Int| {
^scriptFunction Int(42) ^scriptFunction Int(42)
} }
public final [ResolvedTo(BODY_RESOLVE)] fun unusedScriptFunction([ResolvedTo(BODY_RESOLVE)] p: R|kotlin/String|): R|kotlin/Int| { public? final? [ResolvedTo(RAW_FIR)] fun unusedScriptFunction([ResolvedTo(RAW_FIR)] p: String): <implicit> { LAZY_BLOCK }
^unusedScriptFunction Int(22)
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/scriptFunction|() R|/scriptFunction|()
} }
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] i: R|kotlin/Int|, [ResolvedTo(BODY_RESOLVE)] action: R|(kotlin/Int) -> kotlin/Unit|): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] i: Int, [ResolvedTo(RAW_FIR)] action: ( (Int) -> Unit )): R|kotlin/Unit| { LAZY_BLOCK }
R|<local>/action|.R|SubstitutionOverride<kotlin/Function1.invoke: R|kotlin/Unit|>|(R|<local>/i|)
}
public final [ResolvedTo(BODY_RESOLVE)] val $$result: R|kotlin/Unit| = R|/foo|(R|/scriptFunction|(), <L> = [ResolvedTo(BODY_RESOLVE)] foo@fun <anonymous>([ResolvedTo(BODY_RESOLVE)] it: R|kotlin/Int|): R|kotlin/Unit| <inline=NoInline> { public final [ResolvedTo(RAW_FIR)] val $$result: <implicit> = foo#(LAZY_EXPRESSION, <L> = LAZY_EXPRESSION)
R|/scriptFunction|() public [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Unit|
@@ -14,11 +14,11 @@ Tower Data Context:
Element 6 Element 6
Scope: FirScriptDeclarationsScope Scope: FirScriptDeclarationsScope
Classifiers: Classifiers:
FirRegularClassSymbol public final class After_OtherClass : R|kotlin/Any| FirRegularClassSymbol public final? class After_OtherClass : R|kotlin/Any|
FirRegularClassSymbol public final class Before_OtherClass : R|kotlin/Any| FirRegularClassSymbol public final? class Before_OtherClass : R|kotlin/Any|
Functions Functions
FirNamedFunctionSymbol public final fun after_Fun(): R|kotlin/Unit| FirNamedFunctionSymbol public? final? fun after_Fun(): R|kotlin/Unit|
FirNamedFunctionSymbol public final fun before_Fun(): R|kotlin/Unit| FirNamedFunctionSymbol public? final? fun before_Fun(): R|kotlin/Unit|
Properties: Properties:
FirPropertySymbol public final val after_Val: R|kotlin/Int| FirPropertySymbol public final val after_Val: R|kotlin/Int|
public get(): R|kotlin/Int| public get(): R|kotlin/Int|
@@ -26,10 +26,6 @@ Tower Data Context:
public get(): R|kotlin/Int| public get(): R|kotlin/Int|
Element 7 Element 7
Scope: FirLocalScope Scope: FirLocalScope
Classifiers:
FirRegularClassSymbol public final class Before_OtherClass : R|kotlin/Any|
Functions
FirNamedFunctionSymbol public final fun before_Fun(): R|kotlin/Unit|
Properties: Properties:
FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>| FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>|
Element 8 Element 8
@@ -38,17 +34,17 @@ Tower Data Context:
SCRIPT: <script-topLevel.kts> SCRIPT: <script-topLevel.kts>
lval args: R|kotlin/Array<kotlin/String>| lval args: R|kotlin/Array<kotlin/String>|
public final fun before_Fun(): R|kotlin/Unit| public? final? fun before_Fun(): R|kotlin/Unit|
public final val before_Val: R|kotlin/Int| public final val before_Val: R|kotlin/Int|
public get(): R|kotlin/Int| public get(): R|kotlin/Int|
public final class Before_OtherClass : R|kotlin/Any| public final? class Before_OtherClass : R|kotlin/Any|
init init
public final fun after_Fun(): R|kotlin/Unit| public? final? fun after_Fun(): R|kotlin/Unit|
public final val after_Val: R|kotlin/Int| public final val after_Val: R|kotlin/Int|
public get(): R|kotlin/Int| public get(): R|kotlin/Int|
public final class After_OtherClass : R|kotlin/Any| public final? class After_OtherClass : R|kotlin/Any|
Type: kotlin.script.templates.standard.ScriptTemplateWithArgs Type: kotlin.script.templates.standard.ScriptTemplateWithArgs
Label: <script> Label: <script>
Element 9 Element 9
@@ -58,18 +54,17 @@ Tower Data Context:
FILE: [ResolvedTo(IMPORTS)] topLevel.kts FILE: [ResolvedTo(IMPORTS)] topLevel.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-topLevel.kts> SCRIPT: [ResolvedTo(TYPES)] <script-topLevel.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun before_Fun(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun before_Fun(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(BODY_RESOLVE)] val before_Val: R|kotlin/Int| = Int(10) public? final? [ResolvedTo(RAW_FIR)] val before_Val: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(STATUS)] class Before_OtherClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class Before_OtherClass : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|Before_OtherClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|Before_OtherClass| {
super<R|kotlin/Any|>() LAZY_super<R|kotlin/Any|>
} }
} }
@@ -78,13 +73,12 @@ FILE: [ResolvedTo(IMPORTS)] topLevel.kts
R|<local>/args| R|<local>/args|
} }
public final [ResolvedTo(BODY_RESOLVE)] fun after_Fun(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun after_Fun(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(BODY_RESOLVE)] val after_Val: R|kotlin/Int| = Int(10) public? final? [ResolvedTo(RAW_FIR)] val after_Val: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(STATUS)] class After_OtherClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class After_OtherClass : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] constructor(): R|After_OtherClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|After_OtherClass| {
LAZY_super<R|kotlin/Any|> LAZY_super<R|kotlin/Any|>
} }
@@ -14,22 +14,18 @@ Tower Data Context:
Element 6 Element 6
Scope: FirScriptDeclarationsScope Scope: FirScriptDeclarationsScope
Classifiers: Classifiers:
FirRegularClassSymbol public final class After_OtherClass : R|kotlin/Any| FirRegularClassSymbol public final? class After_OtherClass : R|kotlin/Any|
FirRegularClassSymbol public final class Before_OtherClass : R|kotlin/Any| FirRegularClassSymbol public final? class Before_OtherClass : R|kotlin/Any|
Functions Functions
FirNamedFunctionSymbol public final fun after_Fun(): R|kotlin/Unit| FirNamedFunctionSymbol public? final? fun after_Fun(): R|kotlin/Unit|
FirNamedFunctionSymbol public final fun before_Fun(): R|kotlin/Unit| FirNamedFunctionSymbol public? final? fun before_Fun(): R|kotlin/Unit|
Properties: Properties:
FirPropertySymbol public final val after_Val: R|kotlin/Int| FirPropertySymbol public? final? val after_Val: <implicit>
public get(): R|kotlin/Int| public? get(): <implicit>
FirPropertySymbol public final val before_Val: R|kotlin/Int| FirPropertySymbol public? final? val before_Val: <implicit>
public get(): R|kotlin/Int| public? get(): <implicit>
Element 7 Element 7
Scope: FirLocalScope Scope: FirLocalScope
Classifiers:
FirRegularClassSymbol public final class Before_OtherClass : R|kotlin/Any|
Functions
FirNamedFunctionSymbol public final fun before_Fun(): R|kotlin/Unit|
Properties: Properties:
FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>| FirPropertySymbol lval args: R|kotlin/Array<kotlin/String>|
Element 8 Element 8
@@ -38,17 +34,17 @@ Tower Data Context:
SCRIPT: <script-topLevel.kts> SCRIPT: <script-topLevel.kts>
lval args: R|kotlin/Array<kotlin/String>| lval args: R|kotlin/Array<kotlin/String>|
public final fun before_Fun(): R|kotlin/Unit| public? final? fun before_Fun(): R|kotlin/Unit|
public final val before_Val: R|kotlin/Int| public? final? val before_Val: <implicit>
public get(): R|kotlin/Int| public? get(): <implicit>
public final class Before_OtherClass : R|kotlin/Any| public final? class Before_OtherClass : R|kotlin/Any|
init init
public final fun after_Fun(): R|kotlin/Unit| public? final? fun after_Fun(): R|kotlin/Unit|
public final val after_Val: R|kotlin/Int| public? final? val after_Val: <implicit>
public get(): R|kotlin/Int| public? get(): <implicit>
public final class After_OtherClass : R|kotlin/Any| public final? class After_OtherClass : R|kotlin/Any|
Type: kotlin.script.templates.standard.ScriptTemplateWithArgs Type: kotlin.script.templates.standard.ScriptTemplateWithArgs
Label: <script> Label: <script>
Element 9 Element 9
@@ -58,18 +54,17 @@ Tower Data Context:
FILE: [ResolvedTo(IMPORTS)] topLevel.kts FILE: [ResolvedTo(IMPORTS)] topLevel.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-topLevel.kts> SCRIPT: [ResolvedTo(TYPES)] <script-topLevel.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] fun before_Fun(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun before_Fun(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(BODY_RESOLVE)] val before_Val: R|kotlin/Int| = Int(10) public? final? [ResolvedTo(RAW_FIR)] val before_Val: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] class Before_OtherClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class Before_OtherClass : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] constructor(): R|Before_OtherClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|Before_OtherClass| {
super<R|kotlin/Any|>() LAZY_super<R|kotlin/Any|>
} }
} }
@@ -78,14 +73,13 @@ FILE: [ResolvedTo(IMPORTS)] topLevel.kts
R|<local>/args| R|<local>/args|
} }
public final [ResolvedTo(BODY_RESOLVE)] fun after_Fun(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun after_Fun(): R|kotlin/Unit| { LAZY_BLOCK }
}
public final [ResolvedTo(BODY_RESOLVE)] val after_Val: R|kotlin/Int| = Int(10) public? final? [ResolvedTo(RAW_FIR)] val after_Val: <implicit> = LAZY_EXPRESSION
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public? [ResolvedTo(RAW_FIR)] get(): <implicit>
public final [ResolvedTo(STATUS)] class After_OtherClass : R|kotlin/Any| { public final? [ResolvedTo(RAW_FIR)] class After_OtherClass : R|kotlin/Any| {
public [ResolvedTo(STATUS)] constructor(): R|After_OtherClass| { public? [ResolvedTo(RAW_FIR)] constructor(): R|After_OtherClass| {
LAZY_super<R|kotlin/Any|> LAZY_super<R|kotlin/Any|>
} }
@@ -10,12 +10,12 @@ FIR element rendered:
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] compoundAssignOnVarScript.kts FILE: [ResolvedTo(IMPORTS)] compoundAssignOnVarScript.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-compoundAssignOnVarScript.kts> SCRIPT: [ResolvedTo(TYPES)] <script-compoundAssignOnVarScript.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(BODY_RESOLVE)] var i: R|kotlin/Int| = Int(1) public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] var i: R|kotlin/Int| = Int(1)
public [ResolvedTo(BODY_RESOLVE)] get(): R|kotlin/Int| public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|kotlin/Int|
public [ResolvedTo(BODY_RESOLVE)] set([ResolvedTo(BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit| public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] set([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] value: R|kotlin/Int|): R|kotlin/Unit|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/i| = R|/i|.R|kotlin/Int.plus|(Int(1)) R|/i| = R|/i|.R|kotlin/Int.plus|(Int(1))
@@ -8,8 +8,8 @@ String()
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] assignment.kts FILE: [ResolvedTo(IMPORTS)] assignment.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-assignment.kts> SCRIPT: [ResolvedTo(TYPES)] <script-assignment.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -20,9 +20,7 @@ FILE: [ResolvedTo(IMPORTS)] assignment.kts
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String| public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String|
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit| public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit|
public final [ResolvedTo(CONTRACTS)] fun execute(): R|kotlin/Unit| { public final [ResolvedTo(STATUS)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
println#(version#)
}
} }
@@ -30,33 +28,15 @@ FILE: [ResolvedTo(IMPORTS)] assignment.kts
^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|) ^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|)
} }
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(123)
local final [ResolvedTo(BODY_RESOLVE)] class A : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor(): R|<local>/A| {
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun doo(): R|kotlin/Unit| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
}
}
this@R|special/anonymous|.R|/Builder.execute|()
}
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321) this@R|special/anonymous|.R|/Builder.version| = String(321)
} }
) )
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder| public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String() R|/builder|.R|/Builder.version| = String()
@@ -8,8 +8,8 @@ this@R|special/anonymous|.R|/Builder.execute|()
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-callInsideStatement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-callInsideStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -48,16 +48,11 @@ FILE: [ResolvedTo(IMPORTS)] callInsideStatement.kts
) )
} }
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
this@R|special/anonymous|.R|/Builder.version| = String(321) public? [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init {
R|/builder|.R|/Builder.version| = String() builder#.version# = String()
} }
@@ -10,8 +10,8 @@ FIR element rendered:
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatement.kts FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-firstStatement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-firstStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4) ^foo Int(4)
@@ -21,9 +21,6 @@ FILE: [ResolvedTo(IMPORTS)] firstStatement.kts
R|/foo|() R|/foo|()
} }
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/bar|()
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -8,8 +8,8 @@ R|/foo|()
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-firstStatementCall.kts> SCRIPT: [ResolvedTo(TYPES)] <script-firstStatementCall.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| {
^foo Int(4) ^foo Int(4)
@@ -19,9 +19,6 @@ FILE: [ResolvedTo(IMPORTS)] firstStatementCall.kts
R|/foo|() R|/foo|()
} }
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/bar|()
}
public final [ResolvedTo(CONTRACTS)] fun bar(): R|kotlin/Unit| { public? final? [ResolvedTo(RAW_FIR)] fun bar(): R|kotlin/Unit| { LAZY_BLOCK }
}
@@ -10,16 +10,12 @@ FIR element rendered:
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatement.kts FILE: [ResolvedTo(IMPORTS)] secondStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-secondStatement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-secondStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| { public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
^foo Int(4)
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/foo|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/bar|() R|/bar|()
@@ -8,16 +8,12 @@ R|/bar|()
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] secondStatementCall.kts FILE: [ResolvedTo(IMPORTS)] secondStatementCall.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-secondStatementCall.kts> SCRIPT: [ResolvedTo(TYPES)] <script-secondStatementCall.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo(): R|kotlin/Int| { public? final? [ResolvedTo(RAW_FIR)] fun foo(): <implicit> { LAZY_BLOCK }
^foo Int(4)
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/foo|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/bar|() R|/bar|()
@@ -8,8 +8,8 @@ R|/builder|.R|/Builder.version| = String()
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-assignmentStatement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-assignmentStatement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -20,9 +20,7 @@ FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String| public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] get(): R|kotlin/String|
public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit| public [ResolvedTo(CONTRACTS)] [ContainingClassKey=Builder] set([ResolvedTo(CONTRACTS)] value: R|kotlin/String|): R|kotlin/Unit|
public final [ResolvedTo(CONTRACTS)] fun execute(): R|kotlin/Unit| { public final [ResolvedTo(STATUS)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
println#(version#)
}
public final? [ResolvedTo(RAW_FIR)] class NestedBuilder : Builder { public final? [ResolvedTo(RAW_FIR)] class NestedBuilder : Builder {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedBuilder] constructor(): R|Builder.NestedBuilder| { public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=NestedBuilder] constructor(): R|Builder.NestedBuilder| {
@@ -37,33 +35,15 @@ FILE: [ResolvedTo(IMPORTS)] assignmentStatement.kts
^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|) ^build R|/Builder.Builder|().R|kotlin/apply|<R|Builder|>(R|<local>/action|)
} }
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(123)
local final [ResolvedTo(BODY_RESOLVE)] class A : R|kotlin/Any| {
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] constructor(): R|<local>/A| {
super<R|kotlin/Any|>()
}
public final [ResolvedTo(BODY_RESOLVE)] fun doo(): R|kotlin/Unit| { public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(RAW_FIR)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
}
}
this@R|special/anonymous|.R|/Builder.execute|()
}
)
}
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> {
this@R|special/anonymous|.R|/Builder.version| = String(321) this@R|special/anonymous|.R|/Builder.version| = String(321)
} }
) )
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder| public [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(BODY_RESOLVE)] init {
R|/builder|.R|/Builder.version| = String() R|/builder|.R|/Builder.version| = String()
@@ -24,8 +24,8 @@ FIR element rendered:
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] scriptInitializer.kts FILE: [ResolvedTo(IMPORTS)] scriptInitializer.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-scriptInitializer.kts> SCRIPT: [ResolvedTo(TYPES)] <script-scriptInitializer.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -71,16 +71,11 @@ FILE: [ResolvedTo(IMPORTS)] scriptInitializer.kts
) )
} }
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
this@R|special/anonymous|.R|/Builder.version| = String(321) public? [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init {
R|/builder|.R|/Builder.version| = String() builder#.version# = String()
} }
@@ -24,8 +24,8 @@ FIR element rendered:
FIR FILE: FIR FILE:
FILE: [ResolvedTo(IMPORTS)] statement.kts FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-statement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public open [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -71,16 +71,11 @@ FILE: [ResolvedTo(IMPORTS)] statement.kts
) )
} }
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
this@R|special/anonymous|.R|/Builder.version| = String(321) public? [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init {
R|/builder|.R|/Builder.version| = String() builder#.version# = String()
} }
+370 -12
View File
@@ -1,8 +1,371 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(COMPANION_GENERATION)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(SUPER_TYPES)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
TYPES:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(TYPES)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
STATUS:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(STATUS)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@kotlin.script.templates.standard.ScriptTemplateWithArgs)
SCRIPT: [ResolvedTo(RAW_FIR)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(EXPECT_ACTUAL_MATCHING)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(CONTRACTS)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
ANNOTATION_ARGUMENTS:
FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final? [ResolvedTo(RAW_FIR)] class Builder : R|kotlin/Any| {
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] constructor(): R|Builder| {
LAZY_super<R|kotlin/Any|>
}
public? final? [ResolvedTo(RAW_FIR)] var version: String = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] get(): String
public? [ResolvedTo(RAW_FIR)] [ContainingClassKey=Builder] set([ResolvedTo(RAW_FIR)] value: String): R|kotlin/Unit|
public? final? [ResolvedTo(RAW_FIR)] fun execute(): R|kotlin/Unit| { LAZY_BLOCK }
}
public? final? [ResolvedTo(RAW_FIR)] fun build([ResolvedTo(RAW_FIR)] action: ( Builder.() -> Unit )): <implicit> { LAZY_BLOCK }
[ResolvedTo(ANNOTATION_ARGUMENTS)] init { LAZY_BLOCK }
public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
public? [ResolvedTo(RAW_FIR)] get(): <implicit>
[ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
[ResolvedTo(RAW_FIR)] init {
builder#.version# = String()
}
BODY_RESOLVE: BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] statement.kts FILE: [ResolvedTo(IMPORTS)] statement.kts
context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|) context(<script>@R|kotlin/script/templates/standard/ScriptTemplateWithArgs|)
SCRIPT: [ResolvedTo(BODY_RESOLVE)] <script-statement.kts> SCRIPT: [ResolvedTo(TYPES)] <script-statement.kts>
[ResolvedTo(BODY_RESOLVE)] lval args: R|kotlin/Array<kotlin/String>| [ResolvedTo(RAW_FIR)] lval args: R|kotlin/Array<kotlin/String>|
public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| { public final [ResolvedTo(STATUS)] class Builder : R|kotlin/Any| {
public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| { public [ResolvedTo(STATUS)] [ContainingClassKey=Builder] constructor(): R|Builder| {
@@ -41,18 +404,13 @@ FILE: [ResolvedTo(IMPORTS)] statement.kts
) )
} }
public final [ResolvedTo(BODY_RESOLVE)] val builder: R|Builder| = R|/build|(<L> = [ResolvedTo(BODY_RESOLVE)] [MatchingParameterFunctionTypeKey=@ExtensionFunctionType kotlin/Function1<Builder, kotlin/Unit>] build@fun R|Builder|.<anonymous>(): R|kotlin/Unit| <inline=NoInline> { public? final? [ResolvedTo(RAW_FIR)] val builder: <implicit> = LAZY_EXPRESSION
this@R|special/anonymous|.R|/Builder.version| = String(321) public? [ResolvedTo(RAW_FIR)] get(): <implicit>
}
)
public [ResolvedTo(BODY_RESOLVE)] get(): R|Builder|
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init { LAZY_BLOCK }
R|/builder|.R|/Builder.execute|()
}
[ResolvedTo(BODY_RESOLVE)] init { [ResolvedTo(RAW_FIR)] init {
R|/builder|.R|/Builder.version| = String() builder#.version# = String()
} }
@@ -8,7 +8,7 @@
/* anchor --> */fun build(/* anchor --> */action: Builder.() -> Unit/* <-- */) = Builder().apply(action)/* <-- */ /* anchor --> */fun build(/* anchor --> */action: Builder.() -> Unit/* <-- */) = Builder().apply(action)/* <-- */
build { /* anchor --> */build {
version = "123" version = "123"
class A { class A {
fun doo() { fun doo() {
@@ -17,7 +17,7 @@ build {
} }
execute() execute()
} }/* <-- */
/* anchor --> */val builder = build { /* anchor --> */val builder = build {
version = "321" version = "321"