Convert text util methods to extension properties
This commit is contained in:
@@ -167,7 +167,7 @@ class InlineCodegen(
|
|||||||
"Couldn't inline method call '" + functionDescriptor.name + "' into\n" +
|
"Couldn't inline method call '" + functionDescriptor.name + "' into\n" +
|
||||||
DescriptorRenderer.DEBUG_TEXT.render(contextDescriptor) + "\n" +
|
DescriptorRenderer.DEBUG_TEXT.render(contextDescriptor) + "\n" +
|
||||||
(element?.text ?: "<no source>") +
|
(element?.text ?: "<no source>") +
|
||||||
if (generateNodeText) "\nCause: " + getNodeText(node) else "",
|
if (generateNodeText) "\nCause: " + node.nodeText else "",
|
||||||
e, callElement
|
e, callElement
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -618,7 +618,7 @@ class MethodInliner(
|
|||||||
return InlineException("$errorPrefix: $errorSuffix", originalException)
|
return InlineException("$errorPrefix: $errorSuffix", originalException)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return InlineException("$errorPrefix: $errorSuffix\nCause: ${getNodeText(node)}", originalException)
|
return InlineException("$errorPrefix: $errorSuffix\nCause: ${node.nodeText}", originalException)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
|||||||
import org.jetbrains.kotlin.codegen.AsmUtil
|
import org.jetbrains.kotlin.codegen.AsmUtil
|
||||||
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
import org.jetbrains.kotlin.codegen.ExpressionCodegen
|
||||||
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
|
||||||
import org.jetbrains.kotlin.codegen.MemberCodegen
|
|
||||||
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
|
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
|
||||||
import org.jetbrains.kotlin.codegen.context.CodegenContext
|
import org.jetbrains.kotlin.codegen.context.CodegenContext
|
||||||
import org.jetbrains.kotlin.codegen.context.CodegenContextUtil
|
import org.jetbrains.kotlin.codegen.context.CodegenContextUtil
|
||||||
@@ -325,17 +324,18 @@ fun firstLabelInChain(node: LabelNode): LabelNode {
|
|||||||
return curNode
|
return curNode
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getNodeText(node: MethodNode?): String {
|
val MethodNode?.nodeText: String
|
||||||
val textifier = Textifier()
|
get() {
|
||||||
if (node == null) {
|
if (this == null) {
|
||||||
return "Not generated"
|
return "Not generated"
|
||||||
|
}
|
||||||
|
val textifier = Textifier()
|
||||||
|
accept(TraceMethodVisitor(textifier))
|
||||||
|
val sw = StringWriter()
|
||||||
|
textifier.print(PrintWriter(sw))
|
||||||
|
sw.flush()
|
||||||
|
return name + " " + desc + ":\n" + sw.buffer.toString()
|
||||||
}
|
}
|
||||||
node.accept(TraceMethodVisitor(textifier))
|
|
||||||
val sw = StringWriter()
|
|
||||||
textifier.print(PrintWriter(sw))
|
|
||||||
sw.flush()
|
|
||||||
return node.name + " " + node.desc + ":\n" + sw.buffer.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
val AbstractInsnNode?.insnText: String
|
val AbstractInsnNode?.insnText: String
|
||||||
get() {
|
get() {
|
||||||
@@ -348,11 +348,12 @@ val AbstractInsnNode?.insnText: String
|
|||||||
return sw.toString().trim { it <= ' ' }
|
return sw.toString().trim { it <= ' ' }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getInsnOpcodeText(node: AbstractInsnNode?): String {
|
val AbstractInsnNode?.insnOpcodeText: String
|
||||||
return if (node == null) "null" else Printer.OPCODES[node.opcode]
|
get() {
|
||||||
}
|
return if (this == null) "null" else Printer.OPCODES[opcode]
|
||||||
|
}
|
||||||
|
|
||||||
internal /* package */ fun buildClassReaderByInternalName(state: GenerationState, internalName: String): ClassReader {
|
internal fun buildClassReaderByInternalName(state: GenerationState, internalName: String): ClassReader {
|
||||||
//try to find just compiled classes then in dependencies
|
//try to find just compiled classes then in dependencies
|
||||||
try {
|
try {
|
||||||
val outputFile = state.factory.get(internalName + ".class")
|
val outputFile = state.factory.get(internalName + ".class")
|
||||||
|
|||||||
+2
-2
@@ -17,7 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.codegen.optimization.boxing
|
package org.jetbrains.kotlin.codegen.optimization.boxing
|
||||||
|
|
||||||
import com.intellij.openapi.util.Pair
|
import com.intellij.openapi.util.Pair
|
||||||
import org.jetbrains.kotlin.codegen.inline.getInsnOpcodeText
|
import org.jetbrains.kotlin.codegen.inline.insnOpcodeText
|
||||||
import org.jetbrains.kotlin.codegen.inline.insnText
|
import org.jetbrains.kotlin.codegen.inline.insnText
|
||||||
import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods
|
import org.jetbrains.kotlin.codegen.intrinsics.IntrinsicMethods
|
||||||
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue
|
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue
|
||||||
@@ -393,7 +393,7 @@ class RedundantBoxingMethodTransformer : MethodTransformer() {
|
|||||||
next.getOpcode() == Opcodes.IFNE ->
|
next.getOpcode() == Opcodes.IFNE ->
|
||||||
insertBefore(insn, JumpInsnNode(ifNotEqualOpcode, nextLabel))
|
insertBefore(insn, JumpInsnNode(ifNotEqualOpcode, nextLabel))
|
||||||
else ->
|
else ->
|
||||||
throw AssertionError("IFEQ or IFNE expected: " + getInsnOpcodeText(next))
|
throw AssertionError("IFEQ or IFNE expected: ${next.insnOpcodeText}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user