diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt index f30abc5408c..3c0f14fea44 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationArgumentChecker.kt @@ -37,7 +37,7 @@ object FirAnnotationArgumentChecker : FirBasicDeclarationChecker() { val expression = (arg as? FirNamedArgumentExpression)?.expression ?: arg checkAnnotationArgumentWithSubElements(expression, context.session, reporter) - ?.let { reporter.report(getFirSourceElement(expression), it) } + ?.let { reporter.report(expression.source, it) } } } } @@ -52,7 +52,7 @@ object FirAnnotationArgumentChecker : FirBasicDeclarationChecker() { var usedNonConst = false for (arg in expression.argumentList.arguments) { - val sourceForReport = getFirSourceElement(arg) + val sourceForReport = arg.source when (val err = checkAnnotationArgumentWithSubElements(arg, session, reporter)) { null -> { @@ -70,7 +70,7 @@ object FirAnnotationArgumentChecker : FirBasicDeclarationChecker() { is FirVarargArgumentsExpression -> { for (arg in expression.arguments) checkAnnotationArgumentWithSubElements(arg, session, reporter) - ?.let { reporter.report(getFirSourceElement(arg), it) } + ?.let { reporter.report(arg.source, it) } } else -> return checkAnnotationArgument(expression, session) @@ -224,31 +224,6 @@ object FirAnnotationArgumentChecker : FirBasicDeclarationChecker() { ?.toSymbol(session) ?.fir - private fun getFirSourceElement(expression: FirExpression): FirSourceElement? = - when { - expression is FirFunctionCall && expression.calleeReference.name == TO_STRING -> - getParentOfFirSourceElement(getParentOfFirSourceElement(expression.source)) - expression is FirFunctionCall -> - expression.source - (expression as? FirQualifiedAccess)?.explicitReceiver != null -> - getParentOfFirSourceElement(expression.source) - else -> - expression.source - } - - private fun getParentOfFirSourceElement(source: FirSourceElement?): FirSourceElement? = - when (source) { - is FirPsiSourceElement<*> -> - source.psi.parent.toFirPsiSourceElement() - is FirLightSourceElement -> { - val elementOfParent = source.treeStructure.getParent(source.lighterASTNode) ?: source.lighterASTNode - - elementOfParent.toFirLightSourceElement(source.treeStructure) - } - else -> - source - } - private inline fun DiagnosticReporter.report( source: T?, factory: FirDiagnosticFactory0