diff --git a/idea/testData/codeInsight/outOfBlock/FunNoType_Block.kt b/idea/testData/codeInsight/outOfBlock/FunNoType_Block.kt new file mode 100644 index 00000000000..fb591ee520d --- /dev/null +++ b/idea/testData/codeInsight/outOfBlock/FunNoType_Block.kt @@ -0,0 +1,6 @@ +// TRUE +fun test() { + +} + +// TYPE: \b \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOutOfBlockModificationTest.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOutOfBlockModificationTest.java index 22ac460b3a5..72a3d84f296 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOutOfBlockModificationTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/AbstractOutOfBlockModificationTest.java @@ -17,10 +17,12 @@ package org.jetbrains.jet.plugin.codeInsight; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiManager; import com.intellij.psi.impl.PsiModificationTrackerImpl; +import org.jetbrains.jet.InTextDirectivesUtils; import org.jetbrains.jet.plugin.JetLightCodeInsightFixtureTestCase; import org.jetbrains.jet.plugin.PluginTestCaseBase; @@ -53,7 +55,7 @@ public abstract class AbstractOutOfBlockModificationTest extends JetLightCodeIns long oobBeforeType = tracker.getOutOfCodeBlockModificationCount(); long modificationCountBeforeType = tracker.getModificationCount(); - myFixture.type('a'); + myFixture.type(getStringToType()); PsiDocumentManager.getInstance(myFixture.getProject()).commitDocument(myFixture.getDocument(myFixture.getFile())); long oobAfterCount = tracker.getOutOfCodeBlockModificationCount(); @@ -65,6 +67,13 @@ public abstract class AbstractOutOfBlockModificationTest extends JetLightCodeIns expectedOutOfBlock, oobBeforeType != oobAfterCount); } + private String getStringToType() { + String text = myFixture.getDocument(myFixture.getFile()).getText(); + String typeDirectives = InTextDirectivesUtils.findStringWithPrefixes(text, "TYPE:"); + + return typeDirectives != null ? StringUtil.unescapeStringCharacters(typeDirectives) : "a"; + } + private boolean getExpectedOutOfBlockResult() { String text = myFixture.getDocument(myFixture.getFile()).getText(); diff --git a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTestGenerated.java index 8784233334a..3ca0f05736a 100644 --- a/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/codeInsight/OutOfBlockModificationTestGenerated.java @@ -60,6 +60,12 @@ public class OutOfBlockModificationTestGenerated extends AbstractOutOfBlockModif doTest(fileName); } + @TestMetadata("FunNoType_Block.kt") + public void testFunNoType_Block() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/codeInsight/outOfBlock/FunNoType_Block.kt"); + doTest(fileName); + } + @TestMetadata("FunNoType_Block_Class.kt") public void testFunNoType_Block_Class() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/codeInsight/outOfBlock/FunNoType_Block_Class.kt");