From 190360b1d47607ccd806122feb65ea7e69eae739 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Fri, 22 Jun 2012 19:02:03 +0400 Subject: [PATCH] EA-35501 fixed (checkBackingField assert) --- .../lang/cfg/JetFlowInformationProvider.java | 3 ++- .../checkBackingFieldException.jet | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError/checkBackingFieldException.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java index be6a8f0028b..de2f53bf502 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/cfg/JetFlowInformationProvider.java @@ -367,7 +367,8 @@ public class JetFlowInformationProvider { JetNamedDeclaration parentDeclaration = PsiTreeUtil.getParentOfType(element, JetNamedDeclaration.class); DeclarationDescriptor declarationDescriptor = trace.get(BindingContext.DECLARATION_TO_DESCRIPTOR, parentDeclaration); - assert declarationDescriptor != null; + if (declarationDescriptor == null) return false; + DeclarationDescriptor containingDeclaration = variableDescriptor.getContainingDeclaration(); if ((containingDeclaration instanceof ClassDescriptor) && DescriptorUtils.isAncestor(containingDeclaration, declarationDescriptor, false)) { return false; diff --git a/compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError/checkBackingFieldException.jet b/compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError/checkBackingFieldException.jet new file mode 100644 index 00000000000..edeb9fcc3d4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/incompleteCode/diagnosticWithSyntaxError/checkBackingFieldException.jet @@ -0,0 +1,17 @@ +package h + +class Square() { + var size : Double = + set(value) { + $area = size * size + } + + var area : Double + private set +} + +fun main(args : Array) { + val s = Square() + + s.size = 2.0 +} \ No newline at end of file