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 48991ca2bcd..534d65fb0ee 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 @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.contracts.runContractResolv import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator import org.jetbrains.kotlin.fir.scopes.fakeOverrideSubstitution import org.jetbrains.kotlin.fir.delegatedWrapperData +import org.jetbrains.kotlin.fir.scopes.impl.originalForWrappedIntegerOperator import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.symbols.lazyResolveToPhase @@ -202,6 +203,14 @@ open class ReturnTypeCalculatorWithJump( ) } + if (declaration is FirSimpleFunction) { + // Effectively this logic is redundant now, because all methods of Int have an explicit return type, + // so explicit call here just to be sure (probably some method from Int will have an implicit type) + declaration.originalForWrappedIntegerOperator?.let { + tryCalculateReturnTypeOrNull(it.fir) + } + } + resolvedToContractsIfNecessary(declaration) val returnTypeRef = declaration.returnTypeRef