Java resides in the same module as Kotlin

This commit is contained in:
Andrey Breslav
2013-10-30 15:31:53 +04:00
parent 834b306706
commit 645b878ac2
@@ -21,6 +21,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.PlatformToKotlinClassMap; 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.ModuleDescriptor;
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.GlobalJavaResolverContext;
@@ -50,6 +51,9 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
} }
public static final Name JAVA_ROOT = Name.special("<java_root>"); public static final Name JAVA_ROOT = Name.special("<java_root>");
public static final ModuleDescriptor FAKE_JAVA_MODULE = new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(),
PlatformToKotlinClassMap.EMPTY);
private final LockBasedStorageManager storageManager = new LockBasedStorageManager(); private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
private final MemoizedFunctionToNullable<FqName, ClassDescriptor> kotlinClassesFromBinaries = storageManager.createMemoizedFunctionWithNullableValues( private final MemoizedFunctionToNullable<FqName, ClassDescriptor> kotlinClassesFromBinaries = storageManager.createMemoizedFunctionWithNullableValues(
@@ -80,6 +84,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
private JavaResolverCache javaResolverCache; private JavaResolverCache javaResolverCache;
private DeserializedDescriptorResolver deserializedDescriptorResolver; private DeserializedDescriptorResolver deserializedDescriptorResolver;
private KotlinClassFinder kotlinClassFinder; private KotlinClassFinder kotlinClassFinder;
private ModuleDescriptor module;
@Inject @Inject
public void setClassResolver(JavaClassResolver classResolver) { public void setClassResolver(JavaClassResolver classResolver) {
@@ -131,6 +136,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
this.kotlinClassFinder = kotlinClassFinder; this.kotlinClassFinder = kotlinClassFinder;
} }
@Inject
public void setModule(ModuleDescriptor module) {
this.module = module;
}
@NotNull @NotNull
private LazyJavaSubModule getSubModule() { private LazyJavaSubModule getSubModule() {
if (subModule == null) { if (subModule == null) {
@@ -170,7 +180,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
signatureChecker, signatureChecker,
javaResolverCache javaResolverCache
), ),
new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY) module
); );
} }
return subModule; return subModule;