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 f64140a95c8..b20b858dd9c 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 @@ -22,8 +22,8 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl; 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; -import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaResolverContext; import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaSubModule; import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver; import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver; @@ -35,7 +35,6 @@ import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver; import org.jetbrains.jet.storage.LockBasedStorageManager; import javax.inject.Inject; - import java.util.Collections; import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KOTLIN_SOURCES; @@ -79,7 +78,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes private LazyJavaSubModule getSubModule() { if (subModule == null) { subModule = new LazyJavaSubModule( - new LazyJavaResolverContext( + new GlobalJavaResolverContext( new LockBasedStorageManager(), javaClassFinder, new LazyJavaClassResolver() { 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 6666ff29096..ab88b111e54 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 @@ -9,10 +9,11 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaClass import org.jetbrains.jet.lang.descriptors.ClassDescriptor public open class LazyJavaSubModule( - private val outerContext: LazyJavaResolverContext, - module: ModuleDescriptor + private val outerContext: GlobalJavaResolverContext, + private val module: ModuleDescriptor ) { private val c = LazyJavaResolverContext( + this, outerContext.storageManager, outerContext.finder, SubModuleClassResolver(), 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 fe8b8e2b82a..47b0bb53b0f 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,16 +26,25 @@ import org.jetbrains.jet.lang.resolve.java.lazy.descriptors.LazyJavaAnnotationDe import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver -open class LazyJavaResolverContext( +open class GlobalJavaResolverContext( val storageManager: StorageManager, val finder: JavaClassFinder, val javaClassResolver: LazyJavaClassResolver, val externalAnnotationResolver: ExternalAnnotationResolver ) +open class LazyJavaResolverContext( + val subModule: LazyJavaSubModule, + storageManager: StorageManager, + finder: JavaClassFinder, + javaClassResolver: LazyJavaClassResolver, + externalAnnotationResolver: ExternalAnnotationResolver +) : GlobalJavaResolverContext(storageManager, finder, javaClassResolver, externalAnnotationResolver) + fun LazyJavaResolverContext.withTypes( typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY ) = LazyJavaResolverContextWithTypes( + subModule, storageManager, finder, javaClassResolver, @@ -44,13 +53,14 @@ fun LazyJavaResolverContext.withTypes( typeParameterResolver) class LazyJavaResolverContextWithTypes( + subModule: LazyJavaSubModule, storageManager: StorageManager, finder: JavaClassFinder, javaClassResolver: LazyJavaClassResolver, externalAnnotationResolver: ExternalAnnotationResolver, val typeResolver: LazyJavaTypeResolver, val typeParameterResolver: TypeParameterResolver -) : LazyJavaResolverContext(storageManager, finder, javaClassResolver, externalAnnotationResolver) +) : LazyJavaResolverContext(subModule, storageManager, finder, javaClassResolver, externalAnnotationResolver) fun LazyJavaResolverContextWithTypes.child( containingDeclaration: DeclarationDescriptor,