Lambda -> reference: build bound reference for complex qualified

So #KT-19073 Fixed
This commit is contained in:
Mikhail Glukhikh
2017-12-28 15:16:31 +03:00
parent 73bca21f94
commit ec60c92fe9
4 changed files with 37 additions and 2 deletions
@@ -260,10 +260,9 @@ open class ConvertLambdaToReferenceIntention(text: String) :
"$receiverName::$selectorReferenceName"
}
}
is KtThisExpression -> {
else -> {
"${receiver.text}::$selectorReferenceName"
}
else -> null
}
}
else -> null
@@ -0,0 +1,15 @@
// WITH_RUNTIME
interface Data
val data: Data? = null
class Recycler(val adapter: DataAdapter)
val recycler = Recycler(DataAdapter())
class DataAdapter {
fun newData(data: Data) {}
}
fun test() {
data?.let { <caret>recycler.adapter.newData(it) }
}
@@ -0,0 +1,15 @@
// WITH_RUNTIME
interface Data
val data: Data? = null
class Recycler(val adapter: DataAdapter)
val recycler = Recycler(DataAdapter())
class DataAdapter {
fun newData(data: Data) {}
}
fun test() {
data?.let(recycler.adapter::newData)
}
@@ -4418,6 +4418,12 @@ public class IntentionTestGenerated extends AbstractIntentionTest {
doTest(fileName);
}
@TestMetadata("doubleChained.kt")
public void testDoubleChained() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertLambdaToReference/doubleChained.kt");
doTest(fileName);
}
@TestMetadata("emptyBrackets.kt")
public void testEmptyBrackets() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("idea/testData/intentions/convertLambdaToReference/emptyBrackets.kt");