提交 af2f2637 编写于 作者: A Andrey Breslav

Reuse a package fragment provider created by injector

上级 e1ae245d
......@@ -35,8 +35,6 @@ import org.jetbrains.jet.lang.resolve.*;
import org.jetbrains.jet.lang.resolve.java.JavaBridgeConfiguration;
import org.jetbrains.jet.lang.resolve.java.JavaClassResolutionFacadeImpl;
import org.jetbrains.jet.lang.resolve.java.JavaPackageFragmentProvider;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.lazy.storage.LockBasedStorageManager;
import org.jetbrains.jet.lang.resolve.lazy.storage.StorageManager;
import org.jetbrains.jet.lang.resolve.name.Name;
......@@ -95,16 +93,9 @@ public class SimpleKotlinModuleManager implements KotlinModuleManager {
InjectorForJavaDescriptorResolver drInjector = new InjectorForJavaDescriptorResolver(
project, trace, classResolutionFacade, storageManager, subModule, GlobalSearchScope.allScope(project)
);
PsiClassFinderImpl psiClassFinder = drInjector.getPsiClassFinder();
JavaPackageFragmentProvider javaPackageFragmentProvider = new JavaPackageFragmentProvider(
trace,
new LockBasedStorageManager(),
new PsiDeclarationProviderFactory(psiClassFinder),
drInjector.getJavaDescriptorResolver(),
psiClassFinder,
subModule
);
JavaPackageFragmentProvider javaPackageFragmentProvider = drInjector.getJavaPackageFragmentProvider();
subModule.addPackageFragmentProvider(javaPackageFragmentProvider);
classResolutionFacade.addPackageFragmentProvider(javaPackageFragmentProvider);
......
......@@ -27,6 +27,7 @@ import org.jetbrains.jet.lang.resolve.java.JavaDependencyByQualifiedNameResolver
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
import org.jetbrains.jet.lang.resolve.java.PsiClassFinderImpl;
import org.jetbrains.jet.lang.resolve.java.JavaPackageFragmentProvider;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
import org.jetbrains.jet.lang.resolve.java.JavaTypeTransformer;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
......@@ -39,7 +40,6 @@ import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassObjectResolver;
import org.jetbrains.jet.lang.resolve.java.provider.PsiDeclarationProviderFactory;
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
import org.jetbrains.jet.lang.resolve.java.JavaPackageFragmentProvider;
import org.jetbrains.annotations.NotNull;
import javax.annotation.PreDestroy;
......@@ -57,6 +57,7 @@ public class InjectorForJavaDescriptorResolver {
private JavaDescriptorResolver javaDescriptorResolver;
private JavaClassResolver javaClassResolver;
private PsiClassFinderImpl psiClassFinder;
private JavaPackageFragmentProvider javaPackageFragmentProvider;
private JavaConstructorResolver javaConstructorResolver;
private JavaTypeTransformer javaTypeTransformer;
private JavaValueParameterResolver javaValueParameterResolver;
......@@ -69,7 +70,6 @@ public class InjectorForJavaDescriptorResolver {
private JavaClassObjectResolver javaClassObjectResolver;
private PsiDeclarationProviderFactory psiDeclarationProviderFactory;
private JavaSupertypeResolver javaSupertypeResolver;
private JavaPackageFragmentProvider javaPackageFragmentProvider;
public InjectorForJavaDescriptorResolver(
@NotNull Project project,
......@@ -90,6 +90,8 @@ public class InjectorForJavaDescriptorResolver {
this.javaDescriptorResolver = new JavaDescriptorResolver();
this.javaClassResolver = new JavaClassResolver();
this.psiClassFinder = new PsiClassFinderImpl(getProject(), globalSearchScope);
this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
this.javaPackageFragmentProvider = new JavaPackageFragmentProvider(getBindingTrace(), storageManager, psiDeclarationProviderFactory, getJavaDescriptorResolver(), getPsiClassFinder(), subModuleDescriptor);
this.javaConstructorResolver = new JavaConstructorResolver();
this.javaTypeTransformer = new JavaTypeTransformer();
this.javaValueParameterResolver = new JavaValueParameterResolver();
......@@ -100,9 +102,7 @@ public class InjectorForJavaDescriptorResolver {
this.javaInnerClassResolver = new JavaInnerClassResolver();
this.javaPropertyResolver = new JavaPropertyResolver();
this.javaClassObjectResolver = new JavaClassObjectResolver();
this.psiDeclarationProviderFactory = new PsiDeclarationProviderFactory(getPsiClassFinder());
this.javaSupertypeResolver = new JavaSupertypeResolver();
this.javaPackageFragmentProvider = new JavaPackageFragmentProvider(getBindingTrace(), storageManager, psiDeclarationProviderFactory, getJavaDescriptorResolver(), getPsiClassFinder(), subModuleDescriptor);
this.javaDescriptorResolver.setClassResolutionFacade(javaClassResolutionFacade);
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
......@@ -192,4 +192,8 @@ public class InjectorForJavaDescriptorResolver {
return this.psiClassFinder;
}
public JavaPackageFragmentProvider getJavaPackageFragmentProvider() {
return this.javaPackageFragmentProvider;
}
}
......@@ -120,6 +120,7 @@ public class GenerateInjectors {
generator.addPublicField(JavaDescriptorResolver.class);
generator.addPublicField(JavaClassResolver.class);
generator.addPublicField(PsiClassFinderImpl.class);
generator.addPublicField(JavaPackageFragmentProvider.class);
generator.generate("compiler/frontend.java/src", "org.jetbrains.jet.di", "InjectorForJavaDescriptorResolver",
GenerateInjectors.class);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册