diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 275fd834a01..3b6e2871e42 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -23,6 +23,7 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; +import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.ImportPath; import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext; import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaClassResolver; @@ -178,7 +179,8 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes externalSignatureResolver, errorReporter, signatureChecker, - javaResolverCache + javaResolverCache, + this ), module ); diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaSubModule.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaSubModule.kt index 033892b7586..3a57931aefb 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaSubModule.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/LazyJavaSubModule.kt @@ -24,7 +24,8 @@ public open class LazyJavaSubModule( outerContext.externalSignatureResolver, outerContext.errorReporter, outerContext.methodSignatureChecker, - outerContext.javaResolverCache + outerContext.javaResolverCache, + outerContext.javaDescriptorResolver ) private val _packageFragments: MemoizedFunctionToNullable = c.storageManager.createMemoizedFunctionWithNullableValues { diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/context.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/context.kt index 4f5a1215293..eac9385a655 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/context.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/context.kt @@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.resolve.java.resolver.ExternalSignatureResolver import org.jetbrains.jet.lang.resolve.java.resolver.MethodSignatureChecker import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter import org.jetbrains.jet.lang.resolve.java.resolver.JavaResolverCache +import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver open class GlobalJavaResolverContext( val storageManager: StorageManager, @@ -35,7 +36,8 @@ open class GlobalJavaResolverContext( val externalSignatureResolver: ExternalSignatureResolver, val errorReporter: ErrorReporter, val methodSignatureChecker: MethodSignatureChecker, - val javaResolverCache: JavaResolverCache + val javaResolverCache: JavaResolverCache, + val javaDescriptorResolver: JavaDescriptorResolver ) open class LazyJavaResolverContext( @@ -47,10 +49,12 @@ open class LazyJavaResolverContext( externalSignatureResolver: ExternalSignatureResolver, errorReporter: ErrorReporter, methodSignatureChecker: MethodSignatureChecker, - javaResolverCache: JavaResolverCache + javaResolverCache: JavaResolverCache, + javaDescriptorResolver: JavaDescriptorResolver ) : GlobalJavaResolverContext(storageManager, finder, javaClassResolver, externalAnnotationResolver, externalSignatureResolver, - errorReporter, methodSignatureChecker, javaResolverCache) + errorReporter, methodSignatureChecker, javaResolverCache, + javaDescriptorResolver) fun LazyJavaResolverContext.withTypes( typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY @@ -64,6 +68,7 @@ fun LazyJavaResolverContext.withTypes( errorReporter, methodSignatureChecker, javaResolverCache, + javaDescriptorResolver, LazyJavaTypeResolver(this, typeParameterResolver), typeParameterResolver) @@ -77,11 +82,13 @@ class LazyJavaResolverContextWithTypes( errorReporter: ErrorReporter, methodSignatureChecker: MethodSignatureChecker, javaResolverCache: JavaResolverCache, + javaDescriptorResolver: JavaDescriptorResolver, val typeResolver: LazyJavaTypeResolver, val typeParameterResolver: TypeParameterResolver ) : LazyJavaResolverContext(subModule, storageManager, finder, javaClassResolver, externalAnnotationResolver, externalSignatureResolver, - errorReporter, methodSignatureChecker, javaResolverCache) + errorReporter, methodSignatureChecker, javaResolverCache, + javaDescriptorResolver) fun LazyJavaResolverContextWithTypes.child( containingDeclaration: DeclarationDescriptor, diff --git a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaPackageFragmentScope.kt b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaPackageFragmentScope.kt index d8409d70b7f..4de20ab0d51 100644 --- a/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaPackageFragmentScope.kt +++ b/core/descriptor.loader.java/src/org/jetbrains/jet/lang/resolve/java/lazy/descriptors/LazyJavaPackageFragmentScope.kt @@ -13,6 +13,7 @@ import org.jetbrains.jet.utils.flatten import org.jetbrains.jet.lang.resolve.java.structure.JavaClass import org.jetbrains.jet.lang.resolve.java.resolver.JavaNamespaceResolver import org.jetbrains.kotlin.util.inn +import org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule public abstract class LazyJavaPackageFragmentScope( c: LazyJavaResolverContext, @@ -46,7 +47,7 @@ public abstract class LazyJavaPackageFragmentScope( override fun getClassifier(name: Name): ClassifierDescriptor? = classes(name) - override fun getNamespace(name: Name): NamespaceDescriptor? = c.subModule.getPackageFragment(getContainingDeclaration().getFqName().child(name)) + override fun getNamespace(name: Name): NamespaceDescriptor? = c.javaDescriptorResolver.resolveNamespace(getContainingDeclaration().getFqName().child(name), DescriptorSearchRule.INCLUDE_KOTLIN_SOURCES) override fun getImplicitReceiversHierarchy(): List = listOf() @@ -62,7 +63,9 @@ public class LazyPackageFragmentScopeForJavaPackage( override fun computeMemberIndex(): MemberIndex = computeMemberIndexForSamConstructors(EMPTY_MEMBER_INDEX) override fun getAllClassNames(): Collection { - return jPackage.getClasses().map { c -> c.getName() } + return jPackage.getClasses().iterator() + .filter { c -> c.getOriginKind() != JavaClass.OriginKind.KOTLIN_LIGHT_CLASS } + .map { c -> c.getName() }.toList() } override fun getAllPackageNames(): Collection =