diff --git a/idea/src/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyAction.java b/idea/src/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyAction.java index dde0ca01a98..aa233d08c04 100644 --- a/idea/src/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyAction.java +++ b/idea/src/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyAction.java @@ -56,6 +56,10 @@ public class SpecifyTypeExplicitlyAction extends PsiElementBaseIntentionAction { @Override public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) { + JetTypeReference typeRefParent = PsiTreeUtil.getTopmostParentOfType(element, JetTypeReference.class); + if (typeRefParent != null) { + element = typeRefParent; + } PsiElement parent = element.getParent(); JetType type = getTypeForDeclaration((JetNamedDeclaration) parent); if (ErrorUtils.isErrorType(type)) { @@ -91,6 +95,10 @@ public class SpecifyTypeExplicitlyAction extends PsiElementBaseIntentionAction { @Override public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) { + JetTypeReference typeRefParent = PsiTreeUtil.getTopmostParentOfType(element, JetTypeReference.class); + if (typeRefParent != null) { + element = typeRefParent; + } PsiElement parent = element.getParent(); if (!(parent instanceof JetNamedDeclaration)) { return false; diff --git a/idea/testData/intentions/specifyType/afterOnType.kt b/idea/testData/intentions/specifyType/afterOnType.kt new file mode 100644 index 00000000000..06783fec0ae --- /dev/null +++ b/idea/testData/intentions/specifyType/afterOnType.kt @@ -0,0 +1,4 @@ +// "Remove Explicitly Specified Type" "true" +import java.util.Map + +val x = null \ No newline at end of file diff --git a/idea/testData/intentions/specifyType/beforeOnType.kt b/idea/testData/intentions/specifyType/beforeOnType.kt new file mode 100644 index 00000000000..16cd9c6c67b --- /dev/null +++ b/idea/testData/intentions/specifyType/beforeOnType.kt @@ -0,0 +1,4 @@ +// "Remove Explicitly Specified Type" "true" +import java.util.Map + +val x : Map.Entryng, Int>? = null \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyTest.java b/idea/tests/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyTest.java index 191a393d646..9117c5393bf 100644 --- a/idea/tests/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/intentions/SpecifyTypeExplicitlyTest.java @@ -53,6 +53,10 @@ public class SpecifyTypeExplicitlyTest extends LightIntentionActionTestCase { doTest(); } + public void testOnType() { + doTest(); + } + @Override protected String getTestDataPath() { return PluginTestCaseBase.getTestDataPathBase() + "/intentions/";