diff --git a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java index f82778573863..e781efb48fbd 100644 --- a/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java +++ b/platform/lang-impl/src/com/intellij/util/indexing/FileBasedIndexImpl.java @@ -875,7 +875,21 @@ public class FileBasedIndexImpl extends FileBasedIndex { @NotNull public List getValues(@NotNull final ID indexId, @NotNull K dataKey, @NotNull final GlobalSearchScope filter) { final List values = new SmartList(); - processValuesImpl(indexId, dataKey, true, null, new ValueProcessor() { + VirtualFile restrictToFile = null; + + if (filter instanceof Iterable) { + final Iterator virtualFileIterator = ((Iterable)filter).iterator(); + + if (virtualFileIterator.hasNext()) { + VirtualFile restrictToFileCandidate = virtualFileIterator.next(); + + if (!virtualFileIterator.hasNext()) { + restrictToFile = restrictToFileCandidate; + } + } + } + + processValuesImpl(indexId, dataKey, true, restrictToFile, new ValueProcessor() { @Override public boolean process(final VirtualFile file, final V value) { values.add(value);