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.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.ImportPath;
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 ModuleDescriptor FAKE_JAVA_MODULE = new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(),
PlatformToKotlinClassMap.EMPTY);
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
private final MemoizedFunctionToNullable<FqName, ClassDescriptor> kotlinClassesFromBinaries = storageManager.createMemoizedFunctionWithNullableValues(
@@ -80,6 +84,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
private JavaResolverCache javaResolverCache;
private DeserializedDescriptorResolver deserializedDescriptorResolver;
private KotlinClassFinder kotlinClassFinder;
private ModuleDescriptor module;
@Inject
public void setClassResolver(JavaClassResolver classResolver) {
@@ -131,6 +136,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
this.kotlinClassFinder = kotlinClassFinder;
}
@Inject
public void setModule(ModuleDescriptor module) {
this.module = module;
}
@NotNull
private LazyJavaSubModule getSubModule() {
if (subModule == null) {
@@ -170,7 +180,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
signatureChecker,
javaResolverCache
),
new ModuleDescriptorImpl(Name.special("<java module>"), Collections.<ImportPath>emptyList(), PlatformToKotlinClassMap.EMPTY)
module
);
}
return subModule;