Using common storage manager for all lazy services
This commit is contained in:
+6
-1
@@ -18,6 +18,7 @@ package org.jetbrains.jet.di;
|
|||||||
|
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
|
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
||||||
@@ -49,6 +50,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
|
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final BindingTrace bindingTrace;
|
private final BindingTrace bindingTrace;
|
||||||
|
private final LockBasedStorageManager storageManager;
|
||||||
private final JavaClassFinderImpl javaClassFinder;
|
private final JavaClassFinderImpl javaClassFinder;
|
||||||
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
||||||
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
||||||
@@ -79,6 +81,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
) {
|
) {
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.bindingTrace = bindingTrace;
|
this.bindingTrace = bindingTrace;
|
||||||
|
this.storageManager = new LockBasedStorageManager();
|
||||||
this.javaClassFinder = new JavaClassFinderImpl();
|
this.javaClassFinder = new JavaClassFinderImpl();
|
||||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||||
@@ -93,7 +96,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
||||||
this.javaClassResolver = new JavaClassResolver();
|
this.javaClassResolver = new JavaClassResolver();
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
this.javaFunctionResolver = new JavaFunctionResolver();
|
||||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||||
@@ -126,6 +129,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
this.javaDescriptorResolver.setModule(module);
|
this.javaDescriptorResolver.setModule(module);
|
||||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||||
|
this.javaDescriptorResolver.setStorageManager(storageManager);
|
||||||
|
|
||||||
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
||||||
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||||
@@ -158,6 +162,7 @@ public class InjectorForJavaDescriptorResolver {
|
|||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
|
deserializedDescriptorResolver.setStorageManager(storageManager);
|
||||||
|
|
||||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
|
|||||||
+6
-1
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
@@ -81,6 +82,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
private final DeclarationsChecker declarationsChecker;
|
private final DeclarationsChecker declarationsChecker;
|
||||||
private final DescriptorResolver descriptorResolver;
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final LockBasedStorageManager storageManager;
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
@@ -141,6 +143,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.storageManager = new LockBasedStorageManager();
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
@@ -180,7 +183,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
||||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer();
|
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
this.javaFunctionResolver = new JavaFunctionResolver();
|
||||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
||||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
||||||
@@ -235,6 +238,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
this.javaDescriptorResolver.setModule(moduleDescriptor);
|
this.javaDescriptorResolver.setModule(moduleDescriptor);
|
||||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||||
|
this.javaDescriptorResolver.setStorageManager(storageManager);
|
||||||
|
|
||||||
javaClassFinder.setProject(project);
|
javaClassFinder.setProject(project);
|
||||||
|
|
||||||
@@ -352,6 +356,7 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
|||||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||||
|
deserializedDescriptorResolver.setStorageManager(storageManager);
|
||||||
|
|
||||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
@@ -60,6 +61,7 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
private final DeclarationsChecker declarationsChecker;
|
private final DeclarationsChecker declarationsChecker;
|
||||||
private final DescriptorResolver descriptorResolver;
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final LockBasedStorageManager storageManager;
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
@@ -100,6 +102,7 @@ public class InjectorForTopDownAnalyzerBasic {
|
|||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.storageManager = new LockBasedStorageManager();
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
|
|||||||
+7
-3
@@ -31,7 +31,7 @@ import org.jetbrains.jet.lang.resolve.kotlin.KotlinClassFinder;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver;
|
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolver;
|
||||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -46,8 +46,7 @@ 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>");
|
||||||
|
|
||||||
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
private StorageManager storageManager;
|
||||||
|
|
||||||
private JavaClassResolver classResolver;
|
private JavaClassResolver classResolver;
|
||||||
private JavaPackageFragmentProvider packageFragmentProvider;
|
private JavaPackageFragmentProvider packageFragmentProvider;
|
||||||
private JavaClassFinder javaClassFinder;
|
private JavaClassFinder javaClassFinder;
|
||||||
@@ -61,6 +60,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
private KotlinClassFinder kotlinClassFinder;
|
private KotlinClassFinder kotlinClassFinder;
|
||||||
private ModuleDescriptor module;
|
private ModuleDescriptor module;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setStorageManager(StorageManager storageManager) {
|
||||||
|
this.storageManager = storageManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setClassResolver(JavaClassResolver classResolver) {
|
public void setClassResolver(JavaClassResolver classResolver) {
|
||||||
this.classResolver = classResolver;
|
this.classResolver = classResolver;
|
||||||
|
|||||||
+22
-19
@@ -34,12 +34,15 @@ import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames;
|
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames;
|
||||||
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
import org.jetbrains.jet.lang.resolve.java.JvmClassName;
|
||||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.ErrorReporter;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.types.ErrorUtils;
|
import org.jetbrains.jet.lang.types.ErrorUtils;
|
||||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
|
||||||
import org.jetbrains.jet.storage.MemoizedFunctionToNotNull;
|
import org.jetbrains.jet.storage.MemoizedFunctionToNotNull;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
@@ -56,25 +59,25 @@ public class AnnotationDescriptorDeserializer implements AnnotationDeserializer
|
|||||||
private KotlinClassFinder kotlinClassFinder;
|
private KotlinClassFinder kotlinClassFinder;
|
||||||
private ErrorReporter errorReporter;
|
private ErrorReporter errorReporter;
|
||||||
|
|
||||||
// TODO: a single instance of StorageManager for all computations in resolve-java
|
private final MemoizedFunctionToNotNull<KotlinJvmBinaryClass, Map<MemberSignature, List<AnnotationDescriptor>>> memberAnnotations;
|
||||||
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
|
||||||
|
|
||||||
private final MemoizedFunctionToNotNull<KotlinJvmBinaryClass, Map<MemberSignature, List<AnnotationDescriptor>>> memberAnnotations =
|
public AnnotationDescriptorDeserializer(@NotNull StorageManager storageManager) {
|
||||||
storageManager.createMemoizedFunction(
|
this.memberAnnotations = storageManager.createMemoizedFunction(
|
||||||
new Function1<KotlinJvmBinaryClass, Map<MemberSignature, List<AnnotationDescriptor>>>() {
|
new Function1<KotlinJvmBinaryClass, Map<MemberSignature, List<AnnotationDescriptor>>>() {
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public Map<MemberSignature, List<AnnotationDescriptor>> invoke(@NotNull KotlinJvmBinaryClass kotlinClass) {
|
public Map<MemberSignature, List<AnnotationDescriptor>> invoke(@NotNull KotlinJvmBinaryClass kotlinClass) {
|
||||||
try {
|
try {
|
||||||
return loadMemberAnnotationsFromClass(kotlinClass);
|
return loadMemberAnnotationsFromClass(kotlinClass);
|
||||||
}
|
|
||||||
catch (IOException e) {
|
|
||||||
errorReporter.reportAnnotationLoadingError(
|
|
||||||
"Error loading member annotations from Kotlin class: " + kotlinClass, e);
|
|
||||||
return Collections.emptyMap();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
catch (IOException e) {
|
||||||
|
errorReporter.reportAnnotationLoadingError(
|
||||||
|
"Error loading member annotations from Kotlin class: " + kotlinClass, e);
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public void setJavaDescriptorResolver(JavaDescriptorResolver javaDescriptorResolver) {
|
public void setJavaDescriptorResolver(JavaDescriptorResolver javaDescriptorResolver) {
|
||||||
|
|||||||
+7
-2
@@ -33,7 +33,7 @@ import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@@ -46,7 +46,7 @@ import static org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kin
|
|||||||
public final class DeserializedDescriptorResolver {
|
public final class DeserializedDescriptorResolver {
|
||||||
private AnnotationDescriptorDeserializer annotationDeserializer;
|
private AnnotationDescriptorDeserializer annotationDeserializer;
|
||||||
|
|
||||||
private final LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
private StorageManager storageManager;
|
||||||
|
|
||||||
private JavaPackageFragmentProvider javaPackageFragmentProvider;
|
private JavaPackageFragmentProvider javaPackageFragmentProvider;
|
||||||
|
|
||||||
@@ -89,6 +89,11 @@ public final class DeserializedDescriptorResolver {
|
|||||||
this.errorReporter = errorReporter;
|
this.errorReporter = errorReporter;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
public void setStorageManager(StorageManager storageManager) {
|
||||||
|
this.storageManager = storageManager;
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public ClassDescriptor resolveClass(@NotNull KotlinJvmBinaryClass kotlinClass) {
|
public ClassDescriptor resolveClass(@NotNull KotlinJvmBinaryClass kotlinClass) {
|
||||||
String[] data = readData(kotlinClass, CLASS);
|
String[] data = readData(kotlinClass, CLASS);
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
|||||||
import org.jetbrains.jet.di.DependencyInjectorGenerator;
|
import org.jetbrains.jet.di.DependencyInjectorGenerator;
|
||||||
import org.jetbrains.jet.di.GivenExpression;
|
import org.jetbrains.jet.di.GivenExpression;
|
||||||
import org.jetbrains.jet.di.InjectorForTopDownAnalyzer;
|
import org.jetbrains.jet.di.InjectorForTopDownAnalyzer;
|
||||||
|
import org.jetbrains.jet.di.InstantiateType;
|
||||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||||
@@ -43,6 +44,8 @@ import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
|||||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
|
import org.jetbrains.jet.storage.StorageManager;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -149,6 +152,7 @@ public class GenerateInjectors {
|
|||||||
generator.addParameter(BindingTrace.class);
|
generator.addParameter(BindingTrace.class);
|
||||||
|
|
||||||
// Fields
|
// Fields
|
||||||
|
generator.addField(false, StorageManager.class, null, new InstantiateType(LockBasedStorageManager.class));
|
||||||
generator.addPublicField(JavaClassFinderImpl.class);
|
generator.addPublicField(JavaClassFinderImpl.class);
|
||||||
generator.addField(TraceBasedExternalSignatureResolver.class);
|
generator.addField(TraceBasedExternalSignatureResolver.class);
|
||||||
generator.addField(TraceBasedJavaResolverCache.class);
|
generator.addField(TraceBasedJavaResolverCache.class);
|
||||||
@@ -175,6 +179,7 @@ public class GenerateInjectors {
|
|||||||
generator.addPublicField(ControlFlowAnalyzer.class);
|
generator.addPublicField(ControlFlowAnalyzer.class);
|
||||||
generator.addPublicField(DeclarationsChecker.class);
|
generator.addPublicField(DeclarationsChecker.class);
|
||||||
generator.addPublicField(DescriptorResolver.class);
|
generator.addPublicField(DescriptorResolver.class);
|
||||||
|
generator.addField(false, StorageManager.class, null, new InstantiateType(LockBasedStorageManager.class));
|
||||||
generator.addField(CallResolverExtensionProvider.class);
|
generator.addField(CallResolverExtensionProvider.class);
|
||||||
|
|
||||||
// Parameters
|
// Parameters
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.jetbrains.jet.lang.resolve.BodyResolver;
|
|||||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||||
|
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||||
@@ -60,6 +61,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||||
private final DeclarationsChecker declarationsChecker;
|
private final DeclarationsChecker declarationsChecker;
|
||||||
private final DescriptorResolver descriptorResolver;
|
private final DescriptorResolver descriptorResolver;
|
||||||
|
private final LockBasedStorageManager storageManager;
|
||||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||||
private final Project project;
|
private final Project project;
|
||||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||||
@@ -99,6 +101,7 @@ public class InjectorForTopDownAnalyzerForJs {
|
|||||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||||
this.declarationsChecker = new DeclarationsChecker();
|
this.declarationsChecker = new DeclarationsChecker();
|
||||||
this.descriptorResolver = new DescriptorResolver();
|
this.descriptorResolver = new DescriptorResolver();
|
||||||
|
this.storageManager = new LockBasedStorageManager();
|
||||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||||
this.project = project;
|
this.project = project;
|
||||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||||
|
|||||||
Reference in New Issue
Block a user