Delete InjectorForJDR.getPsiClassFinder()

Replace its usages by getJavaClassFinder(). Remove code duplication in
AnalyzerFacadeForJVM/LazyResolveTestUtil
This commit is contained in:
Alexander Udalov
2013-09-05 22:04:11 +04:00
parent c4c3657549
commit 7fa39eb41b
5 changed files with 34 additions and 63 deletions
@@ -106,7 +106,7 @@ public class InjectorForJavaDescriptorResolver {
this.javaPropertyResolver = new JavaPropertyResolver();
this.javaSupertypeResolver = new JavaSupertypeResolver();
javaClassFinder.setPsiClassFinder(psiClassFinder);
this.javaClassFinder.setPsiClassFinder(psiClassFinder);
traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
@@ -121,7 +121,7 @@ public class InjectorForJavaDescriptorResolver {
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
this.javaDescriptorResolver.setNamespaceResolver(javaNamespaceResolver);
this.psiClassFinder.setProject(project);
psiClassFinder.setProject(project);
virtualFileKotlinClassFinder.setVirtualFileFinder(virtualFileFinder);
@@ -202,12 +202,12 @@ public class InjectorForJavaDescriptorResolver {
public void destroy() {
}
public JavaClassFinderImpl getJavaClassFinder() {
return this.javaClassFinder;
}
public JavaDescriptorResolver getJavaDescriptorResolver() {
return this.javaDescriptorResolver;
}
public PsiClassFinderImpl getPsiClassFinder() {
return this.psiClassFinder;
}
}
@@ -81,32 +81,41 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
public ResolveSession getLazyResolveSession(@NotNull Project fileProject, @NotNull Collection<JetFile> files) {
BindingTraceContext javaResolverTrace = new BindingTraceContext();
InjectorForJavaDescriptorResolver injector = new InjectorForJavaDescriptorResolver(fileProject, javaResolverTrace);
return createLazyResolveSession(fileProject, files, javaResolverTrace, injector, true);
}
final PsiClassFinder psiClassFinder = injector.getPsiClassFinder();
@NotNull
public static ResolveSession createLazyResolveSession(
@NotNull Project project,
@NotNull Collection<JetFile> files,
@NotNull BindingTrace trace,
@NotNull InjectorForJavaDescriptorResolver injector,
final boolean addBuiltIns
) {
final JavaClassFinderImpl classFinder = injector.getJavaClassFinder();
// TODO: Replace with stub declaration provider
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager();
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(storageManager, files, new Predicate<FqName>() {
@Override
public boolean apply(FqName fqName) {
return psiClassFinder.findPsiPackage(fqName) != null || new FqName("jet").equals(fqName);
return classFinder.findPackage(fqName) != null || KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(fqName);
}
});
final JavaDescriptorResolver javaDescriptorResolver = injector.getJavaDescriptorResolver();
ModuleConfiguration moduleConfiguration = new ModuleConfiguration() {
@Override
public void extendNamespaceScope(
@NotNull NamespaceDescriptor namespaceDescriptor,
@NotNull WritableScope namespaceMemberScope
) {
FqName fqName = DescriptorUtils.getFQName(namespaceDescriptor).toSafe();
if (new FqName("jet").equals(fqName)) {
if (KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(fqName) && addBuiltIns) {
namespaceMemberScope.importScope(KotlinBuiltIns.getInstance().getBuiltInsScope());
}
if (psiClassFinder.findPsiPackage(fqName) != null) {
if (classFinder.findPackage(fqName) != null) {
JetScope javaPackageScope = javaDescriptorResolver.getJavaPackageScope(namespaceDescriptor);
assert javaPackageScope != null;
namespaceMemberScope.importScope(javaPackageScope);
@@ -117,7 +126,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
ModuleDescriptorImpl lazyModule = createJavaModule("<lazy module>");
lazyModule.setModuleConfiguration(moduleConfiguration);
return new ResolveSession(fileProject, storageManager, lazyModule, declarationProviderFactory, javaResolverTrace);
return new ResolveSession(project, storageManager, lazyModule, declarationProviderFactory, trace);
}
public static AnalyzeExhaust analyzeOneFileWithJavaIntegrationAndCheckForErrors(