From 3c897ab20c2b6f76a9576ced6e3b726d3d1dddb2 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Thu, 11 Jan 2024 14:30:27 +0200 Subject: [PATCH] [FIR2IR] Set opt-ins in FakeOverrideGenerator more granular --- .../kotlin/fir/backend/generators/FakeOverrideGenerator.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index 5ea6a6c8233..f5fc90857aa 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -476,13 +476,14 @@ class FakeOverrideGenerator( ) { declarationStorage.getIrPropertySymbol(it) as IrPropertySymbol } } - @OptIn(UnsafeDuringIrConstructionAPI::class) private fun > getOverriddenSymbolsInSupertypes( declaration: I, baseSymbols: List, irProducer: (F) -> S, ): List { val irClass = declaration.parentAsClass + + @OptIn(UnsafeDuringIrConstructionAPI::class) val superClasses = irClass.superTypes.mapNotNull { it.classifierOrNull?.owner as? IrClass }.toSet() return baseSymbols.flatMap { overridden -> @@ -490,7 +491,6 @@ class FakeOverrideGenerator( }.distinct() } - @OptIn(UnsafeDuringIrConstructionAPI::class) private fun , S : IrSymbol> getOverriddenSymbolsInSupertypes( overridden: F, superClasses: Set, @@ -499,6 +499,7 @@ class FakeOverrideGenerator( val overriddenContainingClass = overridden.containingClassLookupTag()?.toSymbol(session)?.fir as? FirClass ?: return emptyList() + @OptIn(UnsafeDuringIrConstructionAPI::class) val overriddenContainingIrClass = declarationStorage.classifierStorage.getOrCreateIrClass(overriddenContainingClass.symbol).symbol.owner @@ -637,9 +638,9 @@ internal fun FirSimpleFunction.generateOverriddenFunctionSymbols(containingClass } context(Fir2IrComponents) -@OptIn(UnsafeDuringIrConstructionAPI::class) private fun FirClass.getSuperTypesAsIrClasses(): Set { val irClass = declarationStorage.classifierStorage.getOrCreateIrClass(symbol) + @OptIn(UnsafeDuringIrConstructionAPI::class) return irClass.superTypes.mapNotNull { it.classifierOrNull?.owner as? IrClass }.toSet() }