Completion: corrected presentation for extension properties
This commit is contained in:
@@ -76,12 +76,6 @@ public object KotlinLookupElementFactory {
|
||||
val returnType = descriptor.getReturnType()
|
||||
element = element.withTypeText(if (returnType != null) DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(returnType) else "")
|
||||
element = element.appendTailText(DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderFunctionParameters(descriptor), false)
|
||||
|
||||
if (descriptor.getExtensionReceiverParameter() != null) {
|
||||
val tail = " for " + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(descriptor.getExtensionReceiverParameter()!!.getType()) +
|
||||
" in " + DescriptorUtils.getFqName(descriptor.getContainingDeclaration())
|
||||
element = element.appendTailText(tail, true)
|
||||
}
|
||||
}
|
||||
|
||||
is VariableDescriptor -> {
|
||||
@@ -97,6 +91,15 @@ public object KotlinLookupElementFactory {
|
||||
}
|
||||
}
|
||||
|
||||
if (descriptor is CallableDescriptor) {
|
||||
val receiver = descriptor.getExtensionReceiverParameter()
|
||||
if (receiver != null) {
|
||||
val tail = " for " + DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(receiver.getType()) +
|
||||
" in " + DescriptorUtils.getFqName(descriptor.getContainingDeclaration())
|
||||
element = element.appendTailText(tail, true)
|
||||
}
|
||||
}
|
||||
|
||||
if (KotlinBuiltIns.getInstance().isDeprecated(descriptor)) {
|
||||
element = element.withStrikeoutness(true)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
package a.b
|
||||
|
||||
class Some {
|
||||
fun foo() {
|
||||
"".<caret>
|
||||
}
|
||||
|
||||
fun String.memberExtFun() { }
|
||||
val String.memberExtProp: Int get() = 1
|
||||
}
|
||||
|
||||
fun String.extFun() { }
|
||||
val String.extProp: Int get() = 1
|
||||
|
||||
// EXIST: { lookupString: "extFun", itemText: "extFun", tailText: "() for String in a.b", typeText: "Unit" }
|
||||
// EXIST: { lookupString: "extProp", itemText: "extProp", tailText: " for String in a.b", typeText: "Int" }
|
||||
// EXIST: { lookupString: "memberExtFun", itemText: "memberExtFun", tailText: "() for String in a.b.Some", typeText: "Unit" }
|
||||
// EXIST: { lookupString: "memberExtProp", itemText: "memberExtProp", tailText: " for String in a.b.Some", typeText: "Int" }
|
||||
@@ -816,6 +816,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("Extensions.kt")
|
||||
public void testExtensions() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/Extensions.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("InvalidTypeParameters.kt")
|
||||
public void testInvalidTypeParameters() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
||||
|
||||
@@ -816,6 +816,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("Extensions.kt")
|
||||
public void testExtensions() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/Extensions.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("InvalidTypeParameters.kt")
|
||||
public void testInvalidTypeParameters() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/completion/basic/common/extensions/InvalidTypeParameters.kt");
|
||||
|
||||
Reference in New Issue
Block a user