From 4944fc78b2103d1ac335ad4f281cca4efb0acbd8 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 25 May 2020 18:26:48 +0300 Subject: [PATCH] [IR] Require bound symbols in classFqNameEquals --- .../src/org/jetbrains/kotlin/ir/types/irTypePredicates.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypePredicates.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypePredicates.kt index 00570a69576..10388ceb05b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypePredicates.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/irTypePredicates.kt @@ -27,8 +27,10 @@ private fun IrType.isClassType(fqName: FqNameUnsafe, hasQuestionMark: Boolean? = fun IrClassifierSymbol.isClassWithFqName(fqName: FqNameUnsafe): Boolean = this is IrClassSymbol && classFqNameEquals(this, fqName) -private fun classFqNameEquals(symbol: IrClassSymbol, fqName: FqNameUnsafe): Boolean = - if (symbol.isBound) classFqNameEquals(symbol.owner, fqName) else classFqNameEquals(symbol.descriptor, fqName) +private fun classFqNameEquals(symbol: IrClassSymbol, fqName: FqNameUnsafe): Boolean { + assert(symbol.isBound) + return classFqNameEquals(symbol.owner, fqName) +} private fun classFqNameEquals(declaration: IrClass, fqName: FqNameUnsafe): Boolean = declaration.name == fqName.shortName() && fqName == declaration.fqNameWhenAvailable?.toUnsafe()