Fix missing lookups from deserialized JS descriptors

This commit is contained in:
Alexey Tsvetkov
2017-07-31 22:51:11 +03:00
parent 7e7fcd352c
commit 46a3a59b81
7 changed files with 47 additions and 15 deletions
@@ -16,9 +16,12 @@
package org.jetbrains.kotlin.serialization.deserialization.descriptors
import org.jetbrains.kotlin.descriptors.ClassifierDescriptor
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor
import org.jetbrains.kotlin.incremental.components.LookupLocation
import org.jetbrains.kotlin.incremental.components.NoLookupLocation
import org.jetbrains.kotlin.incremental.record
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.scopes.DescriptorKindFilter
@@ -28,7 +31,7 @@ import org.jetbrains.kotlin.serialization.deserialization.NameResolver
import org.jetbrains.kotlin.serialization.deserialization.TypeTable
open class DeserializedPackageMemberScope(
packageDescriptor: PackageFragmentDescriptor,
private val packageDescriptor: PackageFragmentDescriptor,
proto: ProtoBuf.Package,
nameResolver: NameResolver,
containerSource: DeserializedContainerSource?,
@@ -50,6 +53,12 @@ open class DeserializedPackageMemberScope(
override fun createClassId(name: Name) = ClassId(packageFqName, name)
override fun getContributedClassifier(name: Name, location: LookupLocation): ClassifierDescriptor? {
c.components.lookupTracker.record(location, packageDescriptor, name)
return super.getContributedClassifier(name, location)
}
override fun getNonDeclaredFunctionNames(): Set<Name> = emptySet()
override fun getNonDeclaredVariableNames(): Set<Name> = emptySet()