diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index e03192283cc..aa6f6f20998 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -731,13 +731,15 @@ open class FirBodyResolveTransformer( protected inline fun withScopeCleanup(scopes: MutableList<*>, crossinline l: () -> T): T { val sizeBefore = scopes.size - val result = l() - val size = scopes.size - assert(size >= sizeBefore) - repeat(size - sizeBefore) { - scopes.let { it.removeAt(it.size - 1) } + return try { + l() + } finally { + val size = scopes.size + assert(size >= sizeBefore) + repeat(size - sizeBefore) { + scopes.let { it.removeAt(it.size - 1) } + } } - return result } internal fun storeTypeFromCallee(access: T) where T : FirQualifiedAccess, T : FirExpression {