Rename deserialization context for Java to "components"
Simplify its injection to DeserializedDescriptorResolver
This commit is contained in:
+4
-4
@@ -37,7 +37,7 @@ import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.JavaClassDataFinder;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorLoadersStorage;
|
||||
@@ -70,7 +70,7 @@ public class InjectorForJavaDescriptorResolver {
|
||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
|
||||
private final DeserializationComponentsForJava deserializationComponentsForJava;
|
||||
private final JavaClassDataFinder javaClassDataFinder;
|
||||
private final AnnotationDescriptorLoader annotationDescriptorLoader;
|
||||
private final DescriptorLoadersStorage descriptorLoadersStorage;
|
||||
@@ -105,7 +105,7 @@ public class InjectorForJavaDescriptorResolver {
|
||||
this.descriptorLoadersStorage = new DescriptorLoadersStorage(lockBasedStorageManager, getModule());
|
||||
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(lockBasedStorageManager, getModule(), descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(lockBasedStorageManager, getModule(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
this.deserializationComponentsForJava = new DeserializationComponentsForJava(lockBasedStorageManager, getModule(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
|
||||
this.javaClassFinder.setProject(project);
|
||||
this.javaClassFinder.setScope(globalSearchScope);
|
||||
@@ -123,7 +123,7 @@ public class InjectorForJavaDescriptorResolver {
|
||||
|
||||
singleModuleClassResolver.setResolver(javaDescriptorResolver);
|
||||
|
||||
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
|
||||
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
|
||||
|
||||
javaClassFinder.initialize();
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.JavaClassDataFinder;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorLoader;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DescriptorLoadersStorage;
|
||||
@@ -126,7 +126,7 @@ public class InjectorForLazyResolveWithJava {
|
||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
|
||||
private final DeserializationComponentsForJava deserializationComponentsForJava;
|
||||
private final JavaClassDataFinder javaClassDataFinder;
|
||||
private final AnnotationDescriptorLoader annotationDescriptorLoader;
|
||||
private final DescriptorLoadersStorage descriptorLoadersStorage;
|
||||
@@ -194,7 +194,7 @@ public class InjectorForLazyResolveWithJava {
|
||||
this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager, module);
|
||||
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(storageManager, module, descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, module, javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, module, javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
|
||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||
@@ -272,7 +272,7 @@ public class InjectorForLazyResolveWithJava {
|
||||
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
|
||||
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
|
||||
|
||||
javaClassFinder.initialize();
|
||||
|
||||
|
||||
+6
-6
@@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.LazyTopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava;
|
||||
import org.jetbrains.jet.lang.resolve.AdditionalCheckerProvider;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||
@@ -98,7 +98,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
private final LazyTopDownAnalyzer lazyTopDownAnalyzer;
|
||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
private final DeserializationGlobalContextForJava deserializationGlobalContextForJava;
|
||||
private final DeserializationComponentsForJava deserializationComponentsForJava;
|
||||
private final AdditionalCheckerProvider additionalCheckerProvider;
|
||||
private final GlobalSearchScope globalSearchScope;
|
||||
private final JavaClassFinderImpl javaClassFinder;
|
||||
@@ -188,7 +188,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
this.descriptorLoadersStorage = new DescriptorLoadersStorage(storageManager, getModuleDescriptor());
|
||||
this.annotationDescriptorLoader = new AnnotationDescriptorLoader(storageManager, getModuleDescriptor(), descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.constantDescriptorLoader = new ConstantDescriptorLoader(descriptorLoadersStorage, virtualFileFinder, traceBasedErrorReporter);
|
||||
this.deserializationGlobalContextForJava = new DeserializationGlobalContextForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
this.deserializationComponentsForJava = new DeserializationComponentsForJava(storageManager, getModuleDescriptor(), javaClassDataFinder, annotationDescriptorLoader, constantDescriptorLoader, lazyJavaPackageFragmentProvider);
|
||||
this.additionalCheckerProvider = org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider.INSTANCE$;
|
||||
this.globalSearchScope = com.intellij.psi.search.GlobalSearchScope.allScope(project);
|
||||
this.javaFlexibleTypeCapabilitiesProvider = new JavaFlexibleTypeCapabilitiesProvider();
|
||||
@@ -356,7 +356,7 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
scriptHeaderResolver.setPackageFragmentProvider(mutablePackageFragmentProvider);
|
||||
scriptHeaderResolver.setTrace(bindingTrace);
|
||||
|
||||
deserializedDescriptorResolver.setContext(deserializationGlobalContextForJava);
|
||||
deserializedDescriptorResolver.setComponents(deserializationComponentsForJava);
|
||||
|
||||
javaClassFinder.initialize();
|
||||
|
||||
@@ -382,8 +382,8 @@ public class InjectorForTopDownAnalyzerForJvm {
|
||||
return this.javaDescriptorResolver;
|
||||
}
|
||||
|
||||
public DeserializationGlobalContextForJava getDeserializationGlobalContextForJava() {
|
||||
return this.deserializationGlobalContextForJava;
|
||||
public DeserializationComponentsForJava getDeserializationComponentsForJava() {
|
||||
return this.deserializationComponentsForJava;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -127,7 +127,7 @@ public enum TopDownAnalyzerFacadeForJVM {
|
||||
additionalProviders.add(
|
||||
new IncrementalPackageFragmentProvider(
|
||||
files, module, topDownAnalysisParameters.getStorageManager(),
|
||||
injector.getDeserializationGlobalContextForJava().getComponents(),
|
||||
injector.getDeserializationComponentsForJava().getComponents(),
|
||||
incrementalCache, moduleId, injector.getJavaDescriptorResolver()
|
||||
)
|
||||
);
|
||||
|
||||
+1
-1
@@ -23,7 +23,7 @@ import org.jetbrains.jet.descriptors.serialization.context.DeserializationCompon
|
||||
|
||||
// This class is needed only for easier injection: exact types of needed components are specified in the constructor here.
|
||||
// Otherwise injector generator is not smart enough to deduce, for example, which package fragment provider DeserializationComponents needs
|
||||
public class DeserializationGlobalContextForJava(
|
||||
public class DeserializationComponentsForJava(
|
||||
storageManager: StorageManager,
|
||||
moduleDescriptor: ModuleDescriptor,
|
||||
classDataFinder: JavaClassDataFinder,
|
||||
+6
-5
@@ -20,6 +20,7 @@ import kotlin.Function0;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.descriptors.serialization.JavaProtoBufUtil;
|
||||
import org.jetbrains.jet.descriptors.serialization.context.DeserializationComponents;
|
||||
import org.jetbrains.jet.descriptors.serialization.descriptors.DescriptorsPackage;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
|
||||
@@ -37,22 +38,22 @@ import static org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kin
|
||||
|
||||
public final class DeserializedDescriptorResolver {
|
||||
private final ErrorReporter errorReporter;
|
||||
private DeserializationGlobalContextForJava context;
|
||||
private DeserializationComponents components;
|
||||
|
||||
public DeserializedDescriptorResolver(@NotNull ErrorReporter errorReporter) {
|
||||
this.errorReporter = errorReporter;
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setContext(@NotNull DeserializationGlobalContextForJava context) {
|
||||
this.context = context;
|
||||
public void setComponents(@NotNull DeserializationComponentsForJava context) {
|
||||
this.components = context.getComponents();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public ClassDescriptor resolveClass(@NotNull KotlinJvmBinaryClass kotlinClass) {
|
||||
String[] data = readData(kotlinClass, CLASS);
|
||||
if (data != null) {
|
||||
return context.getComponents().getClassDeserializer().deserializeClass(
|
||||
return components.getClassDeserializer().deserializeClass(
|
||||
kotlinClass.getClassId(), JavaProtoBufUtil.readClassDataFrom(data)
|
||||
);
|
||||
}
|
||||
@@ -65,7 +66,7 @@ public final class DeserializedDescriptorResolver {
|
||||
if (data != null) {
|
||||
//all classes are included in java scope
|
||||
return DescriptorsPackage.DeserializedPackageMemberScope(
|
||||
descriptor, JavaProtoBufUtil.readPackageDataFrom(data), context.getComponents(),
|
||||
descriptor, JavaProtoBufUtil.readPackageDataFrom(data), components,
|
||||
new Function0<Collection<Name>>() {
|
||||
@Override
|
||||
public Collection<Name> invoke() {
|
||||
|
||||
@@ -22,8 +22,7 @@ import org.jetbrains.jet.context.GlobalContextImpl
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.jet.lang.resolve.*
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver
|
||||
import org.jetbrains.jet.lang.resolve.java.*
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.*
|
||||
import org.jetbrains.jet.lang.resolve.java.sam.SamConversionResolverImpl
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder
|
||||
@@ -37,13 +36,11 @@ import org.jetbrains.jet.lang.resolve.calls.CallResolver
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaPropertyInitializerEvaluatorImpl
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.ModuleClassResolver
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationGlobalContextForJava
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializationComponentsForJava
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.SingleModuleClassResolver
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinderFactory
|
||||
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.JavaDeclarationCheckerProvider
|
||||
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaFlexibleTypeCapabilitiesProvider
|
||||
import org.jetbrains.jet.context.LazyResolveToken
|
||||
|
||||
// NOTE: After making changes, you need to re-generate the injectors.
|
||||
@@ -122,7 +119,7 @@ private fun generatorForTopDownAnalyzerForJvm() =
|
||||
commonForTopDownAnalyzer()
|
||||
|
||||
publicField(javaClass<JavaDescriptorResolver>())
|
||||
publicField(javaClass<DeserializationGlobalContextForJava>())
|
||||
publicField(javaClass<DeserializationComponentsForJava>())
|
||||
|
||||
field(javaClass<AdditionalCheckerProvider>(),
|
||||
init = GivenExpression(javaClass<JavaDeclarationCheckerProvider>().getName() + ".INSTANCE$"))
|
||||
|
||||
Reference in New Issue
Block a user