[FIR2IR] Provide correct callable ids for fake overrides

This commit is contained in:
Mikhail Glukhikh
2020-06-01 12:10:09 +03:00
parent dc660e72e5
commit 6d8b0f5566
2 changed files with 7 additions and 5 deletions
@@ -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)
}
@@ -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