Change parameter type: Make parameter type nullable (instead of Nothing?) if null is passed as an argument
#KT-6634 Fixed
This commit is contained in:
+3
-1
@@ -152,7 +152,9 @@ public class QuickFixFactoryForTypeMismatchError extends JetIntentionActionsFact
|
|||||||
ValueArgument valueArgument = CallUtilPackage.getValueArgumentForExpression(resolvedCall.getCall(), argumentExpression);
|
ValueArgument valueArgument = CallUtilPackage.getValueArgumentForExpression(resolvedCall.getCall(), argumentExpression);
|
||||||
if (valueArgument != null) {
|
if (valueArgument != null) {
|
||||||
JetParameter correspondingParameter = QuickFixUtil.getParameterDeclarationForValueArgument(resolvedCall, valueArgument);
|
JetParameter correspondingParameter = QuickFixUtil.getParameterDeclarationForValueArgument(resolvedCall, valueArgument);
|
||||||
JetType valueArgumentType = context.get(BindingContext.EXPRESSION_TYPE, valueArgument.getArgumentExpression());
|
JetType valueArgumentType = diagnostic.getFactory() == Errors.NULL_FOR_NONNULL_TYPE
|
||||||
|
? expressionType
|
||||||
|
: context.get(BindingContext.EXPRESSION_TYPE, valueArgument.getArgumentExpression());
|
||||||
if (correspondingParameter != null && valueArgumentType != null) {
|
if (correspondingParameter != null && valueArgumentType != null) {
|
||||||
actions.add(new ChangeParameterTypeFix(correspondingParameter, valueArgumentType));
|
actions.add(new ChangeParameterTypeFix(correspondingParameter, valueArgumentType));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// "Change parameter 's' type of primary constructor of class 'Foo' to 'String?'" "true"
|
||||||
|
class Foo(s: String?) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
Foo(null)
|
||||||
|
}
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// "Change parameter 's' type of primary constructor of class 'Foo' to 'String?'" "true"
|
||||||
|
class Foo(s: String) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun test() {
|
||||||
|
Foo(<caret>null)
|
||||||
|
}
|
||||||
@@ -4322,6 +4322,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
|
|||||||
doTest(fileName);
|
doTest(fileName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("beforeNullArgumentForNonNullParameter.kt")
|
||||||
|
public void testNullArgumentForNonNullParameter() throws Exception {
|
||||||
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/typeMismatch/beforeNullArgumentForNonNullParameter.kt");
|
||||||
|
doTest(fileName);
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("beforePropertyTypeMismatch.kt")
|
@TestMetadata("beforePropertyTypeMismatch.kt")
|
||||||
public void testPropertyTypeMismatch() throws Exception {
|
public void testPropertyTypeMismatch() throws Exception {
|
||||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/typeMismatch/beforePropertyTypeMismatch.kt");
|
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/typeMismatch/beforePropertyTypeMismatch.kt");
|
||||||
|
|||||||
Reference in New Issue
Block a user