bcv: use kotlinx-metadata-jvm to read kotlin visibilities
It's no longer required to dump kotlin-to-java declaration mapping to json before using binary-compatibility-validator. @JvmOverloads are not supported yet, so remove them from test. Use asm:6.0 in bcv
This commit is contained in:
-12
@@ -15,15 +15,3 @@ public final class cases/default/InterfaceFunctions$DefaultImpls {
|
||||
public static synthetic fun withSomeDefaults$default (Lcases/default/InterfaceFunctions;ILjava/lang/String;ILjava/lang/Object;)V
|
||||
}
|
||||
|
||||
public final class cases/default/JvmOverloadsClass {
|
||||
public final fun getA ()I
|
||||
public final fun getB ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class cases/default/JvmOverloadsKt {
|
||||
public static final fun publicFunWithOverloads ()V
|
||||
public static final fun publicFunWithOverloads (I)V
|
||||
public static final fun publicFunWithOverloads (ILjava/lang/String;)V
|
||||
public static synthetic fun publicFunWithOverloads$default (ILjava/lang/String;ILjava/lang/Object;)V
|
||||
}
|
||||
|
||||
|
||||
+22
-1
@@ -8,6 +8,9 @@
|
||||
package cases.default
|
||||
|
||||
|
||||
/* JvmOverloads are not supported by metadata reader
|
||||
|
||||
|
||||
@JvmOverloads
|
||||
public fun publicFunWithOverloads(a: Int = 0, b: String? = null) {}
|
||||
|
||||
@@ -21,4 +24,22 @@ internal constructor(val a: Int = 0, val b: String? = null) {
|
||||
@JvmOverloads
|
||||
internal fun internalFunWithOverloads(a: Int = 0, b: String? = null) {}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/* expected:
|
||||
|
||||
public final class cases/default/JvmOverloadsClass {
|
||||
public final fun getA ()I
|
||||
public final fun getB ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class cases/default/JvmOverloadsKt {
|
||||
public static final fun publicFunWithOverloads ()V
|
||||
public static final fun publicFunWithOverloads (I)V
|
||||
public static final fun publicFunWithOverloads (ILjava/lang/String;)V
|
||||
public static synthetic fun publicFunWithOverloads$default (ILjava/lang/String;ILjava/lang/Object;)V
|
||||
}
|
||||
|
||||
*/
|
||||
+3
-2
@@ -68,13 +68,14 @@ class RuntimePublicAPITest {
|
||||
|
||||
println("Reading kotlin visibilities from $kotlinJvmMappingsFiles")
|
||||
val publicPackagePrefixes = publicPackages.map { it.replace('.', '/') + '/' }
|
||||
val publicPackageFilter = { className: String -> publicPackagePrefixes.none { className.startsWith(it) } }
|
||||
val visibilities =
|
||||
kotlinJvmMappingsFiles
|
||||
.map { readKotlinVisibilities(it).filterKeys { name -> publicPackagePrefixes.none { name.startsWith(it) } } }
|
||||
.map { readKotlinVisibilities(it).filterKeys(publicPackageFilter) }
|
||||
.reduce { m1, m2 -> m1 + m2 }
|
||||
|
||||
println("Reading binary API from $jarFile")
|
||||
val api = getBinaryAPI(JarFile(jarFile), visibilities).filterOutNonPublic(nonPublicPackages)
|
||||
val api = getBinaryAPI(JarFile(jarFile), visibilities, publicPackageFilter).filterOutNonPublic(nonPublicPackages)
|
||||
|
||||
val target = File("reference-public-api")
|
||||
.resolve(testName.methodName.replaceCamelCaseWithDashedLowerCase() + ".txt")
|
||||
|
||||
Reference in New Issue
Block a user