From 32173a408a26c3ff00b44ce2352a08834c806084 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 2 Jul 2021 12:51:45 +0300 Subject: [PATCH] [FIR] Update type of getter after approximation of property type --- .../annotationArgumentKClassLiteralTypeError.fir.txt | 2 +- .../body/resolve/FirDeclarationsResolveTransformer.kt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/fir/analysis-tests/testData/resolve/diagnostics/annotationArgumentKClassLiteralTypeError.fir.txt b/compiler/fir/analysis-tests/testData/resolve/diagnostics/annotationArgumentKClassLiteralTypeError.fir.txt index e9ac47ae1b4..1ba09c290b2 100644 --- a/compiler/fir/analysis-tests/testData/resolve/diagnostics/annotationArgumentKClassLiteralTypeError.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolve/diagnostics/annotationArgumentKClassLiteralTypeError.fir.txt @@ -9,7 +9,7 @@ FILE: annotationArgumentKClassLiteralTypeError.kt } public final val R|T|.test: R|kotlin/Any| - public inline get(): R|| { + public inline get(): R|kotlin/Any| { ^ @R|Ann|(((R|T|), (Q|kotlin/Array|))) object : R|kotlin/Any| { private constructor(): R|| { super() 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 df81b97453a..5e790cf7a0b 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 @@ -307,6 +307,8 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor if (returnTypeRef is FirImplicitTypeRef) { storeVariableReturnType(this) enhancedTypeRef = returnTypeRef + // We need update type of getter for case when its type was approximated + getter?.replaceReturnTypeRef(enhancedTypeRef) } setter?.let { if (it.valueParameters[0].returnTypeRef is FirImplicitTypeRef) {