From a96bd546a1d11011ae9276c1efdb0831f03ab422 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 7 Jul 2015 17:36:17 +0300 Subject: [PATCH] Change Signature: Avoid explicit Unit return type --- .../changeSignature/usages/JetCallableDefinitionUsage.java | 3 ++- .../JavaMethodOverridesOmitUnitTypeAfter.1.kt | 5 +++++ .../JavaMethodOverridesOmitUnitTypeAfter.java | 5 +++++ .../JavaMethodOverridesOmitUnitTypeBefore.1.kt | 5 +++++ .../JavaMethodOverridesOmitUnitTypeBefore.java | 5 +++++ .../changeSignature/JavaParameterPropagationAfter.1.kt | 2 +- .../refactoring/changeSignature/JetChangeSignatureTest.java | 4 ++++ 7 files changed, 27 insertions(+), 2 deletions(-) create mode 100644 idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.1.kt create mode 100644 idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.java create mode 100644 idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.1.kt create mode 100644 idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.java diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java index bd89a3ed30c..d25a1132d0b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/changeSignature/usages/JetCallableDefinitionUsage.java @@ -38,6 +38,7 @@ import org.jetbrains.kotlin.idea.refactoring.changeSignature.ChangeSignaturePack import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetChangeInfo; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetParameterInfo; import org.jetbrains.kotlin.idea.refactoring.changeSignature.JetValVar; +import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers; import org.jetbrains.kotlin.idea.util.ShortenReferences; import org.jetbrains.kotlin.idea.util.ShortenReferences.Options; import org.jetbrains.kotlin.lexer.JetModifierKeywordToken; @@ -236,7 +237,7 @@ public class JetCallableDefinitionUsage extends JetUsageIn String returnTypeText = changeInfo.renderReturnType((JetCallableDefinitionUsage) this); //TODO use ChangeFunctionReturnTypeFix.invoke when JetTypeCodeFragment.getType() is ready - if (!KotlinBuiltIns.getInstance().getUnitType().toString().equals(returnTypeText)) { + if (!(returnTypeText.equals("Unit") || returnTypeText.equals("kotlin.Unit"))) { ShortenPackage.addToShorteningWaitSet( callable.setTypeReference(JetPsiFactory(callable).createType(returnTypeText)), Options.DEFAULT diff --git a/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.1.kt b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.1.kt new file mode 100644 index 00000000000..7745d18a451 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.1.kt @@ -0,0 +1,5 @@ +open class X: A() { + override fun foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.java b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.java new file mode 100644 index 00000000000..3545f8c9d1a --- /dev/null +++ b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeAfter.java @@ -0,0 +1,5 @@ +class A { + void foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.1.kt b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.1.kt new file mode 100644 index 00000000000..7745d18a451 --- /dev/null +++ b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.1.kt @@ -0,0 +1,5 @@ +open class X: A() { + override fun foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.java b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.java new file mode 100644 index 00000000000..3545f8c9d1a --- /dev/null +++ b/idea/testData/refactoring/changeSignature/JavaMethodOverridesOmitUnitTypeBefore.java @@ -0,0 +1,5 @@ +class A { + void foo() { + + } +} \ No newline at end of file diff --git a/idea/testData/refactoring/changeSignature/JavaParameterPropagationAfter.1.kt b/idea/testData/refactoring/changeSignature/JavaParameterPropagationAfter.1.kt index d6c4345f095..26d1d3cfb9a 100644 --- a/idea/testData/refactoring/changeSignature/JavaParameterPropagationAfter.1.kt +++ b/idea/testData/refactoring/changeSignature/JavaParameterPropagationAfter.1.kt @@ -1,5 +1,5 @@ open class C: A() { - override fun foo(n: Int, s: String): Unit { + override fun foo(n: Int, s: String) { } diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java index f74fb00a8c4..e54dd793e57 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/changeSignature/JetChangeSignatureTest.java @@ -1296,6 +1296,10 @@ public class JetChangeSignatureTest extends KotlinCodeInsightTestCase { doTest(changeInfo); } + public void testJavaMethodOverridesOmitUnitType() throws Exception { + doJavaTest(new JavaRefactoringProvider()); + } + @NotNull private LinkedHashSet findCallers(@NotNull PsiMethod method) { KotlinMethodNode rootNode =