~ perf
diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt
index b368064..5b9e682 100644
--- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt
+++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt
@@ -91,11 +91,9 @@
     inline fun <R> withAssignmentRhs(block: () -> R): R {
         val oldMode = this.isInsideAssignmentRhs
         this.isInsideAssignmentRhs = true
-        return try {
-            block()
-        } finally {
-            this.isInsideAssignmentRhs = oldMode
-        }
+        val result = block()
+        this.isInsideAssignmentRhs = oldMode
+        return result
     }
 
     /**
@@ -109,11 +107,8 @@
     inline fun withClassHeader(clazz: FirRegularClass, action: () -> Unit) {
         val old = insideClassHeader
         insideClassHeader = true
-        try {
-            withContainer(clazz, action)
-        } finally {
-            insideClassHeader = old
-        }
+        withContainer(clazz, action)
+        insideClassHeader = old
     }
 
     val anonymousFunctionsAnalyzedInDependentContext: MutableSet<FirFunctionSymbol<*>> = mutableSetOf()
@@ -129,30 +124,24 @@
     inline fun <T> withTowerDataContexts(newContexts: FirRegularTowerDataContexts, f: () -> T): T {
         val old = regularTowerDataContexts
         regularTowerDataContexts = newContexts
-        return try {
-            f()
-        } finally {
-            regularTowerDataContexts = old
-        }
+        val result = f()
+        regularTowerDataContexts = old
+        return result
     }
 
     inline fun <R> withLambdaBeingAnalyzedInDependentContext(lambda: FirAnonymousFunctionSymbol, l: () -> R): R {
         anonymousFunctionsAnalyzedInDependentContext.add(lambda)
-        return try {
-            l()
-        } finally {
-            anonymousFunctionsAnalyzedInDependentContext.remove(lambda)
-        }
+        val result = l()
+        anonymousFunctionsAnalyzedInDependentContext.remove(lambda)
+        return result
     }
 
     @PrivateForInline
     inline fun <T> withContainer(declaration: FirDeclaration, f: () -> T): T {
         containers.add(declaration)
-        return try {
-            f()
-        } finally {
-            containers.removeLast()
-        }
+        val result = f()
+        containers.removeLast()
+        return result
     }
 
     @PrivateForInline
@@ -160,31 +149,25 @@
         val oldContainingClass = containingRegularClass
         containers.add(declaration)
         containingRegularClass = declaration
-        return try {
-            f()
-        } finally {
-            containers.removeLast()
-            containingRegularClass = oldContainingClass
-        }
+        val result = f()
+        containers.removeLast()
+        containingRegularClass = oldContainingClass
+        return result
     }
 
     inline fun <T> withContainingClass(declaration: FirClass, f: () -> T): T {
         containingClassDeclarations.add(declaration)
-        return try {
-            f()
-        } finally {
-            containingClassDeclarations.removeLast()
-        }
+        val result = f()
+        containingClassDeclarations.removeLast()
+        return result
     }
 
     @PrivateForInline
     inline fun <R> withTowerDataCleanup(l: () -> R): R {
         val initialContext = towerDataContext
-        return try {
-            l()
-        } finally {
-            replaceTowerDataContext(initialContext)
-        }
+        val result = l()
+        replaceTowerDataContext(initialContext)
+        return result
     }
 
     @PrivateForInline
@@ -198,11 +181,9 @@
     @PrivateForInline
     inline fun <R> withTowerDataModeCleanup(l: () -> R): R {
         val initialMode = towerDataMode
-        return try {
-            l()
-        } finally {
-            towerDataMode = initialMode
-        }
+        val result = l()
+        towerDataMode = initialMode
+        return result
     }
 
     @PrivateForInline
@@ -365,11 +346,9 @@
     inline fun <R, S : FirInferenceSession> withInferenceSession(inferenceSession: S, block: S.() -> R): R {
         val oldSession = this.inferenceSession
         this.inferenceSession = inferenceSession
-        return try {
-            inferenceSession.block()
-        } finally {
-            this.inferenceSession = oldSession
-        }
+        val result = inferenceSession.block()
+        this.inferenceSession = oldSession
+        return result
     }
 
     @OptIn(PrivateForInline::class)
@@ -410,14 +389,12 @@
     ): T {
         val oldReturnTypeCalculator = this.returnTypeCalculator
         val oldTargetedLocalClasses = this.targetedLocalClasses
-        return try {
-            this.returnTypeCalculator = returnTypeCalculator
-            this.targetedLocalClasses = targetedLocalClasses
-            f()
-        } finally {
-            this.returnTypeCalculator = oldReturnTypeCalculator
-            this.targetedLocalClasses = oldTargetedLocalClasses
-        }
+        this.returnTypeCalculator = returnTypeCalculator
+        this.targetedLocalClasses = targetedLocalClasses
+        val result = f()
+        this.returnTypeCalculator = oldReturnTypeCalculator
+        this.targetedLocalClasses = oldTargetedLocalClasses
+        return result
     }
 
     @OptIn(PrivateForInline::class)
@@ -426,12 +403,10 @@
         f: () -> T,
     ): T {
         val oldReturnTypeCalculator = this.returnTypeCalculator
-        return try {
-            this.returnTypeCalculator = returnTypeCalculator
-            f()
-        } finally {
-            this.returnTypeCalculator = oldReturnTypeCalculator
-        }
+        this.returnTypeCalculator = returnTypeCalculator
+        val result = f()
+        this.returnTypeCalculator = oldReturnTypeCalculator
+        return result
     }
 
     // withElement PUBLIC API