This commit is contained in:
Valentin Kipyatkov
2015-10-29 18:15:14 +03:00
parent 40d3f71e1a
commit 5a69a17ab0
@@ -316,10 +316,12 @@ abstract class CompletionSession(protected val configuration: CompletionSessionC
}
protected fun getRuntimeReceiverTypeReferenceVariants(): Pair<ReferenceVariants, LookupElementFactory>? {
val evaluator = file.getCopyableUserData(KtCodeFragment.RUNTIME_TYPE_EVALUATOR) ?: return null
val explicitReceiver = callTypeAndReceiver.receiver as? KtExpression ?: return null
val type = bindingContext.getType(explicitReceiver) ?: return null
if (!TypeUtils.canHaveSubtypes(KotlinTypeChecker.DEFAULT, type)) return null
val evaluator = file.getCopyableUserData(KtCodeFragment.RUNTIME_TYPE_EVALUATOR) ?: return null
val runtimeType = evaluator(explicitReceiver)
if (runtimeType == null || runtimeType == type) return null