From beeba23cf042e7ccd90e0b77ca2d773984e3092b Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Fri, 2 Aug 2019 12:06:45 +0300 Subject: [PATCH] [FIR] Minor. Wrap `withScopeCleanup` with try-finally --- .../transformers/FirBodyResolveTransformer.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) 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 {