More clear code + better test

This commit is contained in:
Valentin Kipyatkov
2014-11-28 19:23:25 +03:00
parent 6502c44928
commit 9dc6a82fef
2 changed files with 13 additions and 6 deletions
@@ -37,6 +37,7 @@ import org.jetbrains.jet.lang.types.JetType
import org.jetbrains.jet.lang.types.TypeUtils
import org.jetbrains.jet.lang.types.checker.JetTypeChecker
import org.jetbrains.jet.lexer.JetTokens
import org.jetbrains.jet.lang.resolve.calls.callUtil.getCall
public class ReferenceVariantsHelper(
private val context: BindingContext,
@@ -81,6 +82,11 @@ public class ReferenceVariantsHelper(
return resolutionScope.getDescriptorsFiltered(restrictedFilter, nameFilter)
}
if (parent is JetUserType) {
val restrictedFilter = kindFilter.restrictedToKinds(DescriptorKindFilter.CLASSIFIERS_MASK or DescriptorKindFilter.PACKAGES_MASK) ?: return listOf()
return resolutionScope.getDescriptorsFiltered(restrictedFilter, nameFilter)
}
val pair = getReferenceVariantsReceiver(expression)
if (pair != null) {
val (receiverExpression, callType) = pair
@@ -159,12 +165,8 @@ public class ReferenceVariantsHelper(
}
private fun getReferenceVariantsReceiver(expression: JetSimpleNameExpression): Pair<JetExpression, CallType>? {
val parent = expression.getParent()
val inPositionForCompletionWithReceiver = parent is JetCallExpression
|| parent is JetQualifiedExpression
|| parent is JetBinaryExpression
if (!inPositionForCompletionWithReceiver) return null
val receiverExpression = expression.getReceiverExpression() ?: return null
val parent = expression.getParent()
val callType = when (parent) {
is JetBinaryExpression -> CallType.INFIX
@@ -182,7 +184,7 @@ public class ReferenceVariantsHelper(
CallType.NORMAL
}
else -> error("Unknown parent")
else -> return null
}
return receiverExpression to callType
}
@@ -3,9 +3,14 @@ package Test.SubTest.AnotherTest
open class TestClass {
}
fun globalFun(){}
val globalProp: Int = 1
class A() : Test.SubTest.AnotherTest.Te<caret> {
public fun test() {
}
}
// EXIST: TestClass
// ABSENT: globalFun
// ABSENT: globalProp