From 4d24a8b40c5cf2047eed2f917069219177e7041e Mon Sep 17 00:00:00 2001 From: Ivan Kochurkin Date: Wed, 5 Jul 2023 13:19:03 +0200 Subject: [PATCH] [FIR] Remove duplicated code discovered by running inspection --- .../declaration/FirOverrideChecker.kt | 19 +-------------- .../LightTreeRawFirExpressionBuilder.kt | 24 +++++++------------ 2 files changed, 10 insertions(+), 33 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt index 0ca648edf27..03329eb083e 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt @@ -28,9 +28,8 @@ import org.jetbrains.kotlin.fir.originalOrSelf import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.FirTypeScope -import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenFunctions -import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties import org.jetbrains.kotlin.fir.scopes.impl.toConeType +import org.jetbrains.kotlin.fir.scopes.retrieveDirectOverriddenOf import org.jetbrains.kotlin.fir.symbols.SymbolInternals import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.symbols.impl.* @@ -56,22 +55,6 @@ object FirOverrideChecker : FirClassChecker() { } } - private fun FirTypeScope.retrieveDirectOverriddenOf(memberSymbol: FirCallableSymbol<*>): List> { - return when (memberSymbol) { - is FirNamedFunctionSymbol -> { - processFunctionsByName(memberSymbol.name) {} - getDirectOverriddenFunctions(memberSymbol) - } - - is FirPropertySymbol -> { - processPropertiesByName(memberSymbol.name) {} - getDirectOverriddenProperties(memberSymbol) - } - - else -> throw IllegalArgumentException("unexpected member kind $memberSymbol") - } - } - private fun ConeKotlinType.substituteAllTypeParameters( overrideDeclaration: FirCallableSymbol<*>, baseDeclaration: FirCallableSymbol<*>, diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt index 11cbb0eaeae..fe49f8ba6d1 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/LightTreeRawFirExpressionBuilder.kt @@ -890,21 +890,7 @@ class LightTreeRawFirExpressionBuilder( baseSource = whenCondition.toFirSourceElement(), operationReferenceSource = conditionSource ) - return if (hasSubject) { - WhenConditionConvertedResults(result, false) - } else { - WhenConditionConvertedResults( - buildErrorExpression { - source = whenCondition.toFirSourceElement() - diagnostic = ConeSimpleDiagnostic( - "No expression in condition with expression", - DiagnosticKind.ExpressionExpected - ) - nonExpressionElement = result - }, - true, - ) - } + return createWhenConditionConvertedResults(hasSubject, result, whenCondition) } private fun convertWhenConditionIsPattern( @@ -934,6 +920,14 @@ class LightTreeRawFirExpressionBuilder( argumentList = buildUnaryArgumentList(subjectExpression) } + return createWhenConditionConvertedResults(hasSubject, result, whenCondition) + } + + private fun createWhenConditionConvertedResults( + hasSubject: Boolean, + result: FirExpression, + whenCondition: LighterASTNode, + ): WhenConditionConvertedResults { return if (hasSubject) { WhenConditionConvertedResults(result, false) } else {