IR: remove unnecessary reliance on the PSI in inliner

This commit is contained in:
Ilya Chernikov
2021-11-08 12:59:03 +01:00
committed by teamcity
parent 17bbaf27ea
commit 5cca01a7d2
5 changed files with 23 additions and 11 deletions
@@ -37,7 +37,7 @@ abstract class ObjectTransformer<out T : TransformationInfo>(@JvmField val trans
val classBuilder = state.factory.newVisitor(
JvmDeclarationOrigin.NO_ORIGIN,
Type.getObjectType(transformationInfo.newClassName),
inliningContext.callSiteInfo.file!!
listOf(inliningContext.callSiteInfo.file!!)
)
return RemappingClassBuilder(
@@ -36,6 +36,7 @@ import org.jetbrains.org.objectweb.asm.Opcodes
import org.jetbrains.org.objectweb.asm.Type
import org.jetbrains.org.objectweb.asm.commons.Method
import org.jetbrains.org.objectweb.asm.tree.MethodNode
import java.io.File
class PsiSourceCompilerForInline(
private val codegen: ExpressionCodegen,
@@ -75,7 +76,7 @@ class PsiSourceCompilerForInline(
parentCodegen.className,
signature.asmMethod,
context.functionDescriptor.getInlineCallSiteVisibility(),
callElement.containingFile,
callElement.containingFile?.virtualFile?.let { File(it.path) },
CodegenUtil.getLineNumberForElement(callElement, false) ?: 0
)
}
@@ -5,7 +5,6 @@
package org.jetbrains.kotlin.codegen.inline
import com.intellij.psi.PsiFile
import org.jetbrains.kotlin.codegen.AsmUtil
import org.jetbrains.kotlin.codegen.inline.coroutines.FOR_INLINE_SUFFIX
import org.jetbrains.kotlin.codegen.state.GenerationState
@@ -22,12 +21,13 @@ import org.jetbrains.org.objectweb.asm.Label
import org.jetbrains.org.objectweb.asm.Type
import org.jetbrains.org.objectweb.asm.commons.Method
import org.jetbrains.org.objectweb.asm.tree.MethodNode
import java.io.File
class InlineCallSiteInfo(
val ownerClassName: String,
val method: Method,
val inlineScopeVisibility: DescriptorVisibility?,
val file: PsiFile?,
val file: File?,
val lineNumber: Int
) {
val isInlineOrInsideInline: Boolean