From 1294c8de53b6f8110e521ed0689b6c22a0ce6371 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Wed, 2 Jun 2021 17:07:14 +0300 Subject: [PATCH] FIR: don't get class symbol if it's unnecessary (Java type conversion) --- .../java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt | 8 +++++--- .../codegen/box/platformTypes/rawTypeWithNestedClass.kt | 1 - 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt index 1ca20796b89..5ef31686182 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaUtils.kt @@ -420,8 +420,6 @@ private fun JavaClassifierType.toConeKotlinTypeForFlexibleBound( ) } - val classSymbol = session.symbolProvider.getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol - val mappedTypeArguments = if (isRaw) { val defaultArgs = (1..classifier.typeParameters.size).map { ConeStarProjection } @@ -432,10 +430,14 @@ private fun JavaClassifierType.toConeKotlinTypeForFlexibleBound( } else { val position = if (isLowerBound) TypeComponentPosition.FLEXIBLE_LOWER else TypeComponentPosition.FLEXIBLE_UPPER + val classSymbol = session.symbolProvider.getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol classSymbol?.fir?.createRawArguments(session, defaultArgs, position) ?: defaultArgs } } else { - val typeParameters = runIf(!forTypeParameterBounds && !isForSupertypes) { classSymbol?.fir?.typeParameters } ?: emptyList() + val typeParameters = runIf(!forTypeParameterBounds && !isForSupertypes) { + val classSymbol = session.symbolProvider.getClassLikeSymbolByFqName(classId) as? FirRegularClassSymbol + classSymbol?.fir?.typeParameters + } ?: emptyList() typeArguments.indices.map { index -> val argument = typeArguments[index] diff --git a/compiler/testData/codegen/box/platformTypes/rawTypeWithNestedClass.kt b/compiler/testData/codegen/box/platformTypes/rawTypeWithNestedClass.kt index b2af264bf00..bf95f2628a0 100644 --- a/compiler/testData/codegen/box/platformTypes/rawTypeWithNestedClass.kt +++ b/compiler/testData/codegen/box/platformTypes/rawTypeWithNestedClass.kt @@ -1,5 +1,4 @@ // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // FILE: OCNewFileActionBase.java public class OCNewFileActionBase.CreateFileDialogBase> {