From 98f4fa1f6c02243177a56bb1a46e9c1f4a0d7856 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Tue, 9 Apr 2019 20:19:13 +0300 Subject: [PATCH] FIR Java: fix too strict cast in use-site scope --- .../kotlin/fir/java/scopes/JavaClassUseSiteScope.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteScope.kt index 4e7c7e86386..a3a73e23799 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteScope.kt @@ -10,8 +10,8 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirNamedFunction import org.jetbrains.kotlin.fir.declarations.FirRegularClass -import org.jetbrains.kotlin.fir.java.declarations.FirJavaMethod import org.jetbrains.kotlin.fir.java.toNotNullConeKotlinType +import org.jetbrains.kotlin.fir.resolve.transformers.firUnsafe import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractProviderBasedScope @@ -54,7 +54,7 @@ class JavaClassUseSiteScope( private fun isEqualTypes(a: FirTypeRef, b: FirTypeRef) = isEqualTypes(a.toNotNullConeKotlinType(session), b.toNotNullConeKotlinType(session)) - private fun isOverriddenFunCheck(overriddenInJava: FirJavaMethod, base: FirNamedFunction): Boolean { + private fun isOverriddenFunCheck(overriddenInJava: FirNamedFunction, base: FirNamedFunction): Boolean { val receiverTypeRef = base.receiverTypeRef if (receiverTypeRef == null) { return overriddenInJava.valueParameters.size == base.valueParameters.size && @@ -76,7 +76,7 @@ class JavaClassUseSiteScope( val self = (this as FirFunctionSymbol).fir as FirNamedFunction val overriding = candidates.firstOrNull { - val member = (it as FirFunctionSymbol).fir as FirJavaMethod + val member = (it as FirFunctionSymbol).firUnsafe() self.modality != Modality.FINAL && isOverriddenFunCheck(member, self) } // TODO: two or more overrides for one fun? overriddenByBase[this] = overriding