From 0ac443066e86d6f31b73c2179c062a71bc4ddea1 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 1 Dec 2016 17:23:25 +0300 Subject: [PATCH] KT-12100 convert try / finally to use: 'this' receiver is now left as is --- .../idea/intentions/ConvertTryFinallyToUseCallIntention.kt | 4 ++++ .../intentions/convertTryFinallyToUseCall/this.kt.after | 2 +- .../convertTryFinallyToUseCall/thisLabeled.kt.after | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTryFinallyToUseCallIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTryFinallyToUseCallIntention.kt index 65fdde08d73..9dafe551cad 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTryFinallyToUseCallIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/ConvertTryFinallyToUseCallIntention.kt @@ -51,6 +51,10 @@ class ConvertTryFinallyToUseCallIntention : SelfTargetingOffsetIndependentIntent appendName(resourceName) appendFixedText(".") } + else if (finallyExpressionReceiver is KtThisExpression) { + appendFixedText(finallyExpressionReceiver.text) + appendFixedText(".") + } appendFixedText("use {") if (resourceName != null) { diff --git a/idea/testData/intentions/convertTryFinallyToUseCall/this.kt.after b/idea/testData/intentions/convertTryFinallyToUseCall/this.kt.after index d71c6bd23ab..56320e46a86 100644 --- a/idea/testData/intentions/convertTryFinallyToUseCall/this.kt.after +++ b/idea/testData/intentions/convertTryFinallyToUseCall/this.kt.after @@ -3,5 +3,5 @@ import java.io.File import java.io.BufferedReader fun BufferedReader.foo() { - use { this.readLine() } + this.use { this.readLine() } } \ No newline at end of file diff --git a/idea/testData/intentions/convertTryFinallyToUseCall/thisLabeled.kt.after b/idea/testData/intentions/convertTryFinallyToUseCall/thisLabeled.kt.after index 4b631e38559..3823587152b 100644 --- a/idea/testData/intentions/convertTryFinallyToUseCall/thisLabeled.kt.after +++ b/idea/testData/intentions/convertTryFinallyToUseCall/thisLabeled.kt.after @@ -8,6 +8,6 @@ class MyCloseable : Closeable { fun process(x: Int) = x fun Int.foo() { - use { this@MyCloseable.process(this) } + this@MyCloseable.use { this@MyCloseable.process(this) } } } \ No newline at end of file