JVM_IR KT-45446 don't erase captured var if it's dead code
This commit is contained in:
committed by
TeamCityServer
parent
6bd34db725
commit
7fabc19326
+3
-1
@@ -57,6 +57,8 @@ class CapturedVarsOptimizationMethodTransformer : MethodTransformer() {
|
||||
override fun onUseAsTainted() {
|
||||
hazard = true
|
||||
}
|
||||
|
||||
fun canRewrite() = !hazard && initCallInsn != null
|
||||
}
|
||||
|
||||
private class Transformer(private val internalClassName: String, private val methodNode: MethodNode) {
|
||||
@@ -72,7 +74,7 @@ class CapturedVarsOptimizationMethodTransformer : MethodTransformer() {
|
||||
assignLocalVars(frames)
|
||||
|
||||
for (refValue in refValues) {
|
||||
if (!refValue.hazard) {
|
||||
if (refValue.canRewrite()) {
|
||||
rewriteRefValue(refValue)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user