diff --git a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java index 7d65de9bdfb..60979acfde0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java +++ b/idea/src/org/jetbrains/kotlin/idea/liveTemplates/JetTemplateContextType.java @@ -59,16 +59,14 @@ public abstract class JetTemplateContextType extends TemplateContextType { else if (element instanceof LeafPsiElement) { IElementType elementType = ((LeafPsiElement) element).getElementType(); if (elementType == JetTokens.IDENTIFIER) { - if (element.getParent() instanceof JetReferenceExpression) { - PsiElement parentOfParent = element.getParent().getParent(); + PsiElement parent = element.getParent(); + if (parent instanceof JetReferenceExpression) { + PsiElement parentOfParent = parent.getParent(); JetQualifiedExpression qualifiedExpression = PsiTreeUtil.getParentOfType(element, JetQualifiedExpression.class); if (qualifiedExpression != null && qualifiedExpression.getSelectorExpression() == parentOfParent) { return false; } } - else { - return false; - } } } return element != null && isInContext(element); diff --git a/idea/testData/templates/context/InExpression.kt b/idea/testData/templates/context/InExpression.kt new file mode 100644 index 00000000000..3f464f55426 --- /dev/null +++ b/idea/testData/templates/context/InExpression.kt @@ -0,0 +1 @@ +val v = xxx \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LiveTemplatesContextTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LiveTemplatesContextTest.kt index 883e7d2ae73..6bca71ab2db 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LiveTemplatesContextTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/LiveTemplatesContextTest.kt @@ -16,13 +16,12 @@ package org.jetbrains.kotlin.idea.codeInsight -import org.jetbrains.kotlin.idea.test.JetLightCodeInsightFixtureTestCase -import org.jetbrains.kotlin.idea.test.PluginTestCaseBase - -import java.io.File -import org.jetbrains.kotlin.idea.liveTemplates.JetTemplateContextType import com.intellij.codeInsight.template.TemplateContextType import com.intellij.testFramework.UsefulTestCase +import org.jetbrains.kotlin.idea.liveTemplates.JetTemplateContextType +import org.jetbrains.kotlin.idea.test.JetLightCodeInsightFixtureTestCase +import org.jetbrains.kotlin.idea.test.PluginTestCaseBase +import java.io.File public class LiveTemplatesContextTest : JetLightCodeInsightFixtureTestCase() { override fun getTestDataPath(): String = @@ -30,14 +29,23 @@ public class LiveTemplatesContextTest : JetLightCodeInsightFixtureTestCase() { public fun testInDocComment() { myFixture.configureByFile(getTestName(false) + ".kt") - assertInContexts(javaClass(), javaClass()) + assertInContexts( + JetTemplateContextType.Generic::class.java, + JetTemplateContextType.Comment::class.java) } public fun testTopLevel() { myFixture.configureByFile(getTestName(false) + ".kt") - assertInContexts(javaClass(), - javaClass(), - javaClass()) + assertInContexts( + JetTemplateContextType.Generic::class.java, + JetTemplateContextType.TopLevel::class.java) + } + + public fun testInExpression() { + myFixture.configureByFile(getTestName(false) + ".kt") + assertInContexts( + JetTemplateContextType.Generic::class.java, + JetTemplateContextType.Expression::class.java) } private fun assertInContexts(vararg expectedContexts: Class) {