Wrap storage manager inside resolve session

This commit is contained in:
Andrey Breslav
2014-01-29 19:05:35 +04:00
parent 210827b1d5
commit 26ecf7666d
5 changed files with 12 additions and 15 deletions
@@ -36,7 +36,6 @@ import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap; import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
import org.jetbrains.jet.storage.LockBasedLazyResolveStorageManager;
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.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
@@ -101,7 +100,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
final JavaClassFinderImpl classFinder = injector.getJavaClassFinder(); final JavaClassFinderImpl classFinder = injector.getJavaClassFinder();
// TODO: Replace with stub declaration provider // TODO: Replace with stub declaration provider
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(injector.getLockBasedStorageManager()); LockBasedStorageManager storageManager = injector.getLockBasedStorageManager();
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(storageManager, files, new Predicate<FqName>() { FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(storageManager, files, new Predicate<FqName>() {
@Override @Override
public boolean apply(FqName fqName) { public boolean apply(FqName fqName) {
@@ -38,14 +38,13 @@ import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFacto
import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider; import org.jetbrains.jet.lang.resolve.lazy.declarations.PackageMemberDeclarationProvider;
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor; import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyClassDescriptor;
import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyPackageDescriptor; import org.jetbrains.jet.lang.resolve.lazy.descriptors.LazyPackageDescriptor;
import org.jetbrains.jet.storage.LazyResolveStorageManager;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
import org.jetbrains.jet.lang.resolve.name.SpecialNames; import org.jetbrains.jet.lang.resolve.name.SpecialNames;
import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.JetScope;
import org.jetbrains.jet.renderer.DescriptorRenderer; import org.jetbrains.jet.renderer.DescriptorRenderer;
import org.jetbrains.jet.storage.MemoizedFunctionToNullable; import org.jetbrains.jet.storage.*;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
@@ -81,7 +80,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull LazyResolveStorageManager storageManager, @NotNull LockBasedStorageManager storageManager,
@NotNull ModuleDescriptorImpl rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull DeclarationProviderFactory declarationProviderFactory @NotNull DeclarationProviderFactory declarationProviderFactory
) { ) {
@@ -92,7 +91,7 @@ public class ResolveSession implements KotlinCodeAnalyzer {
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull LazyResolveStorageManager storageManager, @NotNull LockBasedStorageManager storageManager,
@NotNull ModuleDescriptorImpl rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull DeclarationProviderFactory declarationProviderFactory, @NotNull DeclarationProviderFactory declarationProviderFactory,
@NotNull BindingTrace delegationTrace @NotNull BindingTrace delegationTrace
@@ -109,17 +108,18 @@ public class ResolveSession implements KotlinCodeAnalyzer {
@Deprecated // Internal use only @Deprecated // Internal use only
public ResolveSession( public ResolveSession(
@NotNull Project project, @NotNull Project project,
@NotNull LazyResolveStorageManager storageManager, @NotNull LockBasedStorageManager storageManager,
@NotNull ModuleDescriptorImpl rootDescriptor, @NotNull ModuleDescriptorImpl rootDescriptor,
@NotNull DeclarationProviderFactory declarationProviderFactory, @NotNull DeclarationProviderFactory declarationProviderFactory,
@NotNull Function<FqName, Name> classifierAliases, @NotNull Function<FqName, Name> classifierAliases,
@NotNull Predicate<FqNameUnsafe> specialClasses, @NotNull Predicate<FqNameUnsafe> specialClasses,
@NotNull BindingTrace delegationTrace @NotNull BindingTrace delegationTrace
) { ) {
this.storageManager = storageManager; LockBasedLazyResolveStorageManager lockBasedLazyResolveStorageManager = new LockBasedLazyResolveStorageManager(storageManager);
this.storageManager = lockBasedLazyResolveStorageManager;
this.classifierAliases = classifierAliases; this.classifierAliases = classifierAliases;
this.specialClasses = specialClasses; this.specialClasses = specialClasses;
this.trace = storageManager.createSafeTrace(delegationTrace); this.trace = lockBasedLazyResolveStorageManager.createSafeTrace(delegationTrace);
this.injector = new InjectorForLazyResolve(project, this, rootDescriptor); this.injector = new InjectorForLazyResolve(project, this, rootDescriptor);
this.module = rootDescriptor; this.module = rootDescriptor;
@@ -29,7 +29,6 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM; import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
import org.jetbrains.jet.storage.LockBasedLazyResolveStorageManager;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.renderer.DescriptorRenderer; import org.jetbrains.jet.renderer.DescriptorRenderer;
@@ -59,7 +58,7 @@ public abstract class AbstractLazyResolveDescriptorRendererTest extends KotlinTe
final ModuleDescriptorImpl lazyModule = AnalyzerFacadeForJVM.createJavaModule("<lazy module>"); final ModuleDescriptorImpl lazyModule = AnalyzerFacadeForJVM.createJavaModule("<lazy module>");
lazyModule.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider()); lazyModule.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(new LockBasedStorageManager()); LockBasedStorageManager storageManager = new LockBasedStorageManager();
final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule, final ResolveSession resolveSession = new ResolveSession(getProject(), storageManager, lazyModule,
new FileBasedDeclarationProviderFactory(storageManager, files)); new FileBasedDeclarationProviderFactory(storageManager, files));
@@ -55,7 +55,6 @@ import org.jetbrains.jet.lang.resolve.java.mapping.KotlinToJavaTypesMap;
import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer; import org.jetbrains.jet.lang.resolve.lazy.KotlinCodeAnalyzer;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession; import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory; import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
import org.jetbrains.jet.storage.LockBasedLazyResolveStorageManager;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe; import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.name.Name;
@@ -65,6 +64,7 @@ import org.jetbrains.jet.plugin.stubindex.JetFullClassNameIndex;
import org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionsFqnNameIndex; import org.jetbrains.jet.plugin.stubindex.JetTopLevelFunctionsFqnNameIndex;
import org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertiesFqnNameIndex; import org.jetbrains.jet.plugin.stubindex.JetTopLevelPropertiesFqnNameIndex;
import org.jetbrains.jet.storage.LockBasedStorageManager; import org.jetbrains.jet.storage.LockBasedStorageManager;
import org.jetbrains.jet.storage.StorageManager;
import java.util.Collection; import java.util.Collection;
import java.util.Collections; import java.util.Collections;
@@ -215,7 +215,7 @@ public class JetSourceNavigationHelper {
} }
Project project = decompiledDeclaration.getProject(); Project project = decompiledDeclaration.getProject();
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(new LockBasedStorageManager()); LockBasedStorageManager storageManager = new LockBasedStorageManager();
FileBasedDeclarationProviderFactory providerFactory = new FileBasedDeclarationProviderFactory(storageManager, getContainingFiles(candidates), FileBasedDeclarationProviderFactory providerFactory = new FileBasedDeclarationProviderFactory(storageManager, getContainingFiles(candidates),
new Predicate<FqName>() { new Predicate<FqName>() {
@Override @Override
@@ -37,7 +37,6 @@ import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProv
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.lang.KotlinBuiltIns; import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
import org.jetbrains.jet.storage.LockBasedLazyResolveStorageManager;
import org.jetbrains.jet.storage.LockBasedStorageManager; import org.jetbrains.jet.storage.LockBasedStorageManager;
import org.jetbrains.k2js.config.Config; import org.jetbrains.k2js.config.Config;
@@ -153,7 +152,7 @@ public final class AnalyzerFacadeForJS {
@NotNull @NotNull
public static ResolveSession getLazyResolveSession(Collection<JetFile> files, Config config) { public static ResolveSession getLazyResolveSession(Collection<JetFile> files, Config config) {
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(new LockBasedStorageManager()); LockBasedStorageManager storageManager = new LockBasedStorageManager();
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory( FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(
storageManager, Config.withJsLibAdded(files, config), Predicates.<FqName>alwaysFalse()); storageManager, Config.withJsLibAdded(files, config), Predicates.<FqName>alwaysFalse());
ModuleDescriptorImpl module = createJsModule("<lazy module>"); ModuleDescriptorImpl module = createJsModule("<lazy module>");