diff --git a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliJetFilesProvider.java b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliJetFilesProvider.java index 7559fdd5fd5..1af81807e41 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliJetFilesProvider.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/jvm/compiler/CliJetFilesProvider.java @@ -17,7 +17,6 @@ package org.jetbrains.jet.cli.jvm.compiler; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.java.JetFilesProvider; @@ -28,21 +27,14 @@ import java.util.List; public class CliJetFilesProvider extends JetFilesProvider { private final JetCoreEnvironment environment; - private final Function> allFiles = new Function>() { - @Override - public Collection fun(JetFile file) { - return environment.getSourceFiles(); - } - - }; public CliJetFilesProvider(JetCoreEnvironment environment) { this.environment = environment; } @Override - public Function> sampleToAllFilesInModule() { - return allFiles; + protected Collection sampleToAllFilesInModule(@NotNull JetFile file) { + return environment.getSourceFiles(); } @NotNull diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetFilesProvider.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetFilesProvider.java index 5e5e1a68853..f66eca7696a 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetFilesProvider.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JetFilesProvider.java @@ -22,7 +22,6 @@ import com.intellij.openapi.components.ServiceManager; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiFile; import com.intellij.psi.search.GlobalSearchScope; -import com.intellij.util.Function; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.name.FqName; @@ -36,7 +35,7 @@ public abstract class JetFilesProvider { public final Collection allPackageFiles(@NotNull JetFile file) { final FqName name = file.getPackageFqName(); - return Collections2.filter(sampleToAllFilesInModule().fun(file), new Predicate() { + return Collections2.filter(sampleToAllFilesInModule(file), new Predicate() { @Override public boolean apply(PsiFile psiFile) { return ((JetFile) psiFile).getPackageFqName().equals(name); @@ -44,7 +43,7 @@ public abstract class JetFilesProvider { }); } - public abstract Function> sampleToAllFilesInModule(); + protected abstract Collection sampleToAllFilesInModule(@NotNull JetFile file); @NotNull public abstract Collection allInScope(@NotNull GlobalSearchScope scope); public abstract boolean isFileInScope(@NotNull JetFile file, @NotNull GlobalSearchScope scope); diff --git a/idea/src/org/jetbrains/jet/plugin/project/PluginJetFilesProvider.java b/idea/src/org/jetbrains/jet/plugin/project/PluginJetFilesProvider.java index 9dfd6dea82d..84c4c37a3de 100644 --- a/idea/src/org/jetbrains/jet/plugin/project/PluginJetFilesProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/project/PluginJetFilesProvider.java @@ -67,49 +67,45 @@ public class PluginJetFilesProvider extends JetFilesProvider { ); } - public static final Function> WHOLE_PROJECT_DECLARATION_PROVIDER = new Function>() { + public static Collection allFilesInProject(@NotNull final JetFile rootFile) { + final Project project = rootFile.getProject(); + final Set files = Sets.newLinkedHashSet(); - @Override - public Collection fun(final JetFile rootFile) { - final Project project = rootFile.getProject(); - final Set files = Sets.newLinkedHashSet(); + Module rootModule = ModuleUtil.findModuleForPsiElement(rootFile); + if (rootModule != null) { + Set allModules = new HashSet(); + ModuleUtil.getDependencies(rootModule, allModules); - Module rootModule = ModuleUtil.findModuleForPsiElement(rootFile); - if (rootModule != null) { - Set allModules = new HashSet(); - ModuleUtil.getDependencies(rootModule, allModules); + for (Module module : allModules) { + final ModuleFileIndex index = ModuleRootManager.getInstance(module).getFileIndex(); + index.iterateContent(new ContentIterator() { + @Override + public boolean processFile(VirtualFile file) { + if (file.isDirectory()) return true; + if (!index.isInSourceContent(file) && !index.isInTestSourceContent(file)) return true; + if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file, project)) return true; - for (Module module : allModules) { - final ModuleFileIndex index = ModuleRootManager.getInstance(module).getFileIndex(); - index.iterateContent(new ContentIterator() { - @Override - public boolean processFile(VirtualFile file) { - if (file.isDirectory()) return true; - if (!index.isInSourceContent(file) && !index.isInTestSourceContent(file)) return true; - if (JetPluginUtil.isKtFileInGradleProjectInWrongFolder(file, project)) return true; - - FileType fileType = FileTypeManager.getInstance().getFileTypeByFile(file); - if (fileType != JetFileType.INSTANCE) return true; - PsiFile psiFile = PsiManager.getInstance(project).findFile(file); - if (psiFile instanceof JetFile) { - if (rootFile.getOriginalFile() != psiFile) { - files.add((JetFile) psiFile); - } + FileType fileType = FileTypeManager.getInstance().getFileTypeByFile(file); + if (fileType != JetFileType.INSTANCE) return true; + PsiFile psiFile = PsiManager.getInstance(project).findFile(file); + if (psiFile instanceof JetFile) { + if (rootFile.getOriginalFile() != psiFile) { + files.add((JetFile) psiFile); } - return true; } - }); - } + return true; + } + }); } - - files.add(rootFile); - return files; } - }; + + files.add(rootFile); + return files; + } @Override - public Function> sampleToAllFilesInModule() { - return WHOLE_PROJECT_DECLARATION_PROVIDER; + protected Collection sampleToAllFilesInModule(@NotNull JetFile file) { + return allFilesInProject(file); } private boolean isKotlinSourceVirtualFile(@NotNull VirtualFile virtualFile) { diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/AddOverrideToEqualsHashCodeToStringFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/AddOverrideToEqualsHashCodeToStringFix.java index cd1b959f826..03aa6274a59 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/AddOverrideToEqualsHashCodeToStringFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/AddOverrideToEqualsHashCodeToStringFix.java @@ -84,7 +84,7 @@ public class AddOverrideToEqualsHashCodeToStringFix extends JetIntentionAction

files = PluginJetFilesProvider.WHOLE_PROJECT_DECLARATION_PROVIDER.fun(file); + Collection files = PluginJetFilesProvider.allFilesInProject(file); AnalyzeExhaust analyzeExhaust = MigrateSureInProjectFix.analyzeFiles(file, files); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/MigrateSureInProjectFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/MigrateSureInProjectFix.java index dce489d6cc4..7fd6dd18ccb 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/MigrateSureInProjectFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/MigrateSureInProjectFix.java @@ -90,7 +90,7 @@ public class MigrateSureInProjectFix extends JetIntentionAction { @Override public void invoke(@NotNull Project project, Editor editor, JetFile file) throws IncorrectOperationException { - Collection files = PluginJetFilesProvider.WHOLE_PROJECT_DECLARATION_PROVIDER.fun(file); + Collection files = PluginJetFilesProvider.allFilesInProject(file); AnalyzeExhaust analyzeExhaust = analyzeFiles(file, files); diff --git a/idea/src/org/jetbrains/jet/plugin/quickfix/RemoveValVarFromParametersFix.java b/idea/src/org/jetbrains/jet/plugin/quickfix/RemoveValVarFromParametersFix.java index 4066aeab9e7..b438249a732 100644 --- a/idea/src/org/jetbrains/jet/plugin/quickfix/RemoveValVarFromParametersFix.java +++ b/idea/src/org/jetbrains/jet/plugin/quickfix/RemoveValVarFromParametersFix.java @@ -53,7 +53,7 @@ public class RemoveValVarFromParametersFix implements IntentionAction { // TODO after M6, this quick fix should remove val/var only for current parameter JetFile initialFile = (JetFile) file; - Collection files = PluginJetFilesProvider.WHOLE_PROJECT_DECLARATION_PROVIDER.fun(initialFile); + Collection files = PluginJetFilesProvider.allFilesInProject(initialFile); for (JetFile jetFile : files) { jetFile.acceptChildren(new JetVisitorVoid() { @Override