diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index d88d2e79158..e4daa0e5320 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -66,8 +66,8 @@ class JavaSymbolProvider( // NB: looks like it's better not to use this function at all... override fun getClassDeclaredMemberScope(classId: ClassId): FirScope? { - val classSymbol = getClassLikeSymbolByFqName(classId) ?: return null - return declaredMemberScope(classSymbol.fir) + // Anyway we cannot build correct declared member scope here + return null } override fun getClassUseSiteMemberScope( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt index ed9db760dde..b1b33fa43a7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirSymbolProvider.kt @@ -135,7 +135,8 @@ abstract class FirSymbolProvider : FirSessionComponent { } fun FirSymbolProvider.getClassDeclaredCallableSymbols(classId: ClassId, name: Name): List> { - val declaredMemberScope = getClassDeclaredMemberScope(classId) ?: return emptyList() + val classSymbol = getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol ?: return emptyList() + val declaredMemberScope = declaredMemberScope(classSymbol.fir) val result = mutableListOf>() val processor: (FirCallableSymbol<*>) -> ProcessorAction = { result.add(it) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt index e9c3f4795ef..cfc4e76e550 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/IntegerLiteralTypeApproximationTransformer.kt @@ -18,10 +18,11 @@ import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.FirIntegerOperator import org.jetbrains.kotlin.fir.scopes.impl.FirIntegerOperatorCall +import org.jetbrains.kotlin.fir.scopes.impl.declaredMemberScope import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol import org.jetbrains.kotlin.fir.symbols.StandardClassIds -import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult import org.jetbrains.kotlin.fir.visitors.FirTransformer @@ -55,7 +56,7 @@ class IntegerLiteralTypeApproximationTransformer( functionCall.transformChildren(this, data) val argumentType = functionCall.arguments.firstOrNull()?.resultType?.coneTypeUnsafe() val receiverClassId = functionCall.dispatchReceiver.typeRef.coneTypeUnsafe().lookupTag.classId - val scope = symbolProvider.getClassDeclaredMemberScope(receiverClassId)!! + val scope = declaredMemberScope((symbolProvider.getClassLikeSymbolByFqName(receiverClassId) as FirRegularClassSymbol).fir) var resultSymbol: FirFunctionSymbol<*>? = null scope.processFunctionsByName(operator.name) { symbol -> if (operator.kind.unary) {