ConvertLambdaToReference refactoring
Intention is not registered now; inspection is enabled by default now, but has highlight level of "No highlighting" Inspection does not depend on text length now So #KT-14335 Fixed
This commit is contained in:
@@ -1385,11 +1385,6 @@
|
||||
<category>Kotlin</category>
|
||||
</intentionAction>
|
||||
|
||||
<intentionAction>
|
||||
<className>org.jetbrains.kotlin.idea.intentions.ConvertLambdaToReferenceIntention</className>
|
||||
<category>Kotlin</category>
|
||||
</intentionAction>
|
||||
|
||||
<intentionAction>
|
||||
<className>org.jetbrains.kotlin.idea.intentions.ConvertReferenceToLambdaIntention</className>
|
||||
<category>Kotlin</category>
|
||||
@@ -1953,8 +1948,8 @@
|
||||
<localInspection implementationClass="org.jetbrains.kotlin.idea.intentions.ConvertLambdaToReferenceInspection"
|
||||
displayName="Can be replaced with function reference"
|
||||
groupName="Kotlin"
|
||||
enabledByDefault="false"
|
||||
level="INFO"
|
||||
enabledByDefault="true"
|
||||
level="INFORMATION"
|
||||
language="kotlin"
|
||||
/>
|
||||
|
||||
|
||||
@@ -40,12 +40,7 @@ import org.jetbrains.kotlin.types.isError
|
||||
import org.jetbrains.kotlin.types.typeUtil.isTypeParameter
|
||||
import org.jetbrains.kotlin.types.typeUtil.isUnit
|
||||
|
||||
class ConvertLambdaToReferenceInspection : IntentionBasedInspection<KtLambdaExpression>(
|
||||
ConvertLambdaToReferenceIntention::class,
|
||||
{ it -> ConvertLambdaToReferenceIntention.shouldSuggestToConvert(it) }
|
||||
) {
|
||||
override fun inspectionTarget(element: KtLambdaExpression) = element.bodyExpression?.statements?.singleOrNull()
|
||||
}
|
||||
class ConvertLambdaToReferenceInspection : IntentionBasedInspection<KtLambdaExpression>(ConvertLambdaToReferenceIntention::class)
|
||||
|
||||
open class ConvertLambdaToReferenceIntention(text: String) :
|
||||
SelfTargetingOffsetIndependentIntention<KtLambdaExpression>(KtLambdaExpression::class.java, text) {
|
||||
@@ -219,10 +214,6 @@ open class ConvertLambdaToReferenceIntention(text: String) :
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal fun shouldSuggestToConvert(element: KtLambdaExpression): Boolean {
|
||||
val referenceName = buildReferenceText(lambdaExpression = element, shortTypes = true) ?: return false
|
||||
return referenceName.length < element.text.length
|
||||
}
|
||||
|
||||
private fun buildReferenceText(lambdaExpression: KtLambdaExpression, shortTypes: Boolean): String? {
|
||||
val singleStatement = lambdaExpression.singleStatementOrNull()
|
||||
|
||||
Reference in New Issue
Block a user