diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChild.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChild.kt index 59e78603f95..ba99f79d20f 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChild.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/FirSourceChild.kt @@ -9,14 +9,16 @@ import com.intellij.psi.tree.IElementType import com.intellij.psi.tree.TokenSet import org.jetbrains.kotlin.fir.* -fun FirSourceElement.getChild(type: IElementType, index: Int = 0, depth: Int = -1): FirSourceElement? = - getChild(setOf(type), index, depth) +fun FirSourceElement.getChild(type: IElementType, index: Int = 0, depth: Int = -1): FirSourceElement? { + return getChild(setOf(type), index, depth) +} -fun FirSourceElement.getChild(types: TokenSet, index: Int = 0, depth: Int = -1): FirSourceElement? = - getChild(types.types.toSet(), index, depth) +fun FirSourceElement.getChild(types: TokenSet, index: Int = 0, depth: Int = -1): FirSourceElement? { + return getChild(types.types.toSet(), index, depth) +} -fun FirSourceElement.getChild(types: Set, index: Int = 0, depth: Int = -1): FirSourceElement? = - when (this) { +fun FirSourceElement.getChild(types: Set, index: Int = 0, depth: Int = -1): FirSourceElement? { + return when (this) { is FirPsiSourceElement<*> -> { getChild(types, index, depth) } @@ -25,6 +27,7 @@ fun FirSourceElement.getChild(types: Set, index: Int = 0, depth: I } else -> null } +} private fun FirPsiSourceElement<*>.getChild(types: Set, index: Int, depth: Int): FirSourceElement? { val visitor = PsiElementFinderByType(types, index, depth) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt index b965c00ed68..0f9675f86cc 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt @@ -19,20 +19,23 @@ import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef import org.jetbrains.kotlin.lexer.KtTokens -internal fun isInsideExpectClass(containingClass: FirRegularClass, context: CheckerContext): Boolean = - isInsideSpecificClass(containingClass, context) { klass -> klass.isExpect } +internal fun isInsideExpectClass(containingClass: FirRegularClass, context: CheckerContext): Boolean { + return isInsideSpecificClass(containingClass, context) { klass -> klass.isExpect } +} -internal fun isInsideExternalClass(containingClass: FirRegularClass, context: CheckerContext): Boolean = - isInsideSpecificClass(containingClass, context) { klass -> klass.isExternal } +internal fun isInsideExternalClass(containingClass: FirRegularClass, context: CheckerContext): Boolean { + return isInsideSpecificClass(containingClass, context) { klass -> klass.isExternal } +} // Note that the class that contains the currently visiting declaration will *not* be in the context's containing declarations *yet*. private inline fun isInsideSpecificClass( containingClass: FirRegularClass, context: CheckerContext, predicate: (FirRegularClass) -> Boolean -): Boolean = - predicate.invoke(containingClass) || +): Boolean { + return predicate.invoke(containingClass) || context.containingDeclarations.asReversed().any { it is FirRegularClass && predicate.invoke(it) } +} internal fun FirMemberDeclaration.isEffectivelyExpect( containingClass: FirRegularClass?,