diff --git a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt index 968a33c8dba..756b7e331e9 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/kotlin/load/java/lazy/descriptors/LazyJavaClassMemberScope.kt @@ -615,7 +615,10 @@ public class LazyJavaClassMemberScope( override fun getDispatchReceiverParameter(): ReceiverParameterDescriptor? = DescriptorUtils.getDispatchReceiverParameterIfNeeded(getContainingDeclaration()) - override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? = nestedClasses(name) + override fun getClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? { + recordLookup(name, location) + return nestedClasses(name) + } override fun getClassNames(kindFilter: DescriptorKindFilter, nameFilter: (Name) -> Boolean): Collection = nestedClassIndex().keySet() + enumEntryIndex().keySet() diff --git a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt index 097daea53d9..34f67fad97a 100644 --- a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt +++ b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt @@ -31,6 +31,8 @@ import bar.* } } + inner class C + companion object { val a = 1 fun baz() {} @@ -44,6 +46,8 @@ import bar.* /*p:foo*/interface I { var a: /*c:foo.I p:foo*/Int fun foo() + + class NI } /*p:foo*/object Obj : /*p:foo*/I { diff --git a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt index 89fd27c5ab8..7194c76f3f6 100644 --- a/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt +++ b/jps-plugin/testData/incremental/lookupTracker/classifierMembers/usages.kt @@ -31,3 +31,16 @@ import bar.* /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/X./*c:foo.E*/a /*p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:foo.E*/Y./*c:foo.E*/foo() } + +/*p:foo*/fun classifiers( + a: /*p:foo*/A, + ab: /*p:foo*/A./*c:foo.A*/B, + ac: /*p:foo*/A./*c:foo.A*/C, + abCo: /*p:foo*/A./*c:foo.A*/B./*c:foo.A.B*/CO, + aCompanion: /*p:foo*/A./*c:foo.A*/Companion, + aO: /*p:foo*/A./*c:foo.A*/O, + i: /*p:foo*/I, + ni: /*p:foo*/I./*c:foo.I*/NI, + obj: /*p:foo*/Obj, + e: /*p:foo*/E +) {} diff --git a/jps-plugin/testData/incremental/lookupTracker/java/init-build.log b/jps-plugin/testData/incremental/lookupTracker/java/init-build.log index 4ef7b46d7ba..02fb31f771b 100644 --- a/jps-plugin/testData/incremental/lookupTracker/java/init-build.log +++ b/jps-plugin/testData/incremental/lookupTracker/java/init-build.log @@ -3,3 +3,4 @@ src/usages.kt End of files COMPILATION FAILED Unresolved reference: IS +Unresolved reference: IS diff --git a/jps-plugin/testData/incremental/lookupTracker/java/usages.kt b/jps-plugin/testData/incremental/lookupTracker/java/usages.kt index 128a8475cf3..f836b6e74c9 100644 --- a/jps-plugin/testData/incremental/lookupTracker/java/usages.kt +++ b/jps-plugin/testData/incremental/lookupTracker/java/usages.kt @@ -33,3 +33,13 @@ import baz.* /*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/F./*c:baz.E*/field /*p:foo p:baz p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.io*/E./*c:baz.E*/S./*c:baz.E*/func() } + +/*p:foo*/fun classifiers( + c: C, + b: C./*c:bar.C*/B, + s: C./*c:bar.C*/S, + cis: C./*c:bar.C*/IS, + i: /*p:foo*/I, + iis: /*p:foo*/I./*c:foo.I*/IS, + e: /*p:foo p:baz*/E +) {} diff --git a/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/KotlinClass.kt b/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/KotlinClass.kt index 1771c1d3c84..abc2cb3f81d 100644 --- a/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/KotlinClass.kt +++ b/jps-plugin/testData/incremental/lookupTracker/syntheticProperties/KotlinClass.kt @@ -4,5 +4,5 @@ import /*p:*/JavaClass /*p:foo*/class KotlinClass : JavaClass() { override fun getFoo() = 2 - fun setFoo(i: /*c:foo.KotlinClass p:foo*/Int) {} + fun setFoo(i: /*c:foo.KotlinClass c:JavaClass p:foo*/Int) {} }