K2: fix implicit body resolve in case delegated property is on the path
#KT-54212 Fixed
This commit is contained in:
+2
-2
@@ -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|
|
||||
|
||||
|
||||
+6
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user