FIR: Support fake elements for light tree
This commit is contained in:
@@ -167,7 +167,7 @@ class FirFakeSourceElement<out P : PsiElement>(psi: P, override val kind: FirFak
|
|||||||
|
|
||||||
fun FirSourceElement.fakeElement(newKind: FirFakeSourceElementKind): FirSourceElement {
|
fun FirSourceElement.fakeElement(newKind: FirFakeSourceElementKind): FirSourceElement {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
is FirLightSourceElement -> this
|
is FirLightSourceElement -> FirLightSourceElement(element, startOffset, endOffset, tree, newKind)
|
||||||
is FirPsiSourceElement<*> -> FirFakeSourceElement(psi, newKind)
|
is FirPsiSourceElement<*> -> FirFakeSourceElement(psi, newKind)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -176,12 +176,11 @@ class FirLightSourceElement(
|
|||||||
val element: LighterASTNode,
|
val element: LighterASTNode,
|
||||||
override val startOffset: Int,
|
override val startOffset: Int,
|
||||||
override val endOffset: Int,
|
override val endOffset: Int,
|
||||||
val tree: FlyweightCapableTreeStructure<LighterASTNode>
|
val tree: FlyweightCapableTreeStructure<LighterASTNode>,
|
||||||
|
override val kind: FirSourceElementKind = FirRealSourceElementKind,
|
||||||
) : FirSourceElement() {
|
) : FirSourceElement() {
|
||||||
override val elementType: IElementType
|
override val elementType: IElementType
|
||||||
get() = element.tokenType
|
get() = element.tokenType
|
||||||
|
|
||||||
override val kind: FirSourceElementKind get() = FirRealSourceElementKind
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val FirSourceElement?.psi: PsiElement? get() = (this as? FirPsiSourceElement<*>)?.psi
|
val FirSourceElement?.psi: PsiElement? get() = (this as? FirPsiSourceElement<*>)?.psi
|
||||||
|
|||||||
Reference in New Issue
Block a user