diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/ConflictingExtensionPropertyInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/ConflictingExtensionPropertyInspection.kt index a8858a2be58..11813866ae2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/ConflictingExtensionPropertyInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/ConflictingExtensionPropertyInspection.kt @@ -129,9 +129,13 @@ public class ConflictingExtensionPropertyInspection : AbstractKotlinInspection() private fun checkSetterBodyIsSetMethodCall(setter: JetPropertyAccessor, setMethod: FunctionDescriptor): Boolean { val valueParameterName = setter.valueParameters.singleOrNull()?.nameAsName ?: return false - if (!setter.hasBlockBody()) return false - val statement = (setter.bodyExpression as? JetBlockExpression)?.statements?.singleOrNull() ?: return false - return statement.isSetMethodCall(setMethod, valueParameterName) + if (setter.hasBlockBody()) { + val statement = (setter.bodyExpression as? JetBlockExpression)?.statements?.singleOrNull() ?: return false + return statement.isSetMethodCall(setMethod, valueParameterName) + } + else { + return setter.bodyExpression.isSetMethodCall(setMethod, valueParameterName) + } } private fun JetExpression?.isGetMethodCall(getMethod: FunctionDescriptor): Boolean { diff --git a/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt b/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt new file mode 100644 index 00000000000..8e60585cd78 --- /dev/null +++ b/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt @@ -0,0 +1,5 @@ +// "Delete redundant extension property" "true" + +var Thread.priority: Int + get() = getPriority() + set(value) = setPriority(value) diff --git a/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt.after b/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt.after new file mode 100644 index 00000000000..1aceb5e4c7e --- /dev/null +++ b/idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt.after @@ -0,0 +1,2 @@ +// "Delete redundant extension property" "true" + diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java index 08bf3b8510f..076e4b7b46e 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/QuickFixTestGenerated.java @@ -3955,6 +3955,12 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest { doTest(fileName); } + @TestMetadata("setterWithExpressionBody.kt") + public void testSetterWithExpressionBody() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/conflictingExtension/setterWithExpressionBody.kt"); + doTest(fileName); + } + @TestMetadata("simple.kt") public void testSimple() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/migration/conflictingExtension/simple.kt");