Minor, refactor JetFilesProvider
This commit is contained in:
committed by
Pavel V. Talanov
parent
155f3b3b96
commit
78bd6faffc
@@ -36,7 +36,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
import org.jetbrains.jet.util.slicedmap.WritableSlice;
|
import org.jetbrains.jet.util.slicedmap.WritableSlice;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.Collection;
|
||||||
|
|
||||||
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration;
|
import static org.jetbrains.jet.lang.resolve.BindingContextUtils.descriptorToDeclaration;
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ public final class PsiCodegenPredictor {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetFile getFileForNamespacePartName(@NotNull List<JetFile> allNamespaceFiles, @NotNull JvmClassName className) {
|
public static JetFile getFileForNamespacePartName(@NotNull Collection<JetFile> allNamespaceFiles, @NotNull JvmClassName className) {
|
||||||
for (JetFile file : allNamespaceFiles) {
|
for (JetFile file : allNamespaceFiles) {
|
||||||
String internalName = NamespaceCodegen.getNamespacePartInternalName(file);
|
String internalName = NamespaceCodegen.getNamespacePartInternalName(file);
|
||||||
JvmClassName jvmClassName = JvmClassName.byInternalName(internalName);
|
JvmClassName jvmClassName = JvmClassName.byInternalName(internalName);
|
||||||
@@ -207,7 +207,7 @@ public final class PsiCodegenPredictor {
|
|||||||
@Nullable
|
@Nullable
|
||||||
public static JetFile getFileForCodegenNamedClass(
|
public static JetFile getFileForCodegenNamedClass(
|
||||||
@NotNull BindingContext context,
|
@NotNull BindingContext context,
|
||||||
@NotNull List<JetFile> allNamespaceFiles,
|
@NotNull Collection<JetFile> allNamespaceFiles,
|
||||||
@NotNull final JvmClassName className
|
@NotNull final JvmClassName className
|
||||||
) {
|
) {
|
||||||
final Ref<DeclarationDescriptor> resultingDescriptor = Ref.create();
|
final Ref<DeclarationDescriptor> resultingDescriptor = Ref.create();
|
||||||
|
|||||||
+5
-15
@@ -17,6 +17,7 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java;
|
package org.jetbrains.jet.lang.resolve.java;
|
||||||
|
|
||||||
import com.google.common.base.Predicate;
|
import com.google.common.base.Predicate;
|
||||||
|
import com.google.common.collect.Collections2;
|
||||||
import com.intellij.openapi.components.ServiceManager;
|
import com.intellij.openapi.components.ServiceManager;
|
||||||
import com.intellij.openapi.project.Project;
|
import com.intellij.openapi.project.Project;
|
||||||
import com.intellij.psi.PsiFile;
|
import com.intellij.psi.PsiFile;
|
||||||
@@ -28,19 +29,17 @@ import org.jetbrains.jet.lang.psi.JetPsiUtil;
|
|||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public abstract class JetFilesProvider {
|
public abstract class JetFilesProvider {
|
||||||
public static JetFilesProvider getInstance(Project project) {
|
public static JetFilesProvider getInstance(Project project) {
|
||||||
return ServiceManager.getService(project, JetFilesProvider.class);
|
return ServiceManager.getService(project, JetFilesProvider.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public final Function<JetFile, List<JetFile>> allNamespaceFiles() {
|
public final Function<JetFile, Collection<JetFile>> allNamespaceFiles() {
|
||||||
return new Function<JetFile, List<JetFile>>() {
|
return new Function<JetFile, Collection<JetFile>>() {
|
||||||
@Override
|
@Override
|
||||||
public List<JetFile> fun(JetFile file) {
|
public Collection<JetFile> fun(JetFile file) {
|
||||||
return new SameJetFilePredicate(file).filter(sampleToAllFilesInModule().fun(file));
|
return Collections2.filter(sampleToAllFilesInModule().fun(file), new SameJetFilePredicate(file));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -60,14 +59,5 @@ public abstract class JetFilesProvider {
|
|||||||
public boolean apply(PsiFile psiFile) {
|
public boolean apply(PsiFile psiFile) {
|
||||||
return JetPsiUtil.getFQName((JetFile) psiFile).equals(name);
|
return JetPsiUtil.getFQName((JetFile) psiFile).equals(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<JetFile> filter(Collection<JetFile> allFiles) {
|
|
||||||
LinkedList<JetFile> files = new LinkedList<JetFile>();
|
|
||||||
for (JetFile aFile : allFiles) {
|
|
||||||
if(apply(aFile))
|
|
||||||
files.add(aFile);
|
|
||||||
}
|
|
||||||
return files;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
|||||||
import org.jetbrains.jet.plugin.util.DebuggerUtils;
|
import org.jetbrains.jet.plugin.util.DebuggerUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.WeakHashMap;
|
import java.util.WeakHashMap;
|
||||||
|
|
||||||
@@ -187,7 +188,7 @@ public class JetPositionManager implements PositionManager {
|
|||||||
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeWithCache.analyzeFileWithCache(file);
|
AnalyzeExhaust analyzeExhaust = AnalyzerFacadeWithCache.analyzeFileWithCache(file);
|
||||||
analyzeExhaust.throwIfError();
|
analyzeExhaust.throwIfError();
|
||||||
|
|
||||||
List<JetFile> namespaceFiles = JetFilesProvider.getInstance(file.getProject()).allNamespaceFiles().fun(file);
|
Collection<JetFile> namespaceFiles = JetFilesProvider.getInstance(file.getProject()).allNamespaceFiles().fun(file);
|
||||||
|
|
||||||
DelegatingBindingTrace bindingTrace = new DelegatingBindingTrace(analyzeExhaust.getBindingContext(), "trace created in JetPositionManager");
|
DelegatingBindingTrace bindingTrace = new DelegatingBindingTrace(analyzeExhaust.getBindingContext(), "trace created in JetPositionManager");
|
||||||
JetTypeMapper typeMapper = new JetTypeMapper(bindingTrace, true, ClassBuilderMode.FULL);
|
JetTypeMapper typeMapper = new JetTypeMapper(bindingTrace, true, ClassBuilderMode.FULL);
|
||||||
|
|||||||
@@ -31,9 +31,11 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
|
|||||||
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class DebuggerUtils {
|
public class DebuggerUtils {
|
||||||
|
private DebuggerUtils() {
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static JetFile findSourceFileForClass(
|
public static JetFile findSourceFileForClass(
|
||||||
@NotNull GlobalSearchScope searchScope,
|
@NotNull GlobalSearchScope searchScope,
|
||||||
@@ -62,7 +64,7 @@ public class DebuggerUtils {
|
|||||||
return anyFile;
|
return anyFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<JetFile> allNamespaceFiles = filesProvider.allNamespaceFiles().fun(anyFile);
|
Collection<JetFile> allNamespaceFiles = filesProvider.allNamespaceFiles().fun(anyFile);
|
||||||
JetFile file = PsiCodegenPredictor.getFileForNamespacePartName(allNamespaceFiles, className);
|
JetFile file = PsiCodegenPredictor.getFileForNamespacePartName(allNamespaceFiles, className);
|
||||||
if (file != null) {
|
if (file != null) {
|
||||||
return file;
|
return file;
|
||||||
|
|||||||
Reference in New Issue
Block a user