Adding submodule to the context
This commit is contained in:
+2
-3
@@ -22,8 +22,8 @@ import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.ImportPath;
|
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.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.lazy.LazyJavaSubModule;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
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 org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KOTLIN_SOURCES;
|
import static org.jetbrains.jet.lang.resolve.java.DescriptorSearchRule.IGNORE_KOTLIN_SOURCES;
|
||||||
@@ -79,7 +78,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
private LazyJavaSubModule getSubModule() {
|
private LazyJavaSubModule getSubModule() {
|
||||||
if (subModule == null) {
|
if (subModule == null) {
|
||||||
subModule = new LazyJavaSubModule(
|
subModule = new LazyJavaSubModule(
|
||||||
new LazyJavaResolverContext(
|
new GlobalJavaResolverContext(
|
||||||
new LockBasedStorageManager(),
|
new LockBasedStorageManager(),
|
||||||
javaClassFinder,
|
javaClassFinder,
|
||||||
new LazyJavaClassResolver() {
|
new LazyJavaClassResolver() {
|
||||||
|
|||||||
+3
-2
@@ -9,10 +9,11 @@ import org.jetbrains.jet.lang.resolve.java.structure.JavaClass
|
|||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||||
|
|
||||||
public open class LazyJavaSubModule(
|
public open class LazyJavaSubModule(
|
||||||
private val outerContext: LazyJavaResolverContext,
|
private val outerContext: GlobalJavaResolverContext,
|
||||||
module: ModuleDescriptor
|
private val module: ModuleDescriptor
|
||||||
) {
|
) {
|
||||||
private val c = LazyJavaResolverContext(
|
private val c = LazyJavaResolverContext(
|
||||||
|
this,
|
||||||
outerContext.storageManager,
|
outerContext.storageManager,
|
||||||
outerContext.finder,
|
outerContext.finder,
|
||||||
SubModuleClassResolver(),
|
SubModuleClassResolver(),
|
||||||
|
|||||||
+12
-2
@@ -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.descriptors.annotations.AnnotationDescriptor
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver
|
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver
|
||||||
|
|
||||||
open class LazyJavaResolverContext(
|
open class GlobalJavaResolverContext(
|
||||||
val storageManager: StorageManager,
|
val storageManager: StorageManager,
|
||||||
val finder: JavaClassFinder,
|
val finder: JavaClassFinder,
|
||||||
val javaClassResolver: LazyJavaClassResolver,
|
val javaClassResolver: LazyJavaClassResolver,
|
||||||
val externalAnnotationResolver: ExternalAnnotationResolver
|
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(
|
fun LazyJavaResolverContext.withTypes(
|
||||||
typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY
|
typeParameterResolver: TypeParameterResolver = TypeParameterResolver.EMPTY
|
||||||
) = LazyJavaResolverContextWithTypes(
|
) = LazyJavaResolverContextWithTypes(
|
||||||
|
subModule,
|
||||||
storageManager,
|
storageManager,
|
||||||
finder,
|
finder,
|
||||||
javaClassResolver,
|
javaClassResolver,
|
||||||
@@ -44,13 +53,14 @@ fun LazyJavaResolverContext.withTypes(
|
|||||||
typeParameterResolver)
|
typeParameterResolver)
|
||||||
|
|
||||||
class LazyJavaResolverContextWithTypes(
|
class LazyJavaResolverContextWithTypes(
|
||||||
|
subModule: LazyJavaSubModule,
|
||||||
storageManager: StorageManager,
|
storageManager: StorageManager,
|
||||||
finder: JavaClassFinder,
|
finder: JavaClassFinder,
|
||||||
javaClassResolver: LazyJavaClassResolver,
|
javaClassResolver: LazyJavaClassResolver,
|
||||||
externalAnnotationResolver: ExternalAnnotationResolver,
|
externalAnnotationResolver: ExternalAnnotationResolver,
|
||||||
val typeResolver: LazyJavaTypeResolver,
|
val typeResolver: LazyJavaTypeResolver,
|
||||||
val typeParameterResolver: TypeParameterResolver
|
val typeParameterResolver: TypeParameterResolver
|
||||||
) : LazyJavaResolverContext(storageManager, finder, javaClassResolver, externalAnnotationResolver)
|
) : LazyJavaResolverContext(subModule, storageManager, finder, javaClassResolver, externalAnnotationResolver)
|
||||||
|
|
||||||
fun LazyJavaResolverContextWithTypes.child(
|
fun LazyJavaResolverContextWithTypes.child(
|
||||||
containingDeclaration: DeclarationDescriptor,
|
containingDeclaration: DeclarationDescriptor,
|
||||||
|
|||||||
Reference in New Issue
Block a user