diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt index ef2e2bf1a0b..28d626f7d97 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt @@ -64,10 +64,12 @@ object FirClassVarianceChecker : FirClassChecker() { if (member is FirProperty && member.isVar) Variance.INVARIANT else Variance.OUT_VARIANCE var returnSource = member.returnTypeRef.source - if (returnSource != null && memberSource != null) { - if (returnSource.kind is KtFakeSourceElementKind && memberSource.kind !is KtFakeSourceElementKind) { + if (returnSource != null) { + if (memberSource != null && returnSource.kind is KtFakeSourceElementKind && memberSource.kind !is KtFakeSourceElementKind) { returnSource = memberSource } + } else { + returnSource = memberSource } checkVarianceConflict(member.returnTypeRef, returnTypeVariance, context, reporter, returnSource) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index ed46ee22acd..681b6fac074 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -1068,9 +1068,6 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor buildResolvedTypeRef { type = this@toExpectedTypeRef.coneType annotations.addAll(this@toExpectedTypeRef.annotations) - this@toExpectedTypeRef.source?.fakeElement(KtFakeSourceElementKind.PropertyFromParameter)?.let { - source = it - } } } }