From c8afa8f7150a3b5f68718830b216d949bb2f54e4 Mon Sep 17 00:00:00 2001 From: Denis Zharkov Date: Fri, 4 Sep 2020 11:22:40 +0300 Subject: [PATCH] FIR2IR: Remove unused FakeOverrideMode --- .../kotlin/fir/backend/FakeOverrideMode.kt | 18 ----------------- .../kotlin/fir/backend/Fir2IrConverter.kt | 2 +- .../generators/FakeOverrideGenerator.kt | 20 +++++-------------- 3 files changed, 6 insertions(+), 34 deletions(-) delete mode 100644 compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FakeOverrideMode.kt diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FakeOverrideMode.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FakeOverrideMode.kt deleted file mode 100644 index 1d98559448e..00000000000 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FakeOverrideMode.kt +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright 2010-2019 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. - */ - -package org.jetbrains.kotlin.fir.backend - -enum class FakeOverrideMode { - // No fake overrides are generated - NONE, - // Only fake overrides with substituted signatures are generated - SUBSTITUTION, - // All fake overrides are generated, including trivial ones, explicitly declared function is specified as overridden one - NORMAL, - // All fake overrides are generated, function of direct base class (possibly also fake override) is specified as overridden one - // TODO: not supported yet (to be discussed) - FULLY_COMPATIBLE -} \ No newline at end of file diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index 88ff906110a..100d6730e58 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -300,7 +300,7 @@ class Fir2IrConverter( externalDependenciesGenerator.generateUnboundSymbolsAsDependencies() classifierStorage.preCacheBuiltinClasses() val fakeOverrideGenerator = FakeOverrideGenerator( - session, scopeSession, classifierStorage, declarationStorage, conversionScope, FakeOverrideMode.NORMAL + session, scopeSession, classifierStorage, declarationStorage, conversionScope ) components.fakeOverrideGenerator = fakeOverrideGenerator val fir2irVisitor = Fir2IrVisitor(converter, components, conversionScope) 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 778c2798c9d..b9ca08b6fec 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 @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.backend.collectCallableNamesFromSupertypes import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.resolve.ScopeSession import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope @@ -29,8 +28,7 @@ class FakeOverrideGenerator( private val scopeSession: ScopeSession, private val classifierStorage: Fir2IrClassifierStorage, private val declarationStorage: Fir2IrDeclarationStorage, - private val conversionScope: Fir2IrConversionScope, - private val fakeOverrideMode: FakeOverrideMode + private val conversionScope: Fir2IrConversionScope ) { private val baseFunctionSymbols = mutableMapOf() @@ -64,7 +62,6 @@ class FakeOverrideGenerator( fun IrClass.getFakeOverrides(klass: FirClass<*>, processedCallableNames: MutableSet): List { val result = mutableListOf() - if (fakeOverrideMode == FakeOverrideMode.NONE) return emptyList() val superTypesCallableNames = klass.collectCallableNamesFromSupertypes(session) val useSiteMemberScope = klass.unsubstitutedScope(session, scopeSession) for (name in superTypesCallableNames) { @@ -74,14 +71,9 @@ class FakeOverrideGenerator( useSiteMemberScope.processFunctionsByName(name) { functionSymbol -> if (functionSymbol is FirNamedFunctionSymbol) { val originalFunction = functionSymbol.fir - if (originalFunction.isStatic && originalFunction.name in Fir2IrDeclarationStorage.ENUM_SYNTHETIC_NAMES) { - return@processFunctionsByName - } val origin = IrDeclarationOrigin.FAKE_OVERRIDE val baseSymbol = functionSymbol.deepestOverriddenSymbol() as FirNamedFunctionSymbol - if (functionSymbol.isFakeOverride && - (functionSymbol.callableId.classId == klass.symbol.classId || fakeOverrideMode == FakeOverrideMode.SUBSTITUTION) - ) { + if (functionSymbol.isFakeOverride && functionSymbol.callableId.classId == klass.symbol.classId) { // Substitution case // NB: we can get same substituted FIR fake override in a different class, if it derives the same genetic type // open class Base { @@ -104,7 +96,7 @@ class FakeOverrideGenerator( irFunction.parent = this baseFunctionSymbols[irFunction] = baseSymbol result += irFunction - } else if (fakeOverrideMode != FakeOverrideMode.SUBSTITUTION && originalFunction.allowsToHaveFakeOverrideIn(klass)) { + } else if (originalFunction.allowsToHaveFakeOverrideIn(klass)) { // Trivial fake override case val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction( session, originalFunction, baseSymbol, @@ -135,9 +127,7 @@ class FakeOverrideGenerator( val originalProperty = propertySymbol.fir val origin = IrDeclarationOrigin.FAKE_OVERRIDE val baseSymbol = propertySymbol.deepestOverriddenSymbol() as FirPropertySymbol - if (propertySymbol.isFakeOverride && - (propertySymbol.callableId.classId == klass.symbol.classId || fakeOverrideMode == FakeOverrideMode.SUBSTITUTION) - ) { + if (propertySymbol.isFakeOverride && propertySymbol.callableId.classId == klass.symbol.classId) { // Substitution case // NB: see comment above about substituted function' parent val irProperty = declarationStorage.getCachedIrProperty(originalProperty)?.takeIf { it.parent == this } @@ -150,7 +140,7 @@ class FakeOverrideGenerator( irProperty.parent = this basePropertySymbols[irProperty] = baseSymbol result += irProperty - } else if (fakeOverrideMode != FakeOverrideMode.SUBSTITUTION && originalProperty.allowsToHaveFakeOverrideIn(klass)) { + } else if (originalProperty.allowsToHaveFakeOverrideIn(klass)) { // Trivial fake override case val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideProperty( session, originalProperty, baseSymbol,