Replace direct usages of TopDownLazyResolveForJava with facade

This commit is contained in:
Nikolay Krasko
2014-09-18 19:16:45 +04:00
committed by Nikolay Krasko
parent 92d6ac7e7c
commit 9809e4fd0a
3 changed files with 51 additions and 24 deletions
@@ -58,20 +58,32 @@ public enum TopDownAnalyzerFacadeForJVM {
@NotNull @NotNull
public static AnalysisResult analyzeFilesWithJavaIntegration( public static AnalysisResult analyzeFilesWithJavaIntegration(
Project project, @NotNull Project project,
Collection<JetFile> files, @NotNull Collection<JetFile> files,
BindingTrace trace, @NotNull BindingTrace trace,
Predicate<PsiFile> filesToAnalyzeCompletely, @NotNull TopDownAnalysisParameters topDownAnalysisParameters,
ModuleDescriptorImpl module, @NotNull ModuleDescriptorImpl module
) {
return analyzeFilesWithJavaIntegration(project, files, trace, topDownAnalysisParameters, module, null, null);
}
@NotNull
public static AnalysisResult analyzeFilesWithJavaIntegration(
@NotNull Project project,
@NotNull Collection<JetFile> files,
@NotNull BindingTrace trace,
@NotNull Predicate<PsiFile> filesToAnalyzeCompletely,
@NotNull ModuleDescriptorImpl module,
@Nullable List<String> moduleIds, @Nullable List<String> moduleIds,
@Nullable IncrementalCacheProvider incrementalCacheProvider @Nullable IncrementalCacheProvider incrementalCacheProvider
) { ) {
GlobalContext globalContext = ContextPackage.GlobalContext(); return analyzeFilesWithJavaIntegrationWithCustomContext(
return analyzeFilesWithJavaIntegrationWithCustomContext(project, globalContext, files, trace, filesToAnalyzeCompletely, module, project, ContextPackage.GlobalContext(), files, trace,
moduleIds, filesToAnalyzeCompletely, module, moduleIds,
incrementalCacheProvider); incrementalCacheProvider);
} }
@NotNull
public static AnalysisResult analyzeFilesWithJavaIntegrationWithCustomContext( public static AnalysisResult analyzeFilesWithJavaIntegrationWithCustomContext(
@NotNull Project project, @NotNull Project project,
@NotNull GlobalContext globalContext, @NotNull GlobalContext globalContext,
@@ -90,6 +102,20 @@ public enum TopDownAnalyzerFacadeForJVM {
false false
); );
return analyzeFilesWithJavaIntegration(
project, files, trace, topDownAnalysisParameters, module, moduleIds, incrementalCacheProvider);
}
@NotNull
private static AnalysisResult analyzeFilesWithJavaIntegration(
Project project,
Collection<JetFile> files,
BindingTrace trace,
TopDownAnalysisParameters topDownAnalysisParameters,
ModuleDescriptorImpl module,
@Nullable List<String> moduleIds,
@Nullable IncrementalCacheProvider incrementalCacheProvider
) {
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module); InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
try { try {
List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>(); List<PackageFragmentProvider> additionalProviders = new ArrayList<PackageFragmentProvider>();
@@ -100,7 +126,7 @@ public enum TopDownAnalyzerFacadeForJVM {
additionalProviders.add( additionalProviders.add(
new IncrementalPackageFragmentProvider( new IncrementalPackageFragmentProvider(
files, module, globalContext.getStorageManager(), injector.getDeserializationGlobalContextForJava(), files, module, topDownAnalysisParameters.getStorageManager(), injector.getDeserializationGlobalContextForJava(),
incrementalCache, moduleId, injector.getJavaDescriptorResolver() incrementalCache, moduleId, injector.getJavaDescriptorResolver()
) )
); );
@@ -33,7 +33,6 @@ import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.config.CommonConfigurationKeys; import org.jetbrains.jet.config.CommonConfigurationKeys;
import org.jetbrains.jet.config.CompilerConfiguration; import org.jetbrains.jet.config.CompilerConfiguration;
import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedClassDescriptor; import org.jetbrains.jet.descriptors.serialization.descriptors.DeserializedClassDescriptor;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor; import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor;
@@ -43,6 +42,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.DescriptorUtils;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM;
import org.jetbrains.jet.lang.resolve.lazy.JvmResolveUtil; import org.jetbrains.jet.lang.resolve.lazy.JvmResolveUtil;
import org.jetbrains.jet.storage.ExceptionTracker; import org.jetbrains.jet.storage.ExceptionTracker;
import org.jetbrains.jet.storage.LockBasedStorageManager; import org.jetbrains.jet.storage.LockBasedStorageManager;
@@ -157,15 +157,13 @@ public abstract class AbstractLoadJavaTest extends TestCaseWithTmpdir {
false, false,
false false
); );
InjectorForTopDownAnalyzerForJvm injectorForAnalyzer = new InjectorForTopDownAnalyzerForJvm(
environment.getProject(),
parameters,
trace,
module);
injectorForAnalyzer.getTopDownAnalyzer().analyzeFiles( TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(
parameters, environment.getSourceFiles(), environment.getProject(),
injectorForAnalyzer.getJavaDescriptorResolver().getPackageFragmentProvider() environment.getSourceFiles(),
trace,
parameters,
module
); );
PackageViewDescriptor packageView = module.getPackage(TEST_PACKAGE_FQNAME); PackageViewDescriptor packageView = module.getPackage(TEST_PACKAGE_FQNAME);
@@ -26,12 +26,12 @@ import org.jetbrains.jet.cli.jvm.compiler.CliLightClassGenerationSupport;
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment; import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment;
import org.jetbrains.jet.context.ContextPackage; import org.jetbrains.jet.context.ContextPackage;
import org.jetbrains.jet.context.GlobalContextImpl; import org.jetbrains.jet.context.GlobalContextImpl;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl; import org.jetbrains.jet.lang.descriptors.impl.ModuleDescriptorImpl;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.resolve.BindingTrace; import org.jetbrains.jet.lang.resolve.BindingTrace;
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters; import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
import org.jetbrains.jet.lang.resolve.java.TopDownAnalyzerFacadeForJVM;
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;
@@ -54,10 +54,13 @@ public class LazyResolveTestUtil {
BindingTrace sharedTrace = support.getTrace(); BindingTrace sharedTrace = support.getTrace();
ModuleDescriptorImpl sharedModule = support.newModule(); ModuleDescriptorImpl sharedModule = support.newModule();
InjectorForTopDownAnalyzerForJvm injector = TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(
new InjectorForTopDownAnalyzerForJvm(environment.getProject(), params, sharedTrace, sharedModule); environment.getProject(),
injector.getTopDownAnalyzer().analyzeFiles(params, files, injector.getJavaDescriptorResolver().getPackageFragmentProvider()); files,
return injector.getModuleDescriptor(); sharedTrace,
params, sharedModule);
return sharedModule;
} }
@NotNull @NotNull