From 2e87a08c8d8291171c1ba4145f221615a42e06b4 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 24 Mar 2016 06:26:50 +0300 Subject: [PATCH] Ignore kotlin visibilities for classes in effectively public package kotlin.jvm.internal --- .../RuntimePublicAPITest.kt | 6 +- .../test/resources/output/kotlin-runtime.txt | 60 +++++++++++++++++++ 2 files changed, 64 insertions(+), 2 deletions(-) diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt index d74e7f22dd2..304b4227f48 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt @@ -30,7 +30,7 @@ class RuntimePublicAPITest { val testName = TestName() @Test fun kotlinRuntime() { - snapshotAPIAndCompare("../../tools/runtime/target", "kotlin-runtime", "runtime-declarations.json") + snapshotAPIAndCompare("../../tools/runtime/target", "kotlin-runtime", "runtime-declarations.json", listOf("kotlin.jvm.internal")) } @Test fun kotlinStdlib() { @@ -44,14 +44,16 @@ class RuntimePublicAPITest { } */ - private fun snapshotAPIAndCompare(basePath: String, jarPrefix: String, kotlinJvmMappingsPath: String) { + private fun snapshotAPIAndCompare(basePath: String, jarPrefix: String, kotlinJvmMappingsPath: String, publicPackages: List = emptyList()) { val base = File(basePath).absoluteFile.normalize() val jarFile = getJarPath(base, jarPrefix) val kotlinJvmMappingsFile = base.resolve(kotlinJvmMappingsPath) println("Reading kotlin visibilities from $kotlinJvmMappingsFile") + val publicPackagePrefixes = publicPackages.map { it.replace('.', '/') + '/' } val visibilities = readKotlinVisibilities(kotlinJvmMappingsFile) + .filterKeys { name -> publicPackagePrefixes.none { name.startsWith(it) } } println("Reading binary API from $jarFile") val api = getBinaryAPI(JarFile(jarFile), visibilities).filterOutNonPublic() diff --git a/libraries/tools/binary-compatibility-validator/src/test/resources/output/kotlin-runtime.txt b/libraries/tools/binary-compatibility-validator/src/test/resources/output/kotlin-runtime.txt index 2dc232d98ed..2df32890e2b 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/resources/output/kotlin-runtime.txt +++ b/libraries/tools/binary-compatibility-validator/src/test/resources/output/kotlin-runtime.txt @@ -352,6 +352,12 @@ public synthetic fun getSize (Ljava/lang/Object;)I public final fun toArray ()[Z ------------------ +public final class kotlin/jvm/internal/ByteCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/ByteCompanionObject; +public static final field MAX_VALUE B +public static final field MIN_VALUE B +------------------ + public final class kotlin/jvm/internal/ByteSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (B)V @@ -375,6 +381,16 @@ public fun getReturnType ()Lkotlin/reflect/KType; public fun getSignature ()Ljava/lang/String; ------------------ +public final class kotlin/jvm/internal/CharCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/CharCompanionObject; +public static final field MAX_HIGH_SURROGATE C +public static final field MAX_LOW_SURROGATE C +public static final field MAX_SURROGATE C +public static final field MIN_HIGH_SURROGATE C +public static final field MIN_LOW_SURROGATE C +public static final field MIN_SURROGATE C +------------------ + public final class kotlin/jvm/internal/CharSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (C)V @@ -406,6 +422,15 @@ public static fun toArray (Ljava/util/Collection;)[Ljava/lang/Object; public static fun toArray (Ljava/util/Collection;[Ljava/lang/Object;)[Ljava/lang/Object; ------------------ +public final class kotlin/jvm/internal/DoubleCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/DoubleCompanionObject; +public final fun getMAX_VALUE ()D +public final fun getMIN_VALUE ()D +public final fun getNEGATIVE_INFINITY ()D +public final fun getNaN ()D +public final fun getPOSITIVE_INFINITY ()D +------------------ + public final class kotlin/jvm/internal/DoubleSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (D)V @@ -413,6 +438,19 @@ public synthetic fun getSize (Ljava/lang/Object;)I public final fun toArray ()[D ------------------ +public final class kotlin/jvm/internal/EnumCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/EnumCompanionObject; +------------------ + +public final class kotlin/jvm/internal/FloatCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/FloatCompanionObject; +public final fun getMAX_VALUE ()F +public final fun getMIN_VALUE ()F +public final fun getNEGATIVE_INFINITY ()F +public final fun getNaN ()F +public final fun getPOSITIVE_INFINITY ()F +------------------ + public final class kotlin/jvm/internal/FloatSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (F)V @@ -483,6 +521,12 @@ public static fun mark (I)V public static fun mark (Ljava/lang/String;)V ------------------ +public final class kotlin/jvm/internal/IntCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/IntCompanionObject; +public static final field MAX_VALUE I +public static final field MIN_VALUE I +------------------ + public final class kotlin/jvm/internal/IntSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (I)V @@ -531,6 +575,12 @@ public fun getArity ()I public fun toString ()Ljava/lang/String; ------------------ +public final class kotlin/jvm/internal/LongCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/LongCompanionObject; +public static final field MAX_VALUE J +public static final field MIN_VALUE J +------------------ + public final class kotlin/jvm/internal/LongSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (J)V @@ -822,6 +872,12 @@ public fun property2 (Lkotlin/jvm/internal/PropertyReference2;)Lkotlin/reflect/K public fun renderLambdaToString (Lkotlin/jvm/internal/Lambda;)Ljava/lang/String; ------------------ +public final class kotlin/jvm/internal/ShortCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/ShortCompanionObject; +public static final field MAX_VALUE S +public static final field MIN_VALUE S +------------------ + public final class kotlin/jvm/internal/ShortSpreadBuilder: kotlin/jvm/internal/PrimitiveSpreadBuilder public fun (I)V public final fun add (S)V @@ -837,6 +893,10 @@ public fun size ()I public fun toArray ([Ljava/lang/Object;)[Ljava/lang/Object; ------------------ +public final class kotlin/jvm/internal/StringCompanionObject +public static final field INSTANCE Lkotlin/jvm/internal/StringCompanionObject; +------------------ + public class kotlin/jvm/internal/TypeIntrinsics public fun ()V public static fun asMutableCollection (Ljava/lang/Object;)Ljava/util/Collection;