From 8580461b5b9bab841166024fdb960a1799c3cd25 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 13 Dec 2022 11:39:44 +0100 Subject: [PATCH] FIR2IR: remove redundant calls of preCacheBuiltinClassMembers #KT-55421 Fixed --- .../jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt | 1 - .../org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt | 5 ++++- .../src/org/jetbrains/kotlin/name/StandardClassIds.kt | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index 1c13f8f0fef..b1890aa3d32 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -562,7 +562,6 @@ class Fir2IrClassifierStorage( for ((firTypeParameter, irTypeParameter) in mappedTypeParameters) { typeParameterCache[firTypeParameter] = irTypeParameter } - declarationStorage.preCacheBuiltinClassMembers(firClass, irClass) return symbol } firClass as FirRegularClass diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt index 5ae50c5ff1c..21ae9985cb8 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrTypeConverter.kt @@ -33,12 +33,15 @@ class Fir2IrTypeConverter( ) : Fir2IrComponents by components { internal val classIdToSymbolMap by lazy { + // Note: this map must include all base classes, and they should be before derived classes! mapOf( StandardClassIds.Nothing to irBuiltIns.nothingClass, + StandardClassIds.Any to irBuiltIns.anyClass, StandardClassIds.Unit to irBuiltIns.unitClass, StandardClassIds.Boolean to irBuiltIns.booleanClass, + StandardClassIds.CharSequence to irBuiltIns.charSequenceClass, StandardClassIds.String to irBuiltIns.stringClass, - StandardClassIds.Any to irBuiltIns.anyClass, + StandardClassIds.Number to irBuiltIns.numberClass, StandardClassIds.Long to irBuiltIns.longClass, StandardClassIds.Int to irBuiltIns.intClass, StandardClassIds.Short to irBuiltIns.shortClass, diff --git a/core/compiler.common/src/org/jetbrains/kotlin/name/StandardClassIds.kt b/core/compiler.common/src/org/jetbrains/kotlin/name/StandardClassIds.kt index 585891e572e..e7ccbda92fd 100644 --- a/core/compiler.common/src/org/jetbrains/kotlin/name/StandardClassIds.kt +++ b/core/compiler.common/src/org/jetbrains/kotlin/name/StandardClassIds.kt @@ -49,6 +49,7 @@ object StandardClassIds { val UInt = Int.unsignedId() val ULong = Long.unsignedId() + val CharSequence = "CharSequence".baseId() val String = "String".baseId() val Throwable = "Throwable".baseId()