From bcfd0894739177561d20bc5c5d8e44816a302e0c Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Tue, 11 Feb 2020 09:58:59 +0700 Subject: [PATCH] AbstractDiagnosticBasedMigrationInspection: fix case with nullable custom factory #KT-36479 Fixed --- .../AbstractDiagnosticBasedMigrationInspection.kt | 7 +++---- .../warningOnMainUnusedParameterMigration/notApplicable.kt | 6 ++++++ .../idea/inspections/LocalInspectionTestGenerated.java | 5 +++++ 3 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/notApplicable.kt diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/migration/AbstractDiagnosticBasedMigrationInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/migration/AbstractDiagnosticBasedMigrationInspection.kt index 9ccd209b14a..415045af530 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/migration/AbstractDiagnosticBasedMigrationInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/migration/AbstractDiagnosticBasedMigrationInspection.kt @@ -48,11 +48,10 @@ abstract class AbstractDiagnosticBasedMigrationInspection( .singleOrNull() ?: error("Must have one diagnostic") - val intentionAction = (if (customIntentionFactory != null) - customIntentionFactory.invoke(diagnostic) + val intentionAction = if (customIntentionFactory != null) + customIntentionFactory.invoke(diagnostic) ?: return else - actionsFactory.createActions(diagnostic).singleOrNull()) - ?: error("Must have one fix") + actionsFactory.createActions(diagnostic).ifEmpty { return }.singleOrNull() ?: error("Must have one fix") val text = descriptionMessage() ?: DefaultErrorMessages.render(diagnostic) problemDescriptors.add( diff --git a/idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/notApplicable.kt b/idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/notApplicable.kt new file mode 100644 index 00000000000..8780ea4b49e --- /dev/null +++ b/idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/notApplicable.kt @@ -0,0 +1,6 @@ +// LANGUAGE_VERSION: 1.4 +// PROBLEM: none + +var vgs: Int + get() = 0 + set(value) {} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java index 3cd6d9e208e..63d8391dbd5 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/inspections/LocalInspectionTestGenerated.java @@ -13337,6 +13337,11 @@ public class LocalInspectionTestGenerated extends AbstractLocalInspectionTest { KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration"), Pattern.compile("^([\\w\\-_]+)\\.(kt|kts)$"), null, true); } + @TestMetadata("notApplicable.kt") + public void testNotApplicable() throws Exception { + runTest("idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/notApplicable.kt"); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { runTest("idea/testData/inspectionsLocal/warningOnMainUnusedParameterMigration/simple.kt");