K2: fix implicit body resolve in case delegated property is on the path

#KT-54212 Fixed
This commit is contained in:
Mikhail Glukhikh
2022-09-29 10:51:34 +02:00
parent 75a29434bd
commit 85965d74f6
2 changed files with 8 additions and 2 deletions
@@ -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|
@@ -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