Quick fix for implicit nothing with a test

This commit is contained in:
Mikhail Glukhikh
2015-10-09 17:42:55 +03:00
parent 64543e3f52
commit 82c0265cb3
5 changed files with 23 additions and 0 deletions
@@ -248,4 +248,16 @@ public class ChangeFunctionReturnTypeFix extends JetIntentionAction<JetFunction>
}
};
}
@NotNull
public static JetSingleIntentionActionFactory createFactoryForChangingReturnTypeToNothing() {
return new JetSingleIntentionActionFactory() {
@Nullable
@Override
public IntentionAction createAction(@NotNull Diagnostic diagnostic) {
JetFunction function = QuickFixUtil.getParentElementOfType(diagnostic, JetFunction.class);
return function == null ? null : new ChangeFunctionReturnTypeFix(function, getPlatform(function).getBuiltIns().getNothingType());
}
};
}
}
@@ -219,6 +219,7 @@ public class QuickFixRegistrar : QuickFixContributor {
COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH.registerFactory(ChangeFunctionReturnTypeFix.createFactoryForComponentFunctionReturnTypeMismatch())
HAS_NEXT_FUNCTION_TYPE_MISMATCH.registerFactory(ChangeFunctionReturnTypeFix.createFactoryForHasNextFunctionTypeMismatch())
COMPARE_TO_TYPE_MISMATCH.registerFactory(ChangeFunctionReturnTypeFix.createFactoryForCompareToTypeMismatch())
IMPLICIT_NOTHING_RETURN_TYPE.registerFactory(ChangeFunctionReturnTypeFix.createFactoryForChangingReturnTypeToNothing())
TOO_MANY_ARGUMENTS.registerFactory(ChangeFunctionSignatureFix.createFactory())
NO_VALUE_FOR_PARAMETER.registerFactory(ChangeFunctionSignatureFix.createFactory())
@@ -0,0 +1,2 @@
// "Specify return type explicitly" "true"
<caret>fun foo() = throw IllegalArgumentException()
@@ -0,0 +1,2 @@
// "Specify return type explicitly" "true"
fun foo(): Nothing<caret> = throw IllegalArgumentException()
@@ -525,6 +525,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
doTest(fileName);
}
@TestMetadata("addNothingReturnType.kt")
public void testAddNothingReturnType() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/changeSignature/addNothingReturnType.kt");
doTest(fileName);
}
@TestMetadata("addParameterNotAvailableForBuiltins.kt")
public void testAddParameterNotAvailableForBuiltins() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/changeSignature/addParameterNotAvailableForBuiltins.kt");