Declaration providers and resolve session are protected by a storage manager
This commit is contained in:
@@ -40,6 +40,7 @@ import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.FileBasedDeclarationProviderFactory;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
@@ -198,7 +199,8 @@ public class JetSourceNavigationHelper {
|
||||
}
|
||||
|
||||
Project project = decompiledDeclaration.getProject();
|
||||
FileBasedDeclarationProviderFactory providerFactory = new FileBasedDeclarationProviderFactory(getContainingFiles(candidates),
|
||||
LockBasedStorageManager storageManager = new LockBasedStorageManager();
|
||||
FileBasedDeclarationProviderFactory providerFactory = new FileBasedDeclarationProviderFactory(storageManager, getContainingFiles(candidates),
|
||||
new Predicate<FqName>() {
|
||||
@Override
|
||||
public boolean apply(@Nullable FqName fqName) {
|
||||
@@ -207,6 +209,7 @@ public class JetSourceNavigationHelper {
|
||||
});
|
||||
ResolveSession resolveSession = new ResolveSession(
|
||||
project,
|
||||
storageManager,
|
||||
new ModuleDescriptor(Name.special("<library module>")),
|
||||
DefaultModuleConfiguration.createStandardConfiguration(project),
|
||||
providerFactory);
|
||||
|
||||
+5
-6
@@ -19,10 +19,7 @@ package org.jetbrains.jet.plugin.stubindex.resolve;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ClassMemberDeclarationProvider;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.DeclarationProviderFactory;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.PackageMemberDeclarationProvider;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.PsiBasedClassMemberDeclarationProvider;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.*;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.data.JetClassLikeInfo;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
|
||||
@@ -30,16 +27,18 @@ public class StubDeclarationProviderFactory implements DeclarationProviderFactor
|
||||
|
||||
private final Project project;
|
||||
private final GlobalSearchScope searchScope;
|
||||
private final StorageManager storageManager;
|
||||
|
||||
public StubDeclarationProviderFactory(@NotNull Project project, @NotNull GlobalSearchScope scope) {
|
||||
public StubDeclarationProviderFactory(@NotNull Project project, @NotNull GlobalSearchScope scope, @NotNull StorageManager manager) {
|
||||
this.project = project;
|
||||
searchScope = scope;
|
||||
storageManager = manager;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ClassMemberDeclarationProvider getClassMemberDeclarationProvider(@NotNull JetClassLikeInfo classLikeInfo) {
|
||||
return new PsiBasedClassMemberDeclarationProvider(classLikeInfo);
|
||||
return new PsiBasedClassMemberDeclarationProvider(storageManager, classLikeInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user