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,
|
functionSymbol: FirNamedFunctionSymbol,
|
||||||
containingClass: FirClass,
|
containingClass: FirClass,
|
||||||
processor: (FirNamedFunctionSymbol) -> ProcessorAction
|
processor: (FirNamedFunctionSymbol) -> ProcessorAction
|
||||||
): ProcessorAction = processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, baseScope ->
|
): ProcessorAction =
|
||||||
if (overridden.containingClass() == containingClass.symbol.toLookupTag()) {
|
processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, _ ->
|
||||||
baseScope.processOverriddenFunctionsFromSuperClasses(overridden, containingClass, processor)
|
val unwrapped = if (overridden.fir.isSubstitutionOverride &&
|
||||||
} else {
|
overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag()
|
||||||
processor(overridden)
|
)
|
||||||
|
overridden.originalForSubstitutionOverride!!
|
||||||
|
else
|
||||||
|
overridden
|
||||||
|
|
||||||
|
processor(unwrapped)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
fun FirTypeScope.processOverriddenPropertiesFromSuperClasses(
|
fun FirTypeScope.processOverriddenPropertiesFromSuperClasses(
|
||||||
propertySymbol: FirPropertySymbol,
|
propertySymbol: FirPropertySymbol,
|
||||||
containingClass: FirClass,
|
containingClass: FirClass,
|
||||||
processor: (FirPropertySymbol) -> ProcessorAction
|
processor: (FirPropertySymbol) -> ProcessorAction
|
||||||
): ProcessorAction = processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, baseScope ->
|
): ProcessorAction =
|
||||||
if (overridden.containingClass() == containingClass.symbol.toLookupTag()) {
|
processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, _ ->
|
||||||
baseScope.processOverriddenPropertiesFromSuperClasses(overridden, containingClass, processor)
|
val unwrapped = if (overridden.fir.isSubstitutionOverride &&
|
||||||
} else {
|
overridden.dispatchReceiverClassOrNull() == containingClass.symbol.toLookupTag()
|
||||||
processor(overridden)
|
)
|
||||||
|
overridden.originalForSubstitutionOverride!!
|
||||||
|
else
|
||||||
|
overridden
|
||||||
|
|
||||||
|
processor(unwrapped)
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private fun FirClass.getSuperTypesAsIrClasses(
|
private fun FirClass.getSuperTypesAsIrClasses(
|
||||||
declarationStorage: Fir2IrDeclarationStorage
|
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?
|
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:
|
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 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>
|
$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:key index:0 type:K of <root>.MyMap
|
||||||
VALUE_PARAMETER name:value index:1 type:V 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
|
FUN name:remove visibility:public modality:FINAL <> ($this:<root>.A2, x:kotlin.String) returnType:kotlin.Boolean
|
||||||
overridden:
|
overridden:
|
||||||
public open fun remove (p0: @[EnhancedNullability] E of java.util.ArrayList): kotlin.Boolean declared in java.util.ArrayList
|
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
|
$this: VALUE_PARAMETER name:<this> type:<root>.A2
|
||||||
VALUE_PARAMETER name:x index:0 type:kotlin.String
|
VALUE_PARAMETER name:x index:0 type:kotlin.String
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
Reference in New Issue
Block a user