From 40b13898bd2a0c6fe167defe620db609fc865070 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 26 Aug 2022 12:14:51 +0300 Subject: [PATCH] [FIR] Don't set source of inferred type from expected type --- .../checkers/declaration/FirClassVarianceChecker.kt | 6 ++++-- .../body/resolve/FirDeclarationsResolveTransformer.kt | 3 --- 2 files changed, 4 insertions(+), 5 deletions(-) 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 - } } } }