From f08c1677292b69977e7d6651d8945e09a454305b Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Fri, 12 Jan 2024 13:26:44 +0200 Subject: [PATCH] [FIR] Introduce `FirValueParameterSymbol.defaultValueSource` It's easier to read the code if you don't see generic `fir` access and thus don't need to check all its usages to make sure it's used correctly. --- .../fir/analysis/checkers/declaration/FirOverrideChecker.kt | 6 ++---- .../jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt | 4 ++++ 2 files changed, 6 insertions(+), 4 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 f7c844c34da..d9ea5c5ba24 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 @@ -221,15 +221,13 @@ object FirOverrideChecker : FirAbstractOverrideChecker() { } } - @OptIn(SymbolInternals::class) private fun FirFunctionSymbol<*>.checkDefaultValues( reporter: DiagnosticReporter, context: CheckerContext, ) { for (valueParameterSymbol in valueParameterSymbols) { - val defaultValue = valueParameterSymbol.fir.defaultValue - if (defaultValue != null) { - reporter.reportOn(defaultValue.source, FirErrors.DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE, context) + if (valueParameterSymbol.hasDefaultValue) { + reporter.reportOn(valueParameterSymbol.defaultValueSource, FirErrors.DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE, context) } } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt index ba1064a484e..f927e228cb0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.symbols.impl +import org.jetbrains.kotlin.KtSourceElement import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.diagnostics.ConeDiagnostic import org.jetbrains.kotlin.fir.expressions.FirAnonymousObjectExpression @@ -115,6 +116,9 @@ class FirValueParameterSymbol(name: Name) : FirVariableSymbol val hasDefaultValue: Boolean get() = fir.defaultValue != null + val defaultValueSource: KtSourceElement? + get() = fir.defaultValue?.source + val isCrossinline: Boolean get() = fir.isCrossinline