KT-6891 Type argument of generic type before dot is not resolved
KT-7373 Type parameter names are not suggested KT-6838 Class declared in same file is not suggested in completion #KT-6891 Fixed #KT-7373 Fixed #KT-6838 Fixed
This commit is contained in:
@@ -117,6 +117,14 @@ public class TypeResolver(
|
||||
var result: PossiblyBareType? = null
|
||||
typeElement?.accept(object : JetVisitorVoid() {
|
||||
override fun visitUserType(type: JetUserType) {
|
||||
if (type.qualifier != null) { // we must resolve all type references in arguments of qualifier type
|
||||
for (typeArgument in type.qualifier!!.typeArguments) {
|
||||
typeArgument.typeReference?.let {
|
||||
ForceResolveUtil.forceResolveAllContents(resolveType(c, it))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val referenceExpression = type.getReferenceExpression()
|
||||
val referencedName = type.getReferencedName()
|
||||
if (referenceExpression == null || referencedName == null) return
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class C {
|
||||
val prop: List<F<caret>>
|
||||
}
|
||||
|
||||
class Foo
|
||||
|
||||
// EXIST: Foo
|
||||
@@ -0,0 +1,5 @@
|
||||
class C<TParam> {
|
||||
val v: List<T<caret>
|
||||
}
|
||||
|
||||
// EXIST: TParam
|
||||
+12
@@ -901,6 +901,18 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgFromTheSameFile.kt")
|
||||
public void testTypeArgFromTheSameFile() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeArgFromTheSameFile.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgOfOwnerClass.kt")
|
||||
public void testTypeArgOfOwnerClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeArgOfOwnerClass.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeParameterFromOuterClass.kt")
|
||||
public void testTypeParameterFromOuterClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeParameterFromOuterClass.kt");
|
||||
|
||||
+12
@@ -901,6 +901,18 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgFromTheSameFile.kt")
|
||||
public void testTypeArgFromTheSameFile() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeArgFromTheSameFile.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgOfOwnerClass.kt")
|
||||
public void testTypeArgOfOwnerClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeArgOfOwnerClass.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeParameterFromOuterClass.kt")
|
||||
public void testTypeParameterFromOuterClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/TypeParameterFromOuterClass.kt");
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class Generic<T> {
|
||||
class Nested
|
||||
}
|
||||
|
||||
class C {
|
||||
val prop: Generic<<caret>Foo>.Nested? = null
|
||||
}
|
||||
|
||||
class Foo
|
||||
|
||||
// REF: (<root>).Foo
|
||||
@@ -353,6 +353,12 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgumentBeforeDot.kt")
|
||||
public void testTypeArgumentBeforeDot() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/TypeArgumentBeforeDot.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("TypeArgumentUnresolvedClass.kt")
|
||||
public void testTypeArgumentUnresolvedClass() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/TypeArgumentUnresolvedClass.kt");
|
||||
|
||||
Reference in New Issue
Block a user