[FIR2IR] Extract logic of IR declarations generation into separate component. Part 11
Move creation of IrScript into Fir2IrCallableDeclarationsGenerator
This commit is contained in:
committed by
Space Team
parent
771b44fd02
commit
e2e8a9eb8f
+3
-12
@@ -1040,18 +1040,9 @@ class Fir2IrDeclarationStorage(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getOrCreateIrScript(script: FirScript): IrScript {
|
fun getOrCreateIrScript(script: FirScript): IrScript {
|
||||||
return getCachedIrScript(script) ?: script.convertWithOffsets { startOffset, endOffset ->
|
getCachedIrScript(script)?.let { return it }
|
||||||
val signature = signatureComposer.composeSignature(script)!!
|
return callablesGenerator.createIrScript(script).also {
|
||||||
symbolTable.declareScript(signature, { Fir2IrScriptSymbol(signature) }) { symbol ->
|
scriptCache[script] = it
|
||||||
IrScriptImpl(symbol, script.name, irFactory, startOffset, endOffset).also { irScript ->
|
|
||||||
irScript.origin = SCRIPT_K2_ORIGIN
|
|
||||||
irScript.metadata = FirMetadataSource.Script(script)
|
|
||||||
irScript.implicitReceiversParameters = emptyList()
|
|
||||||
irScript.providedProperties = emptyList()
|
|
||||||
irScript.providedPropertiesParameters = emptyList()
|
|
||||||
scriptCache[script] = irScript
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
@@ -32,7 +32,9 @@ import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
|||||||
import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX
|
import org.jetbrains.kotlin.ir.builders.declarations.UNDEFINED_PARAMETER_INDEX
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.impl.IrScriptImpl
|
||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.impl.SCRIPT_K2_ORIGIN
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl
|
import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
@@ -924,6 +926,20 @@ class Fir2IrCallableDeclarationsGenerator(val components: Fir2IrComponents) : Fi
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------ scripts ------------------------------------
|
// ------------------------------------ scripts ------------------------------------
|
||||||
|
|
||||||
|
fun createIrScript(script: FirScript): IrScript = script.convertWithOffsets { startOffset, endOffset ->
|
||||||
|
val signature = signatureComposer.composeSignature(script)!!
|
||||||
|
symbolTable.declareScript(signature, { Fir2IrScriptSymbol(signature) }) { symbol ->
|
||||||
|
IrScriptImpl(symbol, script.name, irFactory, startOffset, endOffset).also { irScript ->
|
||||||
|
irScript.origin = SCRIPT_K2_ORIGIN
|
||||||
|
irScript.metadata = FirMetadataSource.Script(script)
|
||||||
|
irScript.implicitReceiversParameters = emptyList()
|
||||||
|
irScript.providedProperties = emptyList()
|
||||||
|
irScript.providedPropertiesParameters = emptyList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------ utilities ------------------------------------
|
// ------------------------------------ utilities ------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user