From 18ed3055ee22affc258213f45062307d98ac9069 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Fri, 23 Oct 2015 20:08:17 +0300 Subject: [PATCH] Introduce Variable: Allow introduction of variables with 'dynamic' type #KT-8483 Fixed --- .../introduceVariable/KotlinIntroduceVariableHandler.java | 1 + idea/testData/refactoring/introduceVariable/dynamicType.kt | 5 +++++ .../refactoring/introduceVariable/dynamicType.kt.after | 6 ++++++ .../refactoring/introduce/JetExtractionTestGenerated.java | 6 ++++++ 4 files changed, 18 insertions(+) create mode 100644 idea/testData/refactoring/introduceVariable/dynamicType.kt create mode 100644 idea/testData/refactoring/introduceVariable/dynamicType.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java index 32ed52d634f..970d7715d5d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/introduceVariable/KotlinIntroduceVariableHandler.java @@ -36,6 +36,7 @@ import kotlin.Unit; import kotlin.jvm.functions.Function1; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import org.jetbrains.kotlin.analyzer.AnalysisResult; import org.jetbrains.kotlin.builtins.KotlinBuiltIns; import org.jetbrains.kotlin.idea.analysis.AnalyzerUtilKt; import org.jetbrains.kotlin.idea.caches.resolve.ResolutionUtils; diff --git a/idea/testData/refactoring/introduceVariable/dynamicType.kt b/idea/testData/refactoring/introduceVariable/dynamicType.kt new file mode 100644 index 00000000000..374bfbd215c --- /dev/null +++ b/idea/testData/refactoring/introduceVariable/dynamicType.kt @@ -0,0 +1,5 @@ +fun foo(): dynamic = 1 + +fun test(): Any? { + return foo() +} \ No newline at end of file diff --git a/idea/testData/refactoring/introduceVariable/dynamicType.kt.after b/idea/testData/refactoring/introduceVariable/dynamicType.kt.after new file mode 100644 index 00000000000..ba350a638fb --- /dev/null +++ b/idea/testData/refactoring/introduceVariable/dynamicType.kt.after @@ -0,0 +1,6 @@ +fun foo(): dynamic = 1 + +fun test(): Any? { + val foo = foo() + return foo +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java index e8e5df11aa6..3fb972707d9 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/JetExtractionTestGenerated.java @@ -115,6 +115,12 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest { doIntroduceVariableTest(fileName); } + @TestMetadata("dynamicType.kt") + public void testDynamicType() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/dynamicType.kt"); + doIntroduceVariableTest(fileName); + } + @TestMetadata("FewOccurrences.kt") public void testFewOccurrences() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/refactoring/introduceVariable/FewOccurrences.kt");