[FIR2IR] Provide correct callable ids for fake overrides
This commit is contained in:
+6
-4
@@ -248,16 +248,18 @@ class Fir2IrDeclarationStorage(
|
|||||||
processedNames += name
|
processedNames += name
|
||||||
scope.processFunctionsByName(name) { functionSymbol ->
|
scope.processFunctionsByName(name) { functionSymbol ->
|
||||||
if (functionSymbol is FirNamedFunctionSymbol) {
|
if (functionSymbol is FirNamedFunctionSymbol) {
|
||||||
val fakeOverrideSymbol =
|
val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction(
|
||||||
FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol)
|
session, functionSymbol.fir, functionSymbol, derivedClassId = regularClass.symbol.classId
|
||||||
|
)
|
||||||
classifierStorage.preCacheTypeParameters(functionSymbol.fir)
|
classifierStorage.preCacheTypeParameters(functionSymbol.fir)
|
||||||
irClass.declarations += createIrFunction(fakeOverrideSymbol.fir, irClass)
|
irClass.declarations += createIrFunction(fakeOverrideSymbol.fir, irClass)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
scope.processPropertiesByName(name) { propertySymbol ->
|
scope.processPropertiesByName(name) { propertySymbol ->
|
||||||
if (propertySymbol is FirPropertySymbol) {
|
if (propertySymbol is FirPropertySymbol) {
|
||||||
val fakeOverrideSymbol =
|
val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideProperty(
|
||||||
FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol)
|
session, propertySymbol.fir, propertySymbol, derivedClassId = regularClass.symbol.classId
|
||||||
|
)
|
||||||
classifierStorage.preCacheTypeParameters(propertySymbol.fir)
|
classifierStorage.preCacheTypeParameters(propertySymbol.fir)
|
||||||
irClass.declarations += createIrProperty(fakeOverrideSymbol.fir, irClass)
|
irClass.declarations += createIrProperty(fakeOverrideSymbol.fir, irClass)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -105,7 +105,7 @@ internal class FakeOverrideGenerator(
|
|||||||
} else if (fakeOverrideMode != FakeOverrideMode.SUBSTITUTION && originalFunction.allowsToHaveFakeOverrideIn(klass)) {
|
} else if (fakeOverrideMode != FakeOverrideMode.SUBSTITUTION && originalFunction.allowsToHaveFakeOverrideIn(klass)) {
|
||||||
// Trivial fake override case
|
// Trivial fake override case
|
||||||
val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction(
|
val fakeOverrideSymbol = FirClassSubstitutionScope.createFakeOverrideFunction(
|
||||||
session, originalFunction, functionSymbol
|
session, originalFunction, functionSymbol, derivedClassId = klass.symbol.classId
|
||||||
)
|
)
|
||||||
val fakeOverrideFunction = fakeOverrideSymbol.fir
|
val fakeOverrideFunction = fakeOverrideSymbol.fir
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user