From 3014c7b3533963a0b737c58b5ba2113021f30527 Mon Sep 17 00:00:00 2001 From: Nikolay Lunyak Date: Tue, 27 Jun 2023 17:47:06 +0300 Subject: [PATCH] [FIR] Check `isMember` via the dispatch receiver --- .../kotlin/fir/analysis/checkers/FirHelpers.kt | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt index 77f01c2a2e6..f6457a9bf22 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt @@ -599,11 +599,9 @@ fun FirFunctionSymbol<*>.isFunctionForExpectTypeFromCastFeature(): Boolean { return true } -fun getActualTargetList(container: FirAnnotationContainer): AnnotationTargetList { - fun CallableId.isMember(): Boolean { - return classId != null || isLocal // TODO: Replace with .containingClass (after fixing) - } +private val FirCallableDeclaration.isMember get() = dispatchReceiverType != null +fun getActualTargetList(container: FirAnnotationContainer): AnnotationTargetList { val annotated = if (container is FirBackingField && !container.propertySymbol.hasBackingField) container.propertyIfBackingField else container @@ -625,7 +623,7 @@ fun getActualTargetList(container: FirAnnotationContainer): AnnotationTargetList } else { TargetLists.T_LOCAL_VARIABLE } - annotated.symbol.callableId.isMember() -> + annotated.isMember -> if (annotated.source?.kind == KtFakeSourceElementKind.PropertyFromParameter) { TargetLists.T_VALUE_PARAMETER_WITH_VAL } else { @@ -648,7 +646,7 @@ fun getActualTargetList(container: FirAnnotationContainer): AnnotationTargetList is FirSimpleFunction -> { when { annotated.isLocal -> TargetLists.T_LOCAL_FUNCTION - annotated.symbol.callableId.isMember() -> TargetLists.T_MEMBER_FUNCTION + annotated.isMember -> TargetLists.T_MEMBER_FUNCTION else -> TargetLists.T_TOP_LEVEL_FUNCTION } }