Extension SAM-adapters shown in completion

This commit is contained in:
Valentin Kipyatkov
2015-07-29 16:21:55 +03:00
parent cb9ef9e1f0
commit 2eb04db95a
18 changed files with 113 additions and 4 deletions
@@ -42,7 +42,8 @@ import org.jetbrains.kotlin.types.JetType
import org.jetbrains.kotlin.types.TypeUtils
import org.jetbrains.kotlin.types.checker.JetTypeChecker
import org.jetbrains.kotlin.utils.addIfNotNull
import java.util.*
import java.util.HashSet
import java.util.LinkedHashSet
public class ReferenceVariantsHelper(
private val context: BindingContext,
@@ -185,11 +186,23 @@ public class ReferenceVariantsHelper(
}
if (!kindFilter.excludes.contains(DescriptorKindExclude.Extensions)) {
for (extension in resolutionScope.getSyntheticExtensionProperties(receiverTypes)) {
if (nameFilter(extension.getName()) && kindFilter.accepts(extension)) {
fun processExtension(extension: CallableDescriptor) {
if (nameFilter(extension.name) && kindFilter.accepts(extension)) {
addAll(extension.substituteExtensionIfCallable(receiverValue, callType, context, dataFlowInfo, containingDeclaration))
}
}
if (kindFilter.acceptsKinds(DescriptorKindFilter.VARIABLES_MASK)) {
for (extension in resolutionScope.getSyntheticExtensionProperties(receiverTypes)) {
processExtension(extension)
}
}
if (kindFilter.acceptsKinds(DescriptorKindFilter.FUNCTIONS_MASK)) {
for (extension in resolutionScope.getSyntheticExtensionFunctions(receiverTypes)) {
processExtension(extension)
}
}
}
}