IR: remove unnecessary reliance on the PSI in inliner
This commit is contained in:
+10
-7
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.incremental.components.Position
|
||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFunction
|
||||
import org.jetbrains.kotlin.ir.declarations.name
|
||||
import org.jetbrains.kotlin.ir.descriptors.toIrBasedDescriptor
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionAccessExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
||||
@@ -50,7 +51,7 @@ class IrSourceCompilerForInline(
|
||||
root.classCodegen.type.internalName,
|
||||
root.signature.asmMethod,
|
||||
root.irFunction.inlineScopeVisibility,
|
||||
root.irFunction.fileParent.getKtFile(),
|
||||
root.irFunction.fileParent.getIoFile(),
|
||||
callElement.psiElement?.let { CodegenUtil.getLineNumberForElement(it, false) } ?: 0
|
||||
)
|
||||
}
|
||||
@@ -74,15 +75,17 @@ class IrSourceCompilerForInline(
|
||||
}
|
||||
if (jvmSignature.asmMethod.name != callee.name.asString()) {
|
||||
val ktFile = codegen.irFunction.fileParent.getKtFile()
|
||||
if (ktFile != null && ktFile.doNotAnalyze == null) {
|
||||
if ((ktFile != null && ktFile.doNotAnalyze == null) || ktFile == null) {
|
||||
state.trackLookup(callee.parentAsClass.kotlinFqName, jvmSignature.asmMethod.name, object : LocationInfo {
|
||||
override val filePath = ktFile.virtualFilePath
|
||||
override val filePath = ktFile?.virtualFile?.path ?: codegen.irFunction.fileParent.fileEntry.name
|
||||
|
||||
override val position: Position
|
||||
get() = DiagnosticUtils.getLineAndColumnInPsiFile(
|
||||
ktFile,
|
||||
TextRange(callElement.startOffset, callElement.endOffset)
|
||||
).let { Position(it.line, it.column) }
|
||||
get() =
|
||||
if (ktFile == null) Position.NO_POSITION
|
||||
else DiagnosticUtils.getLineAndColumnInPsiFile(
|
||||
ktFile,
|
||||
TextRange(callElement.startOffset, callElement.endOffset)
|
||||
).let { Position(it.line, it.column) }
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user