From 0543b73099a7df8c7153d35dc6d4f431a336fd69 Mon Sep 17 00:00:00 2001 From: Wojciech Lopata Date: Wed, 17 Apr 2013 09:22:33 +0200 Subject: [PATCH] Fix failing assertion in ChangeFunctionTypeFix --- .../jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java | 2 +- .../jet/plugin/quickfix/ChangeVariableTypeFix.java | 4 ++-- .../src/org/jetbrains/jet/plugin/quickfix/QuickFixes.java | 4 +++- .../afterPropertyReturnTypeMismatchOnOverride.kt | 8 ++++++++ .../beforePropertyReturnTypeMismatchOnOverride.kt | 8 ++++++++ .../jet/plugin/quickfix/QuickFixTestGenerated.java | 5 +++++ 6 files changed, 27 insertions(+), 4 deletions(-) create mode 100644 idea/testData/quickfix/override/typeMismatchOnOverride/afterPropertyReturnTypeMismatchOnOverride.kt create mode 100644 idea/testData/quickfix/override/typeMismatchOnOverride/beforePropertyReturnTypeMismatchOnOverride.kt diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java index c3b51bc32a2..f6fc8ceec87 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeFunctionReturnTypeFix.java @@ -164,7 +164,7 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction @Override public IntentionAction createAction(Diagnostic diagnostic) { JetFunction function = QuickFixUtil.getParentElementOfType(diagnostic, JetFunction.class); - assert function != null : "RETURN_TYPE_MISMATCH_ON_OVERRIDE reported on element that is not within any function"; + if (function == null) return null; BindingContext context = KotlinCacheManagerUtil.getDeclarationsBindingContext(function); JetType matchingReturnType = QuickFixUtil.findLowerBoundOfOverriddenCallablesReturnTypes(context, function); return matchingReturnType == null ? null : new ChangeFunctionReturnTypeFix(function, matchingReturnType); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java index 42fce58f2d9..c3423fa6b28 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/ChangeVariableTypeFix.java @@ -85,13 +85,13 @@ public class ChangeVariableTypeFix extends JetIntentionAction = 42 +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java index 2dbf93df4a3..8709164432d 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/QuickFixTestGenerated.java @@ -782,6 +782,11 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/quickfix/override/typeMismatchOnOverride"), Pattern.compile("^before(\\w+)\\.kt$"), true); } + @TestMetadata("beforePropertyReturnTypeMismatchOnOverride.kt") + public void testPropertyReturnTypeMismatchOnOverride() throws Exception { + doTest("idea/testData/quickfix/override/typeMismatchOnOverride/beforePropertyReturnTypeMismatchOnOverride.kt"); + } + @TestMetadata("beforePropertyTypeMismatchOnOverrideIntLong.kt") public void testPropertyTypeMismatchOnOverrideIntLong() throws Exception { doTest("idea/testData/quickfix/override/typeMismatchOnOverride/beforePropertyTypeMismatchOnOverrideIntLong.kt");