diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/AbstractToolConfig.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/AbstractToolConfig.fir.txt index bd9f336c3e0..ce38796e17f 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/AbstractToolConfig.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/AbstractToolConfig.fir.txt @@ -16,8 +16,8 @@ FILE: AbstractToolConfig.kt protected final val platform: R|Platform| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platformManager|.R|/PlatformManager.platform|(this@R|/AbstractToolConfig|.R|/AbstractToolConfig.target|) protected get(): R|Platform| - public final val llvmHome: R|ERROR CLASS: Cannot calculate return type (local class/object?)| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platform|.R|/Configurables.absoluteLlvmHome| - public get(): R|ERROR CLASS: Cannot calculate return type (local class/object?)| + public final val llvmHome: R|kotlin/String| = this@R|/AbstractToolConfig|.R|/AbstractToolConfig.platform|.R|/Configurables.absoluteLlvmHome| + public get(): R|kotlin/String| public abstract fun platformManager(): R|PlatformManager| diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 12a3d51645d..f60f25930f8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.TransformImplicitType import org.jetbrains.kotlin.fir.resolve.transformers.contracts.runContractResolveForLocalClass import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution +import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol @@ -236,6 +237,11 @@ private class ReturnTypeCalculatorWithJump( return tryCalculateReturnType(declaration.getter.delegate) } + val unwrappedDelegate = declaration.delegatedWrapperData?.wrapped + if (unwrappedDelegate != null) { + return tryCalculateReturnType(unwrappedDelegate) + } + if (declaration.isSubstitutionOrIntersectionOverride) { val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution ?: return declaration.returnTypeRef as FirResolvedTypeRef