Same storage manager used by lazy resolve session in AnalyzerFacadeForJVM and the rest of the components

This commit is contained in:
Andrey Breslav
2014-01-17 12:29:37 +04:00
parent 1af71c4dbe
commit 8f56283771
8 changed files with 122 additions and 18 deletions
@@ -50,7 +50,7 @@ public class InjectorForJavaDescriptorResolver {
private final Project project;
private final BindingTrace bindingTrace;
private final LockBasedStorageManager storageManager;
private final LockBasedStorageManager lockBasedStorageManager;
private final JavaClassFinderImpl javaClassFinder;
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
@@ -81,7 +81,7 @@ public class InjectorForJavaDescriptorResolver {
) {
this.project = project;
this.bindingTrace = bindingTrace;
this.storageManager = new LockBasedStorageManager();
this.lockBasedStorageManager = new LockBasedStorageManager();
this.javaClassFinder = new JavaClassFinderImpl();
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
@@ -96,7 +96,7 @@ public class InjectorForJavaDescriptorResolver {
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
this.javaClassResolver = new JavaClassResolver();
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(getLockBasedStorageManager());
this.javaFunctionResolver = new JavaFunctionResolver();
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
this.javaTypeTransformer = new JavaTypeTransformer();
@@ -129,7 +129,7 @@ public class InjectorForJavaDescriptorResolver {
this.javaDescriptorResolver.setModule(module);
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
this.javaDescriptorResolver.setStorageManager(storageManager);
this.javaDescriptorResolver.setStorageManager(lockBasedStorageManager);
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
@@ -162,7 +162,7 @@ public class InjectorForJavaDescriptorResolver {
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
deserializedDescriptorResolver.setStorageManager(storageManager);
deserializedDescriptorResolver.setStorageManager(lockBasedStorageManager);
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
@@ -211,6 +211,10 @@ public class InjectorForJavaDescriptorResolver {
public void destroy() {
}
public LockBasedStorageManager getLockBasedStorageManager() {
return this.lockBasedStorageManager;
}
public JavaClassFinderImpl getJavaClassFinder() {
return this.javaClassFinder;
}
@@ -100,7 +100,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
final JavaClassFinderImpl classFinder = injector.getJavaClassFinder();
// TODO: Replace with stub declaration provider
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager();
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(injector.getLockBasedStorageManager());
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(storageManager, files, new Predicate<FqName>() {
@Override
public boolean apply(FqName fqName) {