[FIR] Defer computation of enhanced return type when overridden has implicit return type
#KT-66048
This commit is contained in:
committed by
Space Team
parent
888cac6fc0
commit
885ba11d97
+2
-1
@@ -5,6 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||
|
||||
import org.jetbrains.kotlin.fir.canHaveDeferredReturnTypeCalculation
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||
@@ -36,7 +37,7 @@ class ReturnTypeCalculatorForFullBodyResolve private constructor(
|
||||
override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
||||
val returnTypeRef = declaration.returnTypeRef
|
||||
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
||||
if (declaration.origin.fromSupertypes) {
|
||||
if (declaration.canHaveDeferredReturnTypeCalculation) {
|
||||
return CallableCopyTypeCalculator.Forced.computeReturnType(declaration)
|
||||
}
|
||||
|
||||
|
||||
+5
-3
@@ -5,13 +5,15 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.scopes.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.canHaveDeferredReturnTypeCalculation
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.isCopyCreatedInScope
|
||||
import org.jetbrains.kotlin.fir.scopes.CallableCopyTypeCalculator
|
||||
import org.jetbrains.kotlin.fir.scopes.FirDelegatingTypeScope
|
||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
/**
|
||||
@@ -59,7 +61,7 @@ class FirScopeWithCallableCopyReturnTypeUpdater(
|
||||
}
|
||||
|
||||
private fun updateReturnType(declaration: FirCallableDeclaration) {
|
||||
if (declaration.isCopyCreatedInScope) {
|
||||
if (declaration.canHaveDeferredReturnTypeCalculation) {
|
||||
callableCopyTypeCalculator.computeReturnType(declaration)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user