[FIR] Minor. Wrap withScopeCleanup with try-finally
This commit is contained in:
+8
-6
@@ -731,13 +731,15 @@ open class FirBodyResolveTransformer(
|
|||||||
|
|
||||||
protected inline fun <T> withScopeCleanup(scopes: MutableList<*>, crossinline l: () -> T): T {
|
protected inline fun <T> withScopeCleanup(scopes: MutableList<*>, crossinline l: () -> T): T {
|
||||||
val sizeBefore = scopes.size
|
val sizeBefore = scopes.size
|
||||||
val result = l()
|
return try {
|
||||||
val size = scopes.size
|
l()
|
||||||
assert(size >= sizeBefore)
|
} finally {
|
||||||
repeat(size - sizeBefore) {
|
val size = scopes.size
|
||||||
scopes.let { it.removeAt(it.size - 1) }
|
assert(size >= sizeBefore)
|
||||||
|
repeat(size - sizeBefore) {
|
||||||
|
scopes.let { it.removeAt(it.size - 1) }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun <T> storeTypeFromCallee(access: T) where T : FirQualifiedAccess, T : FirExpression {
|
internal fun <T> storeTypeFromCallee(access: T) where T : FirQualifiedAccess, T : FirExpression {
|
||||||
|
|||||||
Reference in New Issue
Block a user