mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
allow to return PsiFile from StubbedSpine
This commit is contained in:
@@ -396,9 +396,11 @@ public abstract class PsiAnchor {
|
||||
if (throwIfNull) throw new AssertionError("Null file");
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
if (index == 0) return fileImpl;
|
||||
|
||||
StubbedSpine spine = fileImpl.getStubbedSpine();
|
||||
StubBasedPsiElement psi = spine.getStubPsi(index);
|
||||
StubBasedPsiElement psi = (StubBasedPsiElement)spine.getStubPsi(index);
|
||||
if (psi == null) {
|
||||
if (throwIfNull) throw new AssertionError("Too large index: " + index + ">=" + spine.getStubCount());
|
||||
return null;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package com.intellij.psi.impl.source;
|
||||
|
||||
import com.intellij.psi.StubBasedPsiElement;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -29,7 +29,7 @@ public interface StubbedSpine {
|
||||
|
||||
/** @return the stubbed PSI element at the given index or null if index is greater than the spine size */
|
||||
@Nullable
|
||||
StubBasedPsiElement getStubPsi(int index);
|
||||
PsiElement getStubPsi(int index);
|
||||
|
||||
/**
|
||||
* @return the stubbed PSI element's type at the given index or null if index is greater than the spine size.
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.intellij.psi.impl.source.tree;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.StubBasedPsiElement;
|
||||
import com.intellij.psi.impl.source.StubbedSpine;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
@@ -42,8 +43,8 @@ public class AstSpine implements StubbedSpine {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public StubBasedPsiElement getStubPsi(int index) {
|
||||
return index >= myNodes.size() ? null : (StubBasedPsiElement)myNodes.get(index).getPsi();
|
||||
public PsiElement getStubPsi(int index) {
|
||||
return index >= myNodes.size() ? null : myNodes.get(index).getPsi();
|
||||
}
|
||||
|
||||
public int getStubIndex(@NotNull StubBasedPsiElement psi) {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
package com.intellij.psi.stubs;
|
||||
|
||||
import com.intellij.psi.StubBasedPsiElement;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.impl.source.StubbedSpine;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -40,9 +40,9 @@ class StubSpine implements StubbedSpine {
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public StubBasedPsiElement getStubPsi(int index) {
|
||||
public PsiElement getStubPsi(int index) {
|
||||
List<StubElement<?>> stubs = myTree.getPlainList();
|
||||
return index >= stubs.size() ? null : (StubBasedPsiElement)stubs.get(index).getPsi();
|
||||
return index >= stubs.size() ? null : stubs.get(index).getPsi();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user