[KLIB tool] Rename "contents" to "dump-metadata"
To make KLIB tool command names more uniform.
This commit is contained in:
committed by
Space Team
parent
d8d95fdf4b
commit
02f52371c1
@@ -72,7 +72,8 @@ fun printUsage() {
|
|||||||
Note that this command renders the signatures from the metadata. Signatures for certain
|
Note that this command renders the signatures from the metadata. Signatures for certain
|
||||||
declarations in the metadata and in IR may differ if compiler plugins (such as Compose)
|
declarations in the metadata and in IR may differ if compiler plugins (such as Compose)
|
||||||
were applied during library compilation.
|
were applied during library compilation.
|
||||||
contents Dump the metadata of all public declarations in the library in the form of Kotlin-alike code
|
dump-metadata Dump the metadata of all public declarations in the library in the form of Kotlin-alike code
|
||||||
|
contents [DEPRECATED] Renamed to "dump-metadata". Please, use new command name
|
||||||
|
|
||||||
and the options are:
|
and the options are:
|
||||||
-repository <path> [DEPRECATED] Usage of KLIB repositories will be dropped soon. See https://youtrack.jetbrains.com/issue/KT-61098
|
-repository <path> [DEPRECATED] Usage of KLIB repositories will be dropped soon. See https://youtrack.jetbrains.com/issue/KT-61098
|
||||||
@@ -81,7 +82,7 @@ fun printUsage() {
|
|||||||
Render IR signatures of a specific version. By default, the most up-to-date signature version
|
Render IR signatures of a specific version. By default, the most up-to-date signature version
|
||||||
supported in the library is used.
|
supported in the library is used.
|
||||||
-print-signatures {true|false}
|
-print-signatures {true|false}
|
||||||
Print IR signature for every declaration (only for "contents" and "dump-ir" commands)
|
Print IR signature for every declaration (only for "dump-metadata" and "dump-ir" commands)
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -293,6 +294,11 @@ class Library(val libraryNameOrPath: String, val requestedRepository: String?) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun contents(output: Appendable, printSignatures: Boolean) {
|
fun contents(output: Appendable, printSignatures: Boolean) {
|
||||||
|
logWarning("\"contents\" has been renamed to \"dump-metadata\"")
|
||||||
|
dumpMetadata(output, printSignatures)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun dumpMetadata(output: Appendable, printSignatures: Boolean) {
|
||||||
val module = loadModule()
|
val module = loadModule()
|
||||||
val signatureRenderer = if (printSignatures) DefaultKlibSignatureRenderer("// Signature: ") else KlibSignatureRenderer.NO_SIGNATURE
|
val signatureRenderer = if (printSignatures) DefaultKlibSignatureRenderer("// Signature: ") else KlibSignatureRenderer.NO_SIGNATURE
|
||||||
val printer = DeclarationPrinter(output, DefaultDeclarationHeaderRenderer, signatureRenderer)
|
val printer = DeclarationPrinter(output, DefaultDeclarationHeaderRenderer, signatureRenderer)
|
||||||
@@ -301,7 +307,7 @@ class Library(val libraryNameOrPath: String, val requestedRepository: String?) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun signatures(output: Appendable) {
|
fun signatures(output: Appendable) {
|
||||||
logWarning("\"signatures\" is deprecated. Please, use \"dump-ir-signatures\" instead\n")
|
logWarning("\"signatures\" is deprecated. Please, use \"dump-ir-signatures\" instead")
|
||||||
|
|
||||||
val module = loadModule()
|
val module = loadModule()
|
||||||
val printer = SignaturePrinter(output, DefaultKlibSignatureRenderer())
|
val printer = SignaturePrinter(output, DefaultKlibSignatureRenderer())
|
||||||
@@ -380,6 +386,7 @@ fun main(args: Array<String>) {
|
|||||||
when (command.verb) {
|
when (command.verb) {
|
||||||
"dump-ir" -> library.ir(System.out, printSignatures)
|
"dump-ir" -> library.ir(System.out, printSignatures)
|
||||||
"dump-ir-signatures" -> library.dumpIrSignatures(System.out, signatureVersion)
|
"dump-ir-signatures" -> library.dumpIrSignatures(System.out, signatureVersion)
|
||||||
|
"dump-metadata" -> library.dumpMetadata(System.out, printSignatures)
|
||||||
"contents" -> library.contents(System.out, printSignatures)
|
"contents" -> library.contents(System.out, printSignatures)
|
||||||
"signatures" -> library.signatures(System.out)
|
"signatures" -> library.signatures(System.out)
|
||||||
"info" -> library.info()
|
"info" -> library.info()
|
||||||
|
|||||||
+17
-17
@@ -12,21 +12,21 @@ import org.jetbrains.kotlin.konan.target.Distribution
|
|||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
import java.nio.file.Paths
|
import java.nio.file.Paths
|
||||||
|
|
||||||
class ContentsTest {
|
class DumpMetadataTest {
|
||||||
|
|
||||||
private fun testLibrary(name: String) = LIBRARY_DIRECTORY.resolve("$name.klib").toFile().absolutePath
|
private fun testLibrary(name: String) = LIBRARY_DIRECTORY.resolve("$name.klib").toFile().absolutePath
|
||||||
|
|
||||||
private fun klibContents(library: String, printOutput: Boolean = false, expected: () -> String) {
|
private fun dumpMetadata(library: String, printOutput: Boolean = false, expected: () -> String) {
|
||||||
val output = StringBuilder()
|
val output = StringBuilder()
|
||||||
val lib = Library(library, null)
|
val lib = Library(library, null)
|
||||||
lib.contents(output, false)
|
lib.dumpMetadata(output, false)
|
||||||
if (printOutput) {
|
if (printOutput) {
|
||||||
println(output.trim().toString())
|
println(output.trim().toString())
|
||||||
}
|
}
|
||||||
assertEquals(
|
assertEquals(
|
||||||
StringUtil.convertLineSeparators(expected()),
|
StringUtil.convertLineSeparators(expected()),
|
||||||
StringUtil.convertLineSeparators(output.trim().toString()),
|
StringUtil.convertLineSeparators(output.trim().toString()),
|
||||||
"klib contents test failed for library: $library"
|
"klib \"dump-metadata\" test failed for library: $library"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,11 +34,11 @@ class ContentsTest {
|
|||||||
fun `Stdlib content should be printed without exceptions`() {
|
fun `Stdlib content should be printed without exceptions`() {
|
||||||
val output = StringBuilder()
|
val output = StringBuilder()
|
||||||
val distributionPath = System.getProperty("konan.home")
|
val distributionPath = System.getProperty("konan.home")
|
||||||
Library(Distribution(distributionPath).stdlib, null).contents(output, false)
|
Library(Distribution(distributionPath).stdlib, null).dumpMetadata(output, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun topLevelFunctions() = klibContents(testLibrary("TopLevelFunctions")) {
|
fun topLevelFunctions() = dumpMetadata(testLibrary("TopLevelFunctions")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
annotation class A constructor() : Annotation
|
annotation class A constructor() : Annotation
|
||||||
@@ -65,7 +65,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun constructors() = klibContents(testLibrary("Constructors")) {
|
fun constructors() = dumpMetadata(testLibrary("Constructors")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
annotation class A constructor() : Annotation
|
annotation class A constructor() : Annotation
|
||||||
@@ -95,7 +95,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun objects() = klibContents(testLibrary("Objects")) {
|
fun objects() = dumpMetadata(testLibrary("Objects")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun classes() = klibContents(testLibrary("Classes")) {
|
fun classes() = dumpMetadata(testLibrary("Classes")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
|
|
||||||
@@ -193,7 +193,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun methodModality() = klibContents(testLibrary("MethodModality")) {
|
fun methodModality() = dumpMetadata(testLibrary("MethodModality")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
|
|
||||||
@@ -223,7 +223,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun functionModifiers() = klibContents(testLibrary("FunctionModifiers")) {
|
fun functionModifiers() = dumpMetadata(testLibrary("FunctionModifiers")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
|
|
||||||
@@ -242,7 +242,7 @@ class ContentsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
// TODO: Support enum entry methods in serialization/deserialization.
|
// TODO: Support enum entry methods in serialization/deserialization.
|
||||||
fun enum() = klibContents(testLibrary("Enum")) {
|
fun enum() = dumpMetadata(testLibrary("Enum")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
|
|
||||||
@@ -262,7 +262,7 @@ class ContentsTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
// TODO: Support getter/setter annotations in serialization/deserialization.
|
// TODO: Support getter/setter annotations in serialization/deserialization.
|
||||||
fun accessors() = klibContents(testLibrary("Accessors")) {
|
fun accessors() = dumpMetadata(testLibrary("Accessors")) {
|
||||||
"""
|
"""
|
||||||
package custom.pkg {
|
package custom.pkg {
|
||||||
annotation class A constructor() : Annotation
|
annotation class A constructor() : Annotation
|
||||||
@@ -287,7 +287,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun topLevelPropertiesCustomPackage() = klibContents(testLibrary("TopLevelPropertiesCustomPackage")) {
|
fun topLevelPropertiesCustomPackage() = dumpMetadata(testLibrary("TopLevelPropertiesCustomPackage")) {
|
||||||
"""
|
"""
|
||||||
package custom.pkg {
|
package custom.pkg {
|
||||||
typealias MyTransformer = (String) -> Int
|
typealias MyTransformer = (String) -> Int
|
||||||
@@ -300,7 +300,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun topLevelPropertiesRootPackage() = klibContents(testLibrary("TopLevelPropertiesRootPackage")) {
|
fun topLevelPropertiesRootPackage() = dumpMetadata(testLibrary("TopLevelPropertiesRootPackage")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
typealias MyTransformer = (String) -> Int
|
typealias MyTransformer = (String) -> Int
|
||||||
@@ -313,7 +313,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun topLevelPropertiesWithClassesCustomPackage() = klibContents(testLibrary("TopLevelPropertiesWithClassesCustomPackage")) {
|
fun topLevelPropertiesWithClassesCustomPackage() = dumpMetadata(testLibrary("TopLevelPropertiesWithClassesCustomPackage")) {
|
||||||
"""
|
"""
|
||||||
package custom.pkg {
|
package custom.pkg {
|
||||||
object Bar
|
object Bar
|
||||||
@@ -328,7 +328,7 @@ class ContentsTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun topLevelPropertiesWithClassesRootPackage() = klibContents(testLibrary("TopLevelPropertiesWithClassesRootPackage")) {
|
fun topLevelPropertiesWithClassesRootPackage() = dumpMetadata(testLibrary("TopLevelPropertiesWithClassesRootPackage")) {
|
||||||
"""
|
"""
|
||||||
package <root> {
|
package <root> {
|
||||||
object Bar
|
object Bar
|
||||||
+5
-5
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts
|
|||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.DEFAULT_FILE_NAME
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.DEFAULT_FILE_NAME
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.DEFAULT_MODULE_NAME
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.DEFAULT_MODULE_NAME
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getContents
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.dumpMetadata
|
||||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEquals
|
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEquals
|
||||||
import org.junit.jupiter.api.Assumptions
|
import org.junit.jupiter.api.Assumptions
|
||||||
import org.junit.jupiter.api.Tag
|
import org.junit.jupiter.api.Tag
|
||||||
@@ -39,18 +39,18 @@ abstract class AbstractNativeCInteropKT39120Test : AbstractNativeCInteropBaseTes
|
|||||||
|
|
||||||
val includeFrameworkArgs = TestCompilerArgs("-compiler-option", "-F${testDataDir.canonicalPath}")
|
val includeFrameworkArgs = TestCompilerArgs("-compiler-option", "-F${testDataDir.canonicalPath}")
|
||||||
val klib1: KLIB = cinteropToLibrary(targets, def1File, buildDir, includeFrameworkArgs).assertSuccess().resultingArtifact
|
val klib1: KLIB = cinteropToLibrary(targets, def1File, buildDir, includeFrameworkArgs).assertSuccess().resultingArtifact
|
||||||
val contents1 = klib1.getContents(kotlinNativeClassLoader.classLoader)
|
val metadata1 = klib1.dumpMetadata(kotlinNativeClassLoader.classLoader)
|
||||||
|
|
||||||
val expectedFiltered1Output = golden1File.readText()
|
val expectedFiltered1Output = golden1File.readText()
|
||||||
val actualFiltered1Output = filterContentsOutput(contents1, " pod.Version|POD|class Pod")
|
val actualFiltered1Output = filterContentsOutput(metadata1, " pod.Version|POD|class Pod")
|
||||||
assertEquals(StringUtilRt.convertLineSeparators(expectedFiltered1Output), StringUtilRt.convertLineSeparators(actualFiltered1Output))
|
assertEquals(StringUtilRt.convertLineSeparators(expectedFiltered1Output), StringUtilRt.convertLineSeparators(actualFiltered1Output))
|
||||||
|
|
||||||
val cinterop2ExtraArgs = TestCompilerArgs("-l", klib1.klibFile.canonicalPath, "-compiler-option", "-fmodules")
|
val cinterop2ExtraArgs = TestCompilerArgs("-l", klib1.klibFile.canonicalPath, "-compiler-option", "-fmodules")
|
||||||
val klib2: KLIB = cinteropToLibrary(targets, def2File, buildDir, includeFrameworkArgs + cinterop2ExtraArgs).assertSuccess().resultingArtifact
|
val klib2: KLIB = cinteropToLibrary(targets, def2File, buildDir, includeFrameworkArgs + cinterop2ExtraArgs).assertSuccess().resultingArtifact
|
||||||
val contents2 = klib2.getContents(kotlinNativeClassLoader.classLoader)
|
val metadata2 = klib2.dumpMetadata(kotlinNativeClassLoader.classLoader)
|
||||||
|
|
||||||
val expectedFiltered2Output = golden2File.readText()
|
val expectedFiltered2Output = golden2File.readText()
|
||||||
val actualFiltered2Output = filterContentsOutput(contents2, " pod.Version|POD|class Pod")
|
val actualFiltered2Output = filterContentsOutput(metadata2, " pod.Version|POD|class Pod")
|
||||||
assertEquals(StringUtilRt.convertLineSeparators(expectedFiltered2Output), StringUtilRt.convertLineSeparators(actualFiltered2Output))
|
assertEquals(StringUtilRt.convertLineSeparators(expectedFiltered2Output), StringUtilRt.convertLineSeparators(actualFiltered2Output))
|
||||||
|
|
||||||
val ktFile = testPathFull.resolve(DEFAULT_FILE_NAME)
|
val ktFile = testPathFull.resolve(DEFAULT_FILE_NAME)
|
||||||
|
|||||||
+3
-3
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.TestCompilerArgs
|
|||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult
|
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult.Companion.assertSuccess
|
import org.jetbrains.kotlin.konan.test.blackbox.support.compilation.TestCompilationResult.Companion.assertSuccess
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getContents
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.dumpMetadata
|
||||||
import org.jetbrains.kotlin.konan.util.CInteropHints
|
import org.jetbrains.kotlin.konan.util.CInteropHints
|
||||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEquals
|
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEquals
|
||||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertTrue
|
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertTrue
|
||||||
@@ -103,7 +103,7 @@ abstract class AbstractNativeCInteropTest : AbstractNativeCInteropBaseTest() {
|
|||||||
"Test failed. CInterop compilation result was: $testCompilationResult"
|
"Test failed. CInterop compilation result was: $testCompilationResult"
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
val klibContents = testCompilationResult.assertSuccess().resultingArtifact.getContents(kotlinNativeClassLoader.classLoader)
|
val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader)
|
||||||
.let {
|
.let {
|
||||||
if (ignoreExperimentalForeignApi) {
|
if (ignoreExperimentalForeignApi) {
|
||||||
it.replace("@ExperimentalForeignApi ", "")
|
it.replace("@ExperimentalForeignApi ", "")
|
||||||
@@ -112,7 +112,7 @@ abstract class AbstractNativeCInteropTest : AbstractNativeCInteropBaseTest() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
val expectedContents = goldenFile.readText()
|
val expectedContents = goldenFile.readText()
|
||||||
assertEquals(StringUtilRt.convertLineSeparators(expectedContents), StringUtilRt.convertLineSeparators(klibContents)) {
|
assertEquals(StringUtilRt.convertLineSeparators(expectedContents), StringUtilRt.convertLineSeparators(metadata)) {
|
||||||
"Test failed. CInterop compilation result was: $testCompilationResult"
|
"Test failed. CInterop compilation result was: $testCompilationResult"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.konan.test.blackbox.support.runner.TestRunChecks
|
|||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.KotlinNativeClassLoader
|
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.KotlinNativeClassLoader
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts
|
import org.jetbrains.kotlin.konan.test.blackbox.support.settings.Timeouts
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getAbsoluteFile
|
||||||
import org.jetbrains.kotlin.konan.test.blackbox.support.util.getContents
|
import org.jetbrains.kotlin.konan.test.blackbox.support.util.dumpMetadata
|
||||||
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile
|
import org.jetbrains.kotlin.test.services.JUnit5Assertions.assertEqualsToFile
|
||||||
import org.junit.jupiter.api.Tag
|
import org.junit.jupiter.api.Tag
|
||||||
import java.io.File
|
import java.io.File
|
||||||
@@ -33,9 +33,9 @@ abstract class AbstractNativeKlibDumpMetadataTest : AbstractNativeSimpleTest() {
|
|||||||
val testCompilationResult: TestCompilationResult.Success<out KLIB> = compileToLibrary(testCase)
|
val testCompilationResult: TestCompilationResult.Success<out KLIB> = compileToLibrary(testCase)
|
||||||
|
|
||||||
val kotlinNativeClassLoader = testRunSettings.get<KotlinNativeClassLoader>()
|
val kotlinNativeClassLoader = testRunSettings.get<KotlinNativeClassLoader>()
|
||||||
val klibContents = testCompilationResult.assertSuccess().resultingArtifact.getContents(kotlinNativeClassLoader.classLoader)
|
val metadata = testCompilationResult.assertSuccess().resultingArtifact.dumpMetadata(kotlinNativeClassLoader.classLoader)
|
||||||
val klibContentsFiltered = filterContentsOutput(klibContents, linestoExclude = listOf("package test {", "}", ""))
|
val metadataFiltered = filterContentsOutput(metadata, linestoExclude = listOf("package test {", "}", ""))
|
||||||
assertEqualsToFile(File("${testPathFull.canonicalPath.substringBeforeLast(".")}.txt"), StringUtilRt.convertLineSeparators(klibContentsFiltered))
|
assertEqualsToFile(File("${testPathFull.canonicalPath.substringBeforeLast(".")}.txt"), StringUtilRt.convertLineSeparators(metadataFiltered))
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateTestCaseWithSingleSource(source: File, extraArgs: List<String>): TestCase {
|
private fun generateTestCaseWithSingleSource(source: File, extraArgs: List<String>): TestCase {
|
||||||
|
|||||||
+2
-2
@@ -20,8 +20,8 @@ private fun invokeKlibTool(kotlinNativeClassLoader: ClassLoader, klibFile: File,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun TestCompilationArtifact.KLIB.getContents(kotlinNativeClassLoader: ClassLoader): String {
|
internal fun TestCompilationArtifact.KLIB.dumpMetadata(kotlinNativeClassLoader: ClassLoader): String {
|
||||||
return invokeKlibTool(kotlinNativeClassLoader, klibFile, "contents", false)
|
return invokeKlibTool(kotlinNativeClassLoader, klibFile, "dumpMetadata", /* printSignatures= */ false)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun TestCompilationArtifact.KLIB.getIr(
|
internal fun TestCompilationArtifact.KLIB.getIr(
|
||||||
|
|||||||
Reference in New Issue
Block a user