From b4ee0e86d2890b3aca7eab4e1910a90fedff2b55 Mon Sep 17 00:00:00 2001 From: Ilya Matveev Date: Wed, 1 Feb 2017 16:08:46 +0300 Subject: [PATCH] backend: Fix uninitialized property access in LocalDeclarationsLowering --- .../kotlin/backend/common/AbstractClosureRecorder.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/AbstractClosureRecorder.kt b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/AbstractClosureRecorder.kt index a85fe6878bd..7ba8096e676 100644 --- a/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/AbstractClosureRecorder.kt +++ b/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/common/AbstractClosureRecorder.kt @@ -94,11 +94,13 @@ abstract class AbstractClosureRecorder : IrElementVisitorVoid { } override fun visitVariableAccess(expression: IrValueAccessExpression) { - val closureBuilder = closuresStack.peek() ?: return + val closureBuilder = closuresStack.peek() - val variableDescriptor = expression.descriptor - if (variableDescriptor.containingDeclaration != closureBuilder.owner) { - closureBuilder.capturedValues.add(variableDescriptor) + if (closureBuilder != null) { + val variableDescriptor = expression.descriptor + if (variableDescriptor.containingDeclaration != closureBuilder.owner) { + closureBuilder.capturedValues.add(variableDescriptor) + } } expression.acceptChildrenVoid(this)