[Analysis API] Treat inapplicable declarations safely (KTIJ-23458)

Make 'getClassOrObjectSymbol()' and 'getNamedClassOrObjectSymbol()'
return 'null' for inapplicable PSI declarations.
This commit is contained in:
Yan Zhulanow
2022-11-01 19:23:56 +09:00
committed by teamcity
parent 0a8b9c821c
commit 4d41ac09df
7 changed files with 30 additions and 20 deletions
@@ -19,7 +19,7 @@ abstract class AbstractContainingDeclarationProviderByDelegatedMemberScopeTest :
val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret<KtClassOrObject>(ktFile)
val memberToContainingClass = analyseForTest(declaration) {
val symbol = declaration.getClassOrObjectSymbol()
val symbol = declaration.getClassOrObjectSymbol()!!
renderScopeWithParentDeclarations(symbol.getDelegatedMemberScope())
}
@@ -24,7 +24,7 @@ abstract class AbstractContainingDeclarationProviderByMemberScopeTest : Abstract
val declaration = testServices.expressionMarkerProvider.getElementOfTypeAtCaret<KtClassOrObject>(ktFile)
val memberToContainingClass = analyseForTest(declaration) {
val symbol = declaration.getClassOrObjectSymbol()
val symbol = declaration.getClassOrObjectSymbol()!!
renderScopeWithParentDeclarations(symbol.getMemberScope())
}
@@ -21,8 +21,8 @@ abstract class AbstractIsSubclassOfTest : AbstractAnalysisApiBasedSingleModuleTe
val actual = executeOnPooledThreadInReadAction {
analyseForTest(subClass) {
val subClassSymbol = subClass.getClassOrObjectSymbol()
val superClassSymbol = superClass.getClassOrObjectSymbol()
val subClassSymbol = subClass.getClassOrObjectSymbol()!!
val superClassSymbol = superClass.getClassOrObjectSymbol()!!
val isSubClass = subClassSymbol.isSubClassOf(superClassSymbol)
val isDirectSubClass = subClassSymbol.isDirectSubClassOf(superClassSymbol)