Eager methods removed from AnalyzerFacade
This commit is contained in:
-24
@@ -59,30 +59,6 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
||||
private AnalyzerFacadeForJVM() {
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public AnalyzeExhaust analyzeFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull Predicate<PsiFile> filesToAnalyzeCompletely
|
||||
) {
|
||||
return analyzeFilesWithJavaIntegration(project, files, filesToAnalyzeCompletely, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalyzeExhaust analyzeBodiesInFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Predicate<PsiFile> filesForBodiesResolve,
|
||||
@NotNull BindingTrace headersTraceContext,
|
||||
@NotNull BodiesResolveContext bodiesResolveContext,
|
||||
@NotNull ModuleDescriptor module
|
||||
) {
|
||||
return AnalyzerFacadeForEverything.analyzeBodiesInFilesWithJavaIntegration(
|
||||
project, filesForBodiesResolve,
|
||||
headersTraceContext, bodiesResolveContext, module);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ResolveSession getLazyResolveSession(@NotNull Project fileProject, @NotNull Collection<JetFile> files) {
|
||||
|
||||
@@ -16,36 +16,15 @@
|
||||
|
||||
package org.jetbrains.jet.analyzer;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface AnalyzerFacade {
|
||||
|
||||
@NotNull
|
||||
AnalyzeExhaust analyzeFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull Predicate<PsiFile> filesToAnalyzeCompletely
|
||||
);
|
||||
|
||||
@NotNull
|
||||
AnalyzeExhaust analyzeBodiesInFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Predicate<PsiFile> filesForBodiesResolve,
|
||||
@NotNull BindingTrace traceContext,
|
||||
@NotNull BodiesResolveContext bodiesResolveContext,
|
||||
@NotNull ModuleDescriptor module
|
||||
);
|
||||
|
||||
@NotNull
|
||||
ResolveSession getLazyResolveSession(
|
||||
@NotNull Project project,
|
||||
|
||||
@@ -16,16 +16,10 @@
|
||||
|
||||
package org.jetbrains.jet.plugin.project;
|
||||
|
||||
import com.google.common.base.Predicate;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.analyzer.AnalyzerFacade;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.k2js.analyze.AnalyzerFacadeForJS;
|
||||
|
||||
@@ -38,28 +32,6 @@ public enum JSAnalyzerFacadeForIDEA implements AnalyzerFacade {
|
||||
private JSAnalyzerFacadeForIDEA() {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalyzeExhaust analyzeFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Collection<JetFile> files,
|
||||
@NotNull Predicate<PsiFile> filesToAnalyzeCompletely
|
||||
) {
|
||||
return AnalyzerFacadeForJS.analyzeFiles(files, filesToAnalyzeCompletely, new IDEAConfig(project), true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public AnalyzeExhaust analyzeBodiesInFiles(
|
||||
@NotNull Project project,
|
||||
@NotNull Predicate<PsiFile> filesForBodiesResolve,
|
||||
@NotNull BindingTrace traceContext,
|
||||
@NotNull BodiesResolveContext bodiesResolveContext,
|
||||
@NotNull ModuleDescriptor module
|
||||
) {
|
||||
return AnalyzerFacadeForJS.analyzeBodiesInFiles(filesForBodiesResolve, new IDEAConfig(project), traceContext, bodiesResolveContext, module);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public ResolveSession getLazyResolveSession(@NotNull Project project, @NotNull Collection<JetFile> files) {
|
||||
|
||||
+8
-8
@@ -23,7 +23,6 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
import org.jetbrains.jet.lang.diagnostics.Errors;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
@@ -32,6 +31,7 @@ import org.jetbrains.jet.lang.psi.JetParameter;
|
||||
import org.jetbrains.jet.lang.psi.JetTypeReference;
|
||||
import org.jetbrains.jet.lexer.JetModifierKeywordToken;
|
||||
import org.jetbrains.jet.plugin.JetBundle;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||
import org.jetbrains.jet.plugin.project.PluginJetFilesProvider;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -86,15 +86,15 @@ public class AddOverrideToEqualsHashCodeToStringFix extends JetIntentionAction<P
|
||||
protected void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
||||
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(file);
|
||||
|
||||
AnalyzeExhaust analyzeExhaust = MigrateSureInProjectFix.analyzeFiles(file, files);
|
||||
for (JetFile jetFile : files) {
|
||||
for (Diagnostic diagnostic : ResolvePackage.getAnalysisResults(jetFile).getBindingContext().getDiagnostics()) {
|
||||
if (diagnostic.getFactory() != Errors.VIRTUAL_MEMBER_HIDDEN) continue;
|
||||
|
||||
for (Diagnostic diagnostic : analyzeExhaust.getBindingContext().getDiagnostics()) {
|
||||
if (diagnostic.getFactory() != Errors.VIRTUAL_MEMBER_HIDDEN) continue;
|
||||
PsiElement element = diagnostic.getPsiElement();
|
||||
if (!isEqualsHashCodeOrToString(element)) continue;
|
||||
|
||||
PsiElement element = diagnostic.getPsiElement();
|
||||
if (!isEqualsHashCodeOrToString(element)) continue;
|
||||
|
||||
element.replace(AddModifierFix.addModifier(element, OVERRIDE_KEYWORD, MODIFIERS_TO_REPLACE, project, false));
|
||||
element.replace(AddModifierFix.addModifier(element, OVERRIDE_KEYWORD, MODIFIERS_TO_REPLACE, project, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
|
||||
package org.jetbrains.jet.plugin.quickfix;
|
||||
|
||||
import com.google.common.base.Predicates;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.PsiElement;
|
||||
@@ -24,15 +23,12 @@ import com.intellij.psi.PsiFile;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.diagnostics.Diagnostic;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatingBindingTrace;
|
||||
import org.jetbrains.jet.plugin.JetBundle;
|
||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeProvider;
|
||||
import org.jetbrains.jet.plugin.caches.resolve.ResolvePackage;
|
||||
import org.jetbrains.jet.plugin.project.PluginJetFilesProvider;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -92,14 +88,13 @@ public class MigrateSureInProjectFix extends JetIntentionAction<PsiElement> {
|
||||
public void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException {
|
||||
Collection<JetFile> files = PluginJetFilesProvider.allFilesInProject(file);
|
||||
|
||||
AnalyzeExhaust analyzeExhaust = analyzeFiles(file, files);
|
||||
|
||||
for (JetFile jetFile : files) {
|
||||
replaceUnresolvedSure(jetFile, analyzeExhaust.getBindingContext());
|
||||
replaceUnresolvedSure(jetFile);
|
||||
}
|
||||
}
|
||||
|
||||
private void replaceUnresolvedSure(JetFile file, final BindingContext context) {
|
||||
private void replaceUnresolvedSure(JetFile file) {
|
||||
final BindingContext context = ResolvePackage.getBindingContext(file);
|
||||
for (JetDeclaration declaration : file.getDeclarations()) {
|
||||
declaration.acceptChildren(new JetVisitorVoid() {
|
||||
|
||||
@@ -142,22 +137,4 @@ public class MigrateSureInProjectFix extends JetIntentionAction<PsiElement> {
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
/* package */ static AnalyzeExhaust analyzeFiles(JetFile initialFile, Collection<JetFile> files) {
|
||||
AnalyzeExhaust analyzeExhaustHeaders = AnalyzerFacadeProvider.getAnalyzerFacadeForFile(initialFile).analyzeFiles(
|
||||
initialFile.getProject(),
|
||||
files,
|
||||
Predicates.<PsiFile>alwaysFalse());
|
||||
|
||||
BodiesResolveContext context = analyzeExhaustHeaders.getBodiesResolveContext();
|
||||
assert context != null : "Headers resolver should prepare and stored information for bodies resolve";
|
||||
|
||||
// Need to resolve bodies in given file and all in the same package
|
||||
return AnalyzerFacadeProvider.getAnalyzerFacadeForFile(initialFile).analyzeBodiesInFiles(
|
||||
initialFile.getProject(),
|
||||
Predicates.<PsiFile>alwaysTrue(),
|
||||
new DelegatingBindingTrace(analyzeExhaustHeaders.getBindingContext(), "trace in migrate sure fix"),
|
||||
context,
|
||||
analyzeExhaustHeaders.getModuleDescriptor());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user