FIR2IR: fix generation of source overridden symbols
This commit makes source overridden and f/o overridden consistent.
This commit is contained in:
@@ -406,25 +406,33 @@ fun FirTypeScope.processOverriddenFunctionsFromSuperClasses(
|
||||
functionSymbol: FirNamedFunctionSymbol,
|
||||
containingClass: FirClass,
|
||||
processor: (FirNamedFunctionSymbol) -> ProcessorAction
|
||||
): ProcessorAction = processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, baseScope ->
|
||||
if (overridden.containingClass() == containingClass.symbol.toLookupTag()) {
|
||||
baseScope.processOverriddenFunctionsFromSuperClasses(overridden, containingClass, processor)
|
||||
} else {
|
||||
processor(overridden)
|
||||
): ProcessorAction =
|
||||
processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, _ ->
|
||||
val unwrapped = if (overridden.fir.isSubstitutionOverride &&
|
||||
overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag()
|
||||
)
|
||||
overridden.originalForSubstitutionOverride!!
|
||||
else
|
||||
overridden
|
||||
|
||||
processor(unwrapped)
|
||||
}
|
||||
}
|
||||
|
||||
fun FirTypeScope.processOverriddenPropertiesFromSuperClasses(
|
||||
propertySymbol: FirPropertySymbol,
|
||||
containingClass: FirClass,
|
||||
processor: (FirPropertySymbol) -> ProcessorAction
|
||||
): ProcessorAction = processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, baseScope ->
|
||||
if (overridden.containingClass() == containingClass.symbol.toLookupTag()) {
|
||||
baseScope.processOverriddenPropertiesFromSuperClasses(overridden, containingClass, processor)
|
||||
} else {
|
||||
processor(overridden)
|
||||
): ProcessorAction =
|
||||
processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, _ ->
|
||||
val unwrapped = if (overridden.fir.isSubstitutionOverride &&
|
||||
overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag()
|
||||
)
|
||||
overridden.originalForSubstitutionOverride!!
|
||||
else
|
||||
overridden
|
||||
|
||||
processor(unwrapped)
|
||||
}
|
||||
}
|
||||
|
||||
private fun FirClass.getSuperTypesAsIrClasses(
|
||||
declarationStorage: Fir2IrDeclarationStorage
|
||||
|
||||
@@ -12,7 +12,6 @@ FILE fqName:<root> fileName:/AbstractMutableMap.kt
|
||||
FUN name:put visibility:public modality:FINAL <> ($this:<root>.MyMap<K of <root>.MyMap, V of <root>.MyMap>, key:K of <root>.MyMap, value:V of <root>.MyMap) returnType:V of <root>.MyMap?
|
||||
overridden:
|
||||
public abstract fun put (key: K of kotlin.collections.AbstractMutableMap, value: V of kotlin.collections.AbstractMutableMap): V of kotlin.collections.AbstractMutableMap? declared in kotlin.collections.AbstractMutableMap
|
||||
public open fun put (p0: @[FlexibleNullability] K of kotlin.collections.AbstractMutableMap?, p1: @[FlexibleNullability] V of kotlin.collections.AbstractMutableMap?): V of kotlin.collections.AbstractMutableMap? [fake_override] declared in kotlin.collections.AbstractMutableMap
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MyMap<K of <root>.MyMap, V of <root>.MyMap>
|
||||
VALUE_PARAMETER name:key index:0 type:K of <root>.MyMap
|
||||
VALUE_PARAMETER name:value index:1 type:V of <root>.MyMap
|
||||
|
||||
@@ -203,8 +203,6 @@ FILE fqName:<root> fileName:/ArrayListOverrides.kt
|
||||
FUN name:remove visibility:public modality:FINAL <> ($this:<root>.A2, x:kotlin.String) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public open fun remove (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean declared in java.util.ArrayList
|
||||
public open fun remove (p0: @[FlexibleNullability] E of java.util.ArrayList?): kotlin.Boolean [fake_override] declared in java.util.ArrayList
|
||||
public abstract fun remove (element: E of java.util.ArrayList): kotlin.Boolean [fake_override] declared in java.util.ArrayList
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.A2
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.String
|
||||
BLOCK_BODY
|
||||
|
||||
Reference in New Issue
Block a user