Fir2Ir: fix conversion for non-PSI source elements
This commit is contained in:
@@ -80,9 +80,9 @@ internal fun <T : IrElement> KtSourceElement?.convertWithOffsets(
|
|||||||
f: (startOffset: Int, endOffset: Int) -> T
|
f: (startOffset: Int, endOffset: Int) -> T
|
||||||
): T {
|
): T {
|
||||||
val psi = psi
|
val psi = psi
|
||||||
if (psi is PsiCompiledElement || psi == null) return f(UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
if (psi is PsiCompiledElement) return f(UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
||||||
val startOffset = psi.startOffsetSkippingComments
|
val startOffset = psi?.startOffsetSkippingComments ?: this?.startOffset ?: UNDEFINED_OFFSET
|
||||||
val endOffset = psi.endOffset
|
val endOffset = this?.endOffset ?: UNDEFINED_OFFSET
|
||||||
return f(startOffset, endOffset)
|
return f(startOffset, endOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -90,13 +90,13 @@ internal fun <T : IrElement> FirQualifiedAccess.convertWithOffsets(
|
|||||||
f: (startOffset: Int, endOffset: Int) -> T
|
f: (startOffset: Int, endOffset: Int) -> T
|
||||||
): T {
|
): T {
|
||||||
val psi = psi
|
val psi = psi
|
||||||
if (psi is PsiCompiledElement || psi == null) return f(UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
if (psi is PsiCompiledElement) return f(UNDEFINED_OFFSET, UNDEFINED_OFFSET)
|
||||||
val startOffset = if (psi is KtQualifiedExpression) {
|
val startOffset = if (psi is KtQualifiedExpression) {
|
||||||
(psi.selectorExpression ?: psi).startOffsetSkippingComments
|
(psi.selectorExpression ?: psi).startOffsetSkippingComments
|
||||||
} else {
|
} else {
|
||||||
psi.startOffsetSkippingComments
|
psi?.startOffsetSkippingComments ?: source?.startOffset ?: UNDEFINED_OFFSET
|
||||||
}
|
}
|
||||||
val endOffset = psi.endOffset
|
val endOffset = source?.endOffset ?: UNDEFINED_OFFSET
|
||||||
return f(startOffset, endOffset)
|
return f(startOffset, endOffset)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user