Minor fixes after review
This commit is contained in:
+2
-1
@@ -18,6 +18,7 @@ import org.jetbrains.kotlin.diagnostics.Severity
|
||||
import org.jetbrains.kotlin.incremental.LocalFileKotlinClass
|
||||
import org.jetbrains.kotlin.incremental.isClassFile
|
||||
import org.jetbrains.kotlin.jvm.abi.asm.AbiClassBuilder
|
||||
import org.jetbrains.kotlin.jvm.abi.asm.AbiExtensionAsmApiVersion
|
||||
import org.jetbrains.kotlin.jvm.abi.asm.FilterInnerClassesVisitor
|
||||
import org.jetbrains.kotlin.jvm.abi.asm.InnerClassesCollectingVisitor
|
||||
import org.jetbrains.kotlin.load.kotlin.FileBasedKotlinClass
|
||||
@@ -137,7 +138,7 @@ class JvmAbiAnalysisHandlerExtension(
|
||||
output.delete()
|
||||
} else {
|
||||
output.transform { writer ->
|
||||
FilterInnerClassesVisitor(classesToRemove, Opcodes.ASM6, writer)
|
||||
FilterInnerClassesVisitor(classesToRemove, AbiExtensionAsmApiVersion, writer)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ internal class AbiClassBuilder(private val cv: ClassVisitor) : AbstractClassBuil
|
||||
|
||||
val mv = super.newMethod(origin, access, name, desc, signature, exceptions)
|
||||
val descriptor = origin.descriptor
|
||||
// inline function bodies are part of ABI,
|
||||
// but non-inline functions can be thrown out
|
||||
if (descriptor is FunctionDescriptor && descriptor.isInline) return mv
|
||||
|
||||
// getArgumentsAndReturnSizes returns `(argSize << 2) | retSize`, where argSize includes `this`
|
||||
val maxLocals = (Type.getArgumentsAndReturnSizes(desc) shr 2) - 1
|
||||
return ReplaceWithEmptyMethodVisitor(maxLocals, mv, Opcodes.ASM6)
|
||||
return ReplaceWithEmptyMethodVisitor(maxLocals, mv, AbiExtensionAsmApiVersion)
|
||||
}
|
||||
|
||||
override fun newField(
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
/*
|
||||
* Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
||||
* that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.jvm.abi.asm
|
||||
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||
|
||||
internal const val AbiExtensionAsmApiVersion = Opcodes.ASM6
|
||||
+2
-3
@@ -1,10 +1,9 @@
|
||||
package org.jetbrains.kotlin.jvm.abi.asm
|
||||
|
||||
import org.jetbrains.org.objectweb.asm.ClassVisitor
|
||||
import org.jetbrains.org.objectweb.asm.Opcodes
|
||||
|
||||
internal class InnerClassesCollectingVisitor : ClassVisitor(Opcodes.ASM6) {
|
||||
var ownInternalName: String? = null
|
||||
internal class InnerClassesCollectingVisitor : ClassVisitor(AbiExtensionAsmApiVersion) {
|
||||
lateinit var ownInternalName: String
|
||||
private set
|
||||
|
||||
private val myInnerClasses = arrayListOf<String>()
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.jetbrains.kotlin.jvm.abi
|
||||
|
||||
import com.intellij.testFramework.UsefulTestCase
|
||||
import org.jetbrains.kotlin.incremental.isClassFile
|
||||
import org.jetbrains.kotlin.jvm.abi.asm.AbiExtensionAsmApiVersion
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import org.jetbrains.org.objectweb.asm.*
|
||||
import java.io.File
|
||||
@@ -35,7 +36,7 @@ abstract class AbstractJvmAbiContentTest : BaseJvmAbiTest() {
|
||||
}
|
||||
}
|
||||
|
||||
private class PrintingClassVisitor(private val p: Printer) : ClassVisitor(Opcodes.ASM6) {
|
||||
private class PrintingClassVisitor(private val p: Printer) : ClassVisitor(AbiExtensionAsmApiVersion) {
|
||||
override fun visit(
|
||||
version: Int,
|
||||
access: Int,
|
||||
|
||||
@@ -31,7 +31,7 @@ abstract class BaseJvmAbiTest : TestCase() {
|
||||
"plugin:${JvmAbiCommandLineProcessor.COMPILER_PLUGIN_ID}:$option=$value"
|
||||
|
||||
inner class Compilation(
|
||||
val projectDir: File,
|
||||
private val projectDir: File,
|
||||
val name: String?,
|
||||
val dependencies: Collection<Compilation> = emptyList()
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user