Fix absence of reference for type parameters
This commit is contained in:
+4
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.LazyDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils;
|
||||
@@ -71,6 +72,9 @@ public class LazyTypeParameterDescriptor implements TypeParameterDescriptor, Laz
|
||||
this.containingDeclaration = containingDeclaration;
|
||||
this.index = index;
|
||||
this.name = ResolveSessionUtils.safeNameForLazyResolve(jetTypeParameter.getNameAsName());
|
||||
|
||||
this.resolveSession.getTrace().record(BindingContext.TYPE_PARAMETER, jetTypeParameter, this);
|
||||
|
||||
this.reified = jetTypeParameter.hasModifier(JetTokens.REIFIED_KEYWORD);
|
||||
|
||||
StorageManager storageManager = resolveSession.getStorageManager();
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package testing
|
||||
|
||||
fun <T> someFun() {
|
||||
fun innerFun(a: <caret>T) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// REF: T
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
class A<X> {
|
||||
fun foo(a: <caret>X) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// REF: X
|
||||
@@ -0,0 +1,9 @@
|
||||
package test
|
||||
|
||||
class A
|
||||
|
||||
class Test {
|
||||
fun some(a: <caret>A) = 12
|
||||
}
|
||||
|
||||
// REF: (test).A
|
||||
@@ -71,6 +71,16 @@ public class ReferenceResolveTestGenerated extends AbstractResolveBaseTest {
|
||||
doTest("idea/testData/resolve/references/CtrlClickResolve.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("GenericFunctionParameter.kt")
|
||||
public void testGenericFunctionParameter() throws Exception {
|
||||
doTest("idea/testData/resolve/references/GenericFunctionParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("GenericTypeInFunctionParameter.kt")
|
||||
public void testGenericTypeInFunctionParameter() throws Exception {
|
||||
doTest("idea/testData/resolve/references/GenericTypeInFunctionParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("InClassParameter.kt")
|
||||
public void testInClassParameter() throws Exception {
|
||||
doTest("idea/testData/resolve/references/InClassParameter.kt");
|
||||
@@ -86,6 +96,11 @@ public class ReferenceResolveTestGenerated extends AbstractResolveBaseTest {
|
||||
doTest("idea/testData/resolve/references/InFunctionParameterType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("InMethodParameter.kt")
|
||||
public void testInMethodParameter() throws Exception {
|
||||
doTest("idea/testData/resolve/references/InMethodParameter.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("InObjectClassObject.kt")
|
||||
public void testInObjectClassObject() throws Exception {
|
||||
doTest("idea/testData/resolve/references/InObjectClassObject.kt");
|
||||
|
||||
Reference in New Issue
Block a user