From 1884a655c58295fad79c1b94db1bb1e232b2b1e5 Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Mon, 11 Mar 2024 15:59:37 +0100 Subject: [PATCH] KT-66498 [AA] Provide KDoc for `isSubClassOf` and `isDirectSubClassOf` --- .../components/KtSymbolDeclarationOverridesProvider.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationOverridesProvider.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationOverridesProvider.kt index 381d6bea3d1..e1ef4a4c20d 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationOverridesProvider.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/components/KtSymbolDeclarationOverridesProvider.kt @@ -49,9 +49,19 @@ public interface KtSymbolDeclarationOverridesProviderMixIn : KtAnalysisSessionMi public fun KtCallableSymbol.getDirectlyOverriddenSymbols(): List = withValidityAssertion { analysisSession.symbolDeclarationOverridesProvider.getDirectlyOverriddenSymbols(this) } + /** + * Checks if [this] class has [superClass] as its superclass somewhere in the inheritance hierarchy. + * + * N.B. The class is not considered to be a subclass of itself, so `myClass.isSubClassOf(myClass)` is always `false`. + */ public fun KtClassOrObjectSymbol.isSubClassOf(superClass: KtClassOrObjectSymbol): Boolean = withValidityAssertion { analysisSession.symbolDeclarationOverridesProvider.isSubClassOf(this, superClass) } + /** + * Checks if [this] class has [superClass] listed as its direct superclass. + * + * N.B. The class is not considered to be a direct subclass of itself, so `myClass.isDirectSubClassOf(myClass)` is always `false`. + */ public fun KtClassOrObjectSymbol.isDirectSubClassOf(superClass: KtClassOrObjectSymbol): Boolean = withValidityAssertion { analysisSession.symbolDeclarationOverridesProvider.isDirectSubClassOf(this, superClass) }