Minor fixes after review

This commit is contained in:
Alexey Tsvetkov
2018-12-07 18:58:41 +03:00
parent d54ce2da6f
commit 50d8fe611c
6 changed files with 20 additions and 7 deletions
@@ -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
@@ -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()
) {