Completion: for extension functions unsubstituted receiver type shown

This commit is contained in:
Valentin Kipyatkov
2014-12-02 14:53:35 +03:00
parent 522ceee559
commit a40db1e794
4 changed files with 8 additions and 8 deletions
@@ -170,14 +170,14 @@ public class LookupElementFactory(
}
if (descriptor is CallableDescriptor) {
val receiver = descriptor.getExtensionReceiverParameter()
if (receiver != null) {
if (descriptor.getExtensionReceiverParameter() != null) {
val container = descriptor.getContainingDeclaration()
val containerPresentation = if (container is ClassDescriptor)
DescriptorUtils.getFqNameFromTopLevelClass(container)
else
DescriptorUtils.getFqName(container)
val receiverPresentation = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(receiver.getType())
val originalReceiver = descriptor.getOriginal().getExtensionReceiverParameter()!!
val receiverPresentation = DescriptorRenderer.SHORT_NAMES_IN_TYPES.renderType(originalReceiver.getType())
element = element.appendTailText(" for $receiverPresentation in $containerPresentation", true)
}
else {
@@ -1,5 +1,5 @@
fun foo(list: List<String>) {
list.<caret>
}
// EXIST: { itemText: "firstOrNull", tailText: "(predicate: (String) -> Boolean) for Iterable<String> in kotlin", typeText: "String?" }
// EXIST: { itemText: "toMap", tailText: "(selector: (String) -> K) for Iterable<String> in kotlin", typeText: "Map<K, String>" }
// EXIST: { itemText: "firstOrNull", tailText: "(predicate: (String) -> Boolean) for Iterable<T> in kotlin", typeText: "String?" }
// EXIST: { itemText: "toMap", tailText: "(selector: (String) -> K) for Iterable<T> in kotlin", typeText: "Map<K, String>" }
@@ -10,5 +10,5 @@ class Outer : Trait<String> {
}
}
// EXIST: { itemText: "extension", tailText: "(t: String) for Trait<String> in <root>", typeText: "String" }
// EXIST: { itemText: "extension", tailText: "(t: Int) for Trait<Int> in <root>", typeText: "Int" }
// EXIST: { itemText: "extension", tailText: "(t: String) for Trait<T> in <root>", typeText: "String" }
// EXIST: { itemText: "extension", tailText: "(t: Int) for Trait<T> in <root>", typeText: "Int" }
@@ -8,5 +8,5 @@ fun firstFun() {
}
// INVOCATION_COUNT: 1
// EXIST: { lookupString:"toLinkedList", itemText:"toLinkedList", tailText:"() for Iterable<Int!> in kotlin" }
// EXIST: { lookupString:"toLinkedList", itemText:"toLinkedList", tailText:"() for Iterable<T> in kotlin" }
// NUMBER: 1