Convert text util methods to extension properties

This commit is contained in:
Mikhael Bogdanov
2017-06-12 11:43:09 +02:00
parent e96d2212da
commit 724ac3cf59
4 changed files with 20 additions and 19 deletions
@@ -167,7 +167,7 @@ class InlineCodegen(
"Couldn't inline method call '" + functionDescriptor.name + "' into\n" +
DescriptorRenderer.DEBUG_TEXT.render(contextDescriptor) + "\n" +
(element?.text ?: "<no source>") +
if (generateNodeText) "\nCause: " + getNodeText(node) else "",
if (generateNodeText) "\nCause: " + node.nodeText else "",
e, callElement
)
}
@@ -618,7 +618,7 @@ class MethodInliner(
return InlineException("$errorPrefix: $errorSuffix", originalException)
}
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.ExpressionCodegen
import org.jetbrains.kotlin.codegen.JvmCodegenUtil
import org.jetbrains.kotlin.codegen.MemberCodegen
import org.jetbrains.kotlin.codegen.binding.CodegenBinding
import org.jetbrains.kotlin.codegen.context.CodegenContext
import org.jetbrains.kotlin.codegen.context.CodegenContextUtil
@@ -325,17 +324,18 @@ fun firstLabelInChain(node: LabelNode): LabelNode {
return curNode
}
fun getNodeText(node: MethodNode?): String {
val textifier = Textifier()
if (node == null) {
return "Not generated"
val MethodNode?.nodeText: String
get() {
if (this == null) {
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
get() {
@@ -348,11 +348,12 @@ val AbstractInsnNode?.insnText: String
return sw.toString().trim { it <= ' ' }
}
fun getInsnOpcodeText(node: AbstractInsnNode?): String {
return if (node == null) "null" else Printer.OPCODES[node.opcode]
}
val AbstractInsnNode?.insnOpcodeText: String
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 {
val outputFile = state.factory.get(internalName + ".class")
@@ -17,7 +17,7 @@
package org.jetbrains.kotlin.codegen.optimization.boxing
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.intrinsics.IntrinsicMethods
import org.jetbrains.kotlin.codegen.optimization.common.StrictBasicValue
@@ -393,7 +393,7 @@ class RedundantBoxingMethodTransformer : MethodTransformer() {
next.getOpcode() == Opcodes.IFNE ->
insertBefore(insn, JumpInsnNode(ifNotEqualOpcode, nextLabel))
else ->
throw AssertionError("IFEQ or IFNE expected: " + getInsnOpcodeText(next))
throw AssertionError("IFEQ or IFNE expected: ${next.insnOpcodeText}")
}
}
}