From 6d8b0f55669174321b75e432818186ea631e8524 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 1 Jun 2020 12:10:09 +0300 Subject: [PATCH] [FIR2IR] Provide correct callable ids for fake overrides --- .../kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 10 ++++++---- .../fir/backend/generators/FakeOverrideGenerator.kt | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index ec4d4ef1523..48542d1cea4 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -248,16 +248,18 @@ class Fir2IrDeclarationStorage( processedNames += name scope.processFunctionsByName(name) { functionSymbol -> if (functionSymbol is FirNamedFunctionSymbol) { - val fakeOverrideSymbol = - FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol) + val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction( + session, functionSymbol.fir, functionSymbol, derivedClassId = regularClass.symbol.classId + ) classifierStorage.preCacheTypeParameters(functionSymbol.fir) irClass.declarations += createIrFunction(fakeOverrideSymbol.fir, irClass) } } scope.processPropertiesByName(name) { propertySymbol -> if (propertySymbol is FirPropertySymbol) { - val fakeOverrideSymbol = - FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol) + val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideProperty( + session, propertySymbol.fir, propertySymbol, derivedClassId = regularClass.symbol.classId + ) classifierStorage.preCacheTypeParameters(propertySymbol.fir) irClass.declarations += createIrProperty(fakeOverrideSymbol.fir, irClass) } 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 03c31d2c332..b03ea425243 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 @@ -105,7 +105,7 @@ internal class FakeOverrideGenerator( } else if (fakeOverrideMode != FakeOverrideMode.SUBSTITUTION && originalFunction.allowsToHaveFakeOverrideIn(klass)) { // Trivial fake override case val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction( - session, originalFunction, functionSymbol + session, originalFunction, functionSymbol, derivedClassId = klass.symbol.classId ) val fakeOverrideFunction = fakeOverrideSymbol.fir