From 8d551c8947ac42acff7337b4bf636cc4451090f8 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Fri, 14 Sep 2012 20:00:14 +0400 Subject: [PATCH] Don't create OutOfBlock modification inside mulitdeclarations --- .../jetbrains/jet/lang/psi/JetModifiableBlockHelper.java | 3 +++ .../codeInsight/outOfBlock/InFunInMultiDeclaration.kt | 8 ++++++++ .../plugin/codeInsight/OutOfBlockModificationTest.java | 4 ++++ 3 files changed, 15 insertions(+) create mode 100644 idea/testData/codeInsight/outOfBlock/InFunInMultiDeclaration.kt diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetModifiableBlockHelper.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetModifiableBlockHelper.java index eace2c39a20..c02879af70f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetModifiableBlockHelper.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetModifiableBlockHelper.java @@ -51,6 +51,9 @@ public final class JetModifiableBlockHelper { return shouldChangeModificationCount(property); } + else if (declaration instanceof JetMultiDeclaration || declaration instanceof JetMultiDeclarationEntry) { + return shouldChangeModificationCount(declaration); + } else if (declaration instanceof JetFunctionLiteral) { // TODO: Check return type return shouldChangeModificationCount(declaration); diff --git a/idea/testData/codeInsight/outOfBlock/InFunInMultiDeclaration.kt b/idea/testData/codeInsight/outOfBlock/InFunInMultiDeclaration.kt new file mode 100644 index 00000000000..216da706503 --- /dev/null +++ b/idea/testData/codeInsight/outOfBlock/InFunInMultiDeclaration.kt @@ -0,0 +1,8 @@ +// FALSE + +data class Test(val a : Int, val b : Int) + +fun a() { + val (test, other) = Test(11, 12) +} + diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTest.java index 59976e72bf5..55cc415f851 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTest.java @@ -54,6 +54,10 @@ public class OutOfBlockModificationTest extends LightCodeInsightFixtureTestCase doTest(); } + public void testInFunInMultiDeclaration() { + doTest(); + } + public void testInFunWithInference() { doTest(); }