diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt b/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt index 31ee5fd02a16..42765ed6c866 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/JavaSimplePropertyIndex.kt @@ -68,7 +68,7 @@ class JavaSimplePropertyIndex : FileBasedIndexExtension override fun getIndexer(): DataIndexer = DataIndexer { inputData -> val result = HashMap() - val tree = (inputData as FileContentImpl).lighterASTForPsiDependentIndex + val tree = (inputData as PsiDependentFileContent).lighterAST object : RecursiveLighterASTNodeWalkingVisitor(tree) { var methodIndex = 0 diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaBinaryPlusExpressionIndex.java b/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaBinaryPlusExpressionIndex.java index 317e027eb6fb..d34a9aec057e 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaBinaryPlusExpressionIndex.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaBinaryPlusExpressionIndex.java @@ -44,7 +44,7 @@ public class JavaBinaryPlusExpressionIndex extends FileBasedIndexExtension stringConcatenations = new HashMap<>(); LightTreeUtil.processLeavesAtOffsets(offsets, tree, (leaf, offset) -> { diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaFunctionalExpressionIndex.java b/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaFunctionalExpressionIndex.java index 0841d01333a4..8eebb7a35506 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaFunctionalExpressionIndex.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/java/JavaFunctionalExpressionIndex.java @@ -373,7 +373,7 @@ public class JavaFunctionalExpressionIndex extends FileBasedIndexExtension> result = new HashMap<>(); - LighterAST tree = ((FileContentImpl)inputData).getLighterASTForPsiDependentIndex(); + LighterAST tree = ((PsiDependentFileContent)inputData).getLighterAST(); FileLocalResolver resolver = new FileLocalResolver(tree); LightTreeUtil.processLeavesAtOffsets(offsets, tree, (leaf, offset) -> { diff --git a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaNullMethodArgumentIndex.java b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaNullMethodArgumentIndex.java index 3d58799a869a..fc5245b75434 100644 --- a/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaNullMethodArgumentIndex.java +++ b/java/java-indexing-impl/src/com/intellij/psi/impl/search/JavaNullMethodArgumentIndex.java @@ -57,7 +57,7 @@ public class JavaNullMethodArgumentIndex extends ScalarIndexExtension calls = findCallsWithNulls(lighterAst, text); diff --git a/platform/core-api/src/com/intellij/util/indexing/PsiDependentFileContent.java b/platform/core-api/src/com/intellij/util/indexing/PsiDependentFileContent.java new file mode 100644 index 000000000000..15855686274b --- /dev/null +++ b/platform/core-api/src/com/intellij/util/indexing/PsiDependentFileContent.java @@ -0,0 +1,15 @@ +// Copyright 2000-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. +package com.intellij.util.indexing; + +import com.intellij.lang.LighterAST; +import com.intellij.psi.PsiFile; +import org.jetbrains.annotations.NotNull; + +public interface PsiDependentFileContent extends FileContent { + @Override + @NotNull + PsiFile getPsiFile(); + + @NotNull + LighterAST getLighterAST(); +} diff --git a/platform/core-impl/src/com/intellij/psi/stubs/StubTreeBuilder.java b/platform/core-impl/src/com/intellij/psi/stubs/StubTreeBuilder.java index 61595cbd0f7d..d2c308290e00 100644 --- a/platform/core-impl/src/com/intellij/psi/stubs/StubTreeBuilder.java +++ b/platform/core-impl/src/com/intellij/psi/stubs/StubTreeBuilder.java @@ -33,6 +33,7 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.indexing.FileContent; import com.intellij.util.indexing.FileContentImpl; import com.intellij.util.indexing.IndexingDataKeys; +import com.intellij.util.indexing.PsiDependentFileContent; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -65,8 +66,8 @@ public class StubTreeBuilder { } else { CharSequence contentAsText = inputData.getContentAsText(); - FileContentImpl fileContent = (FileContentImpl)inputData; - PsiFile psi = fileContent.getPsiFileForPsiDependentIndex(); + PsiDependentFileContent fileContent = (PsiDependentFileContent)inputData; + PsiFile psi = fileContent.getPsiFile(); final FileViewProvider viewProvider = psi.getViewProvider(); psi = viewProvider.getStubBindingRoot(); psi.putUserData(IndexingDataKeys.FILE_TEXT_CONTENT_KEY, contentAsText); @@ -79,7 +80,7 @@ public class StubTreeBuilder { if (stubFileElementType != null) { final StubBuilder stubBuilder = stubFileElementType.getBuilder(); if (stubBuilder instanceof LightStubBuilder) { - LightStubBuilder.FORCED_AST.set(fileContent.getLighterASTForPsiDependentIndex()); + LightStubBuilder.FORCED_AST.set(fileContent.getLighterAST()); } data = stubBuilder.buildStubTree(psi); diff --git a/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java b/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java index 02a37790432a..297b919257dc 100644 --- a/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java +++ b/platform/core-impl/src/com/intellij/util/indexing/FileContentImpl.java @@ -45,7 +45,7 @@ import java.nio.charset.Charset; * * Class is not final since it is overridden in Upsource */ -public class FileContentImpl extends UserDataHolderBase implements FileContent { +public class FileContentImpl extends UserDataHolderBase implements PsiDependentFileContent { private final VirtualFile myFile; private final String myFileName; private final FileType myFileType; @@ -113,8 +113,9 @@ public class FileContentImpl extends UserDataHolderBase implements FileContent { return psi; } + @Override @NotNull - public LighterAST getLighterASTForPsiDependentIndex() { + public LighterAST getLighterAST() { LighterAST lighterAST = getUserData(IndexingDataKeys.LIGHTER_AST_NODE_KEY); if (lighterAST == null) { FileASTNode node = getPsiFileForPsiDependentIndex().getNode(); diff --git a/platform/duplicates-analysis/src/com/intellij/dupLocator/index/DuplicatesIndex.java b/platform/duplicates-analysis/src/com/intellij/dupLocator/index/DuplicatesIndex.java index ab43dd2d484d..277480a34498 100644 --- a/platform/duplicates-analysis/src/com/intellij/dupLocator/index/DuplicatesIndex.java +++ b/platform/duplicates-analysis/src/com/intellij/dupLocator/index/DuplicatesIndex.java @@ -122,11 +122,11 @@ public class DuplicatesIndex extends FileBasedIndexExtension result = new THashMap<>(); - LighterAST ast = fileContent.getLighterASTForPsiDependentIndex(); + LighterAST ast = fileContent.getLighterAST(); ((LightDuplicateProfile)profile).process(ast, new LightDuplicateProfile.Callback() { @Override @@ -144,7 +144,7 @@ public class DuplicatesIndex extends FileBasedIndexExtension