From c6e442c18b31b5c2dc3879e9e6e167a38f738bf1 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Mon, 11 Mar 2024 15:56:10 +0100 Subject: [PATCH] KT-66498 [AA] Do not consider a class to be a subclass of itself in K1 impl for `isSubClassOf` ^KT-66498 Fixed --- .../components/KtFe10SymbolDeclarationOverridesProvider.kt | 2 ++ .../isSubclassOf/sameClass.descriptors.txt | 2 -- 2 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/isSubclassOf/sameClass.descriptors.txt diff --git a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt index e1b05d65767..536b50764dc 100644 --- a/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt +++ b/analysis/analysis-api-fe10/src/org/jetbrains/kotlin/analysis/api/descriptors/components/KtFe10SymbolDeclarationOverridesProvider.kt @@ -73,6 +73,8 @@ internal class KtFe10SymbolDeclarationOverridesProvider( } override fun isSubClassOf(subClass: KtClassOrObjectSymbol, superClass: KtClassOrObjectSymbol): Boolean { + if (subClass == superClass) return false + val subClassDescriptor = getSymbolDescriptor(subClass) as? ClassDescriptor ?: return false val superClassDescriptor = getSymbolDescriptor(superClass) as? ClassDescriptor ?: return false return subClassDescriptor.isSubclassOf(superClassDescriptor) diff --git a/analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/isSubclassOf/sameClass.descriptors.txt b/analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/isSubclassOf/sameClass.descriptors.txt deleted file mode 100644 index f47502b604e..00000000000 --- a/analysis/analysis-api/testData/components/symbolDeclarationOverridesProvider/isSubclassOf/sameClass.descriptors.txt +++ /dev/null @@ -1,2 +0,0 @@ -IS_SUBCLASS: true -IS_DIRECT_SUBCLASS: false