From 164fb3f36b91f5d3d1c66faffd2d1497b0de3460 Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Tue, 25 Jun 2013 14:01:07 +0400 Subject: [PATCH] correct index id fix --- .../psi/stubs/StubTreeLoaderImpl.java | 2 +- .../intellij/psi/stubs/StubUpdatingIndex.java | 20 ++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java index f50f398560cc..c738386d7905 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubTreeLoaderImpl.java @@ -150,7 +150,7 @@ public class StubTreeLoaderImpl extends StubTreeLoader { @Override public long getStubTreeTimestamp(VirtualFile vFile) { - return IndexingStamp.getIndexStamp(vFile, StubUpdatingIndex.INDEX_ID); + return IndexingStamp.getIndexStamp(vFile, IndexInfrastructure.getStubId(StubUpdatingIndex.INDEX_ID, vFile.getFileType())); } @Override diff --git a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java index 4dcd9e661f54..4a4240f135bb 100644 --- a/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java +++ b/platform/lang-impl/src/com/intellij/psi/stubs/StubUpdatingIndex.java @@ -77,15 +77,21 @@ public class StubUpdatingIndex extends CustomImplementationFileBasedIndexExtensi public static boolean canHaveStub(@NotNull VirtualFile file) { final FileType fileType = file.getFileType(); if (fileType instanceof LanguageFileType) { - Language l = ((LanguageFileType)fileType).getLanguage(); - ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(l); - if (parserDefinition == null) return false; + final Language l = ((LanguageFileType)fileType).getLanguage(); + final ParserDefinition parserDefinition = LanguageParserDefinitions.INSTANCE.forLanguage(l); + if (parserDefinition == null) { + return false; + } final IFileElementType elementType = parserDefinition.getFileNodeType(); - if (elementType instanceof IStubFileElementType && - (((IStubFileElementType)elementType).shouldBuildStubFor(file) || - IndexingStamp.isFileIndexed(file, INDEX_ID, IndexInfrastructure.getIndexCreationStamp(INDEX_ID, file)))) { - return true; + if (elementType instanceof IStubFileElementType) { + if (((IStubFileElementType)elementType).shouldBuildStubFor(file)) { + return true; + } + final ID indexId = IndexInfrastructure.getStubId(INDEX_ID, file.getFileType()); + if (IndexingStamp.isFileIndexed(file, indexId, IndexInfrastructure.getIndexCreationStamp(indexId))) { + return true; + } } } final BinaryFileStubBuilder builder = BinaryFileStubBuilders.INSTANCE.forFileType(fileType);