From 4cb0437145b5be98583a26ed88630ee48d530f17 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 15 Oct 2020 17:08:24 +0200 Subject: [PATCH] [minor] fix reflection usage in scripting tests --- .../script/experimental/jvmhost/test/CachingTest.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/CachingTest.kt b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/CachingTest.kt index 842f9513d94..4bfc1e102cc 100644 --- a/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/CachingTest.kt +++ b/libraries/scripting/jvm-host-test/test/kotlin/script/experimental/jvmhost/test/CachingTest.kt @@ -13,6 +13,7 @@ import java.io.File import java.io.ObjectInputStream import java.io.ObjectOutputStream import java.security.MessageDigest +import java.util.ArrayList import kotlin.script.experimental.api.* import kotlin.script.experimental.host.toScriptSource import kotlin.script.experimental.host.with @@ -172,7 +173,7 @@ class CachingTest : TestCase() { val cachedScriptClass = cachedScriptClassRes.valueOrThrow() Assert.assertEquals(compiledScriptClass.qualifiedName, cachedScriptClass.qualifiedName) - Assert.assertEquals(compiledScriptClass.supertypes, cachedScriptClass.supertypes) + Assert.assertEquals(compiledScriptClass.java.supertypes(), cachedScriptClass.java.supertypes()) val output2 = captureOut { runBlocking { @@ -299,3 +300,12 @@ private fun File.readCompiledScript(): CompiledScript { private fun ByteArray.toHexString(): String = joinToString("", transform = { "%02x".format(it) }) +private fun Class<*>.supertypes(): MutableList> = when { + superclass == null -> interfaces.toMutableList() ?: mutableListOf() + interfaces.isEmpty() -> mutableListOf(superclass) + else -> ArrayList>(interfaces.size + 1).apply { + interfaces.toCollection(this@apply) + add(superclass) + } +} +