merge analyzeBodies functions from JS and JVM backend

This commit is contained in:
Stepan Koltsov
2012-06-13 19:53:08 +04:00
parent 9290f55bad
commit edad5c9266
3 changed files with 66 additions and 41 deletions
@@ -24,6 +24,7 @@ import com.intellij.psi.PsiFile;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything;
import org.jetbrains.jet.di.InjectorForBodyResolve;
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJs;
import org.jetbrains.jet.lang.DefaultModuleConfiguration;
@@ -110,25 +111,11 @@ public final class AnalyzerFacadeForJS {
@NotNull Predicate<PsiFile> filesToAnalyzeCompletely,
@NotNull Config config,
@NotNull BindingTrace traceContext,
@NotNull BodiesResolveContext bodiesResolveContext
) {
Project project = config.getProject();
@NotNull BodiesResolveContext bodiesResolveContext) {
Predicate<PsiFile> completely = Predicates.and(notLibFiles(config.getLibFiles()), filesToAnalyzeCompletely);
TopDownAnalysisParameters topDownAnalysisParameters =
new TopDownAnalysisParameters(completely, false, false, Collections.<AnalyzerScriptParameter>emptyList());
InjectorForBodyResolve injector = new InjectorForBodyResolve(
project, topDownAnalysisParameters, new ObservableBindingTrace(traceContext));
try {
bodiesResolveContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
injector.getBodyResolver().resolveBodies(bodiesResolveContext);
return AnalyzeExhaust.success(traceContext.getBindingContext(), JetStandardLibrary.getInstance());
}
finally {
injector.destroy();
}
return AnalyzerFacadeForEverything.analyzeBodiesInFilesWithJavaIntegration(
config.getProject(), Collections.<AnalyzerScriptParameter>emptyList(), completely, traceContext, bodiesResolveContext);
}
private static void checkForErrors(@NotNull Collection<JetFile> allFiles, @NotNull BindingContext bindingContext) {