[FIR2IR] Replace getOrCreateIrScript with createIrScript

Fir2IrDeclarationStorage should not sometimes create IR declarations
  during lookup requests
This commit is contained in:
Dmitriy Novozhilov
2023-11-14 15:58:16 +02:00
committed by Space Team
parent 7263edf322
commit 55f62834cb
2 changed files with 3 additions and 3 deletions
@@ -509,7 +509,7 @@ class Fir2IrConverter(
} }
is FirScript -> { is FirScript -> {
require(parent is IrFile) require(parent is IrFile)
val irScript = declarationStorage.getOrCreateIrScript(declaration) val irScript = declarationStorage.createIrScript(declaration)
addDeclarationToParentIfNeeded(irScript) addDeclarationToParentIfNeeded(irScript)
declarationStorage.withScope(irScript.symbol) { declarationStorage.withScope(irScript.symbol) {
irScript.parent = parent irScript.parent = parent
@@ -1158,8 +1158,8 @@ class Fir2IrDeclarationStorage(
return scriptCache[script] return scriptCache[script]
} }
fun getOrCreateIrScript(script: FirScript): IrScript { fun createIrScript(script: FirScript): IrScript {
getCachedIrScript(script)?.let { return it } getCachedIrScript(script)?.let { error("IrScript already created: ${script.render()}") }
val symbol = createScriptSymbol(signatureComposer.composeSignature(script)) val symbol = createScriptSymbol(signatureComposer.composeSignature(script))
return callablesGenerator.createIrScript(script, symbol).also { return callablesGenerator.createIrScript(script, symbol).also {
scriptCache[script] = it scriptCache[script] = it