diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVariableTypeFix.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVariableTypeFix.kt index ae2e4dd31d0..41c8953b65a 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVariableTypeFix.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/ChangeVariableTypeFix.kt @@ -23,26 +23,20 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.diagnostics.Errors import org.jetbrains.kotlin.idea.KotlinBundle import org.jetbrains.kotlin.idea.caches.resolve.analyze import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.caches.resolve.unsafeResolveToDescriptor import org.jetbrains.kotlin.idea.core.ShortenReferences import org.jetbrains.kotlin.idea.core.quickfix.QuickFixUtil -import org.jetbrains.kotlin.idea.intentions.branchedTransformations.isNullExpression -import org.jetbrains.kotlin.idea.references.mainReference import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers -import org.jetbrains.kotlin.lexer.KtTokens import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.getStrictParentOfType import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.types.ErrorUtils import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.checker.KotlinTypeChecker -import org.jetbrains.kotlin.types.typeUtil.makeNullable import java.util.* open class ChangeVariableTypeFix(element: KtCallableDeclaration, type: KotlinType) : KotlinQuickFixAction(element) { @@ -172,15 +166,4 @@ open class ChangeVariableTypeFix(element: KtCallableDeclaration, type: KotlinTyp return actions } } - - object VariableInitializedWithNullFactory : KotlinSingleIntentionActionFactory() { - override fun createAction(diagnostic: Diagnostic): IntentionAction? { - val binaryExpression = diagnostic.psiElement.getStrictParentOfType() ?: return null - val left = binaryExpression.left ?: return null - if (binaryExpression.operationToken != KtTokens.EQ) return null - val property = left.mainReference?.resolve() as? KtProperty ?: return null - if (!property.isVar || property.typeReference != null || !property.initializer.isNullExpression()) return null - return ChangeVariableTypeFix(property, Errors.TYPE_MISMATCH.cast(diagnostic).b.makeNullable()) - } - } } diff --git a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt index caf2ffe79f1..407da4888ea 100644 --- a/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt +++ b/idea/src/org/jetbrains/kotlin/idea/quickfix/QuickFixRegistrar.kt @@ -316,7 +316,6 @@ class QuickFixRegistrar : QuickFixContributor { PROPERTY_TYPE_MISMATCH_ON_OVERRIDE.registerFactory(changeVariableTypeFix) VAR_TYPE_MISMATCH_ON_OVERRIDE.registerFactory(changeVariableTypeFix) COMPONENT_FUNCTION_RETURN_TYPE_MISMATCH.registerFactory(ChangeVariableTypeFix.ComponentFunctionReturnTypeMismatchFactory) - TYPE_MISMATCH.registerFactory(ChangeVariableTypeFix.VariableInitializedWithNullFactory) val changeFunctionReturnTypeFix = ChangeCallableReturnTypeFix.ChangingReturnTypeToUnitFactory RETURN_TYPE_MISMATCH.registerFactory(changeFunctionReturnTypeFix) diff --git a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt b/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt deleted file mode 100644 index 14e204e747e..00000000000 --- a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt +++ /dev/null @@ -1,7 +0,0 @@ -// "Change type of 'x' to 'String?'" "true" -fun foo(condition: Boolean) { - var x = null - if (condition) { - x = "abc" - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt.after b/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt.after deleted file mode 100644 index 9a3c8499cda..00000000000 --- a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt.after +++ /dev/null @@ -1,7 +0,0 @@ -// "Change type of 'x' to 'String?'" "true" -fun foo(condition: Boolean) { - var x: String? = null - if (condition) { - x = "abc" - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull2.kt b/idea/testData/quickfix/typeMismatch/variableInitializedWithNull2.kt deleted file mode 100644 index 7285342bf20..00000000000 --- a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull2.kt +++ /dev/null @@ -1,12 +0,0 @@ -// "Change type of 'x' to 'String?'" "false" -// ACTION: Remove braces from 'if' statement -// ACTION: To raw string literal -// ACTION: Convert assignment to assignment expression -// ERROR: Type mismatch: inferred type is String but Nothing? was expected -// ERROR: Val cannot be reassigned -fun foo(condition: Boolean) { - val x = null - if (condition) { - x = "abc" - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull3.kt b/idea/testData/quickfix/typeMismatch/variableInitializedWithNull3.kt deleted file mode 100644 index 7ce29a77a3f..00000000000 --- a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull3.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change type of 'x' to 'String?'" "false" -// ACTION: Remove braces from 'if' statement -// ACTION: To raw string literal -// ACTION: Convert assignment to assignment expression -// ERROR: Type mismatch: inferred type is String but Int? was expected -fun foo(condition: Boolean) { - var x: Int? = null - if (condition) { - x = "abc" - } -} \ No newline at end of file diff --git a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull4.kt b/idea/testData/quickfix/typeMismatch/variableInitializedWithNull4.kt deleted file mode 100644 index 2d3c5af4d67..00000000000 --- a/idea/testData/quickfix/typeMismatch/variableInitializedWithNull4.kt +++ /dev/null @@ -1,11 +0,0 @@ -// "Change type of 'x' to 'String?'" "false" -// ACTION: Remove braces from 'if' statement -// ACTION: To raw string literal -// ACTION: Convert assignment to assignment expression -// ERROR: Type mismatch: inferred type is String but Int was expected -fun foo(condition: Boolean) { - var x = 1 - if (condition) { - x = "abc" - } -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 40c97ff8a39..10b02e61085 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -14258,26 +14258,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { runTest("idea/testData/quickfix/typeMismatch/unresolvableTypeParams.kt"); } - @TestMetadata("variableInitializedWithNull.kt") - public void testVariableInitializedWithNull() throws Exception { - runTest("idea/testData/quickfix/typeMismatch/variableInitializedWithNull.kt"); - } - - @TestMetadata("variableInitializedWithNull2.kt") - public void testVariableInitializedWithNull2() throws Exception { - runTest("idea/testData/quickfix/typeMismatch/variableInitializedWithNull2.kt"); - } - - @TestMetadata("variableInitializedWithNull3.kt") - public void testVariableInitializedWithNull3() throws Exception { - runTest("idea/testData/quickfix/typeMismatch/variableInitializedWithNull3.kt"); - } - - @TestMetadata("variableInitializedWithNull4.kt") - public void testVariableInitializedWithNull4() throws Exception { - runTest("idea/testData/quickfix/typeMismatch/variableInitializedWithNull4.kt"); - } - @TestMetadata("when.kt") public void testWhen() throws Exception { runTest("idea/testData/quickfix/typeMismatch/when.kt");