FIR: Refine processing special functions with erased parameters

This commit is contained in:
Denis.Zharkov
2022-04-21 11:49:10 +03:00
committed by teamcity
parent bf96abeed1
commit fb5755a0fa
3 changed files with 4 additions and 5 deletions
@@ -415,7 +415,7 @@ class JavaClassUseSiteMemberScope(
?.symbol as? FirNamedFunctionSymbol
?: unwrappedSubstitutionOverride.symbol
val originalDeclaredFunction = declaredMemberScope.getFunctions(naturalName).firstOrNull {
it.hasSameJvmDescriptorButDoesNotOverride(functionFromSupertypeWithErasedParameterType)
it.hasSameJvmDescriptor(functionFromSupertypeWithErasedParameterType) && it.hasErasedParameters()
} ?: return false
val renamedDeclaredFunction = buildJavaMethodCopy(originalDeclaredFunction.fir as FirJavaMethod) {
name = naturalName
@@ -451,11 +451,10 @@ class JavaClassUseSiteMemberScope(
return false
}
private fun FirNamedFunctionSymbol.hasSameJvmDescriptorButDoesNotOverride(
private fun FirNamedFunctionSymbol.hasSameJvmDescriptor(
builtinWithErasedParameters: FirNamedFunctionSymbol
): Boolean {
return fir.computeJvmDescriptor(includeReturnType = false) == builtinWithErasedParameters.fir.computeJvmDescriptor(includeReturnType = false)
&& overrideChecker.isOverriddenFunction(this, builtinWithErasedParameters)
}
private fun processOverridesForFunctionsWithDifferentJvmName(