diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt index c19721a8470..2ef84eae118 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/Utils.kt @@ -79,10 +79,10 @@ fun getLambdaByImplicitItReference(expression: KtNameReferenceExpression) = resolveToAutoCreatedItDescriptor(expression)?.containingDeclaration?.source?.getPsi() as? KtFunctionLiteral // returns assignment which replaces initializer -fun splitPropertyDeclaration(property: KtProperty): KtBinaryExpression { +fun splitPropertyDeclaration(property: KtProperty): KtBinaryExpression? { val parent = property.parent - val initializer = property.initializer!! + val initializer = property.initializer ?: return null val explicitTypeToSet = if (property.typeReference != null) null else initializer.analyze().getType(initializer) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt index b74970d6784..f7bfbc8bbc2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToIfIntention.kt @@ -36,6 +36,7 @@ class UnfoldPropertyToIfIntention : SelfTargetingRangeIntention(KtPr override fun applyTo(element: KtProperty, editor: Editor?) { val assignment = splitPropertyDeclaration(element) + ?: return // if element initializer is null the apply should not be invoked. If suddenly invoked splitPropertyDeclaration will return null BranchedUnfoldingUtils.unfoldAssignmentToIf(assignment, editor) } } \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt index e3ace79253e..1c5b90a422d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/branchedTransformations/intentions/UnfoldPropertyToWhenIntention.kt @@ -38,7 +38,7 @@ class UnfoldPropertyToWhenIntention : SelfTargetingRangeIntention(Kt } override fun applyTo(element: KtProperty, editor: Editor?) { - val assignment = splitPropertyDeclaration(element) + val assignment = splitPropertyDeclaration(element) ?: return BranchedUnfoldingUtils.unfoldAssignmentToWhen(assignment, editor) } } \ No newline at end of file