diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/constructors.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/constructors.kt new file mode 100644 index 00000000000..6e2735583c8 --- /dev/null +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/constructors.kt @@ -0,0 +1,10 @@ +@file:Suppress("UNUSED_PARAMETER") +package cases.default + +class ClassConstructors +internal constructor(name: String, flags: Int = 0) { + + internal constructor(name: StringBuilder, flags: Int = 0) : this(name.toString(), flags) + +} + diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/default.txt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/default.txt new file mode 100644 index 00000000000..d2a5626c3b1 --- /dev/null +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/default.txt @@ -0,0 +1,29 @@ +public final class cases/default/ClassConstructors { +} + +public class cases/default/ClassFunctions { + public fun ()V +} + +public abstract interface class cases/default/InterfaceFunctions { + public abstract fun withAllDefaults (ILjava/lang/String;)V + public abstract fun withSomeDefaults (ILjava/lang/String;)V +} + +public final class cases/default/InterfaceFunctions$DefaultImpls { + public static synthetic fun withAllDefaults$default (Lcases/default/InterfaceFunctions;ILjava/lang/String;ILjava/lang/Object;)V + 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 +} + diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/functions.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/functions.kt new file mode 100644 index 00000000000..bff3c9ddfdc --- /dev/null +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/functions.kt @@ -0,0 +1,24 @@ +@file:Suppress("UNUSED_PARAMETER") +package cases.default + +internal fun allDefaults(par1: Any = 1, par2: String? = null) {} + +internal fun someDefaults(par1: Any, par2: String? = null) {} + + +open class ClassFunctions { + + internal open fun allDefaults(par1: Any = 1, par2: String? = null) {} + + internal open fun someDefaults(par1: Any, par2: String? = null) {} + +} + + +interface InterfaceFunctions { + + fun withAllDefaults(par1: Int = 1, par2: String? = null) + + fun withSomeDefaults(par1: Int, par2: String? = null) + +} \ No newline at end of file diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/jvmOverloads.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/jvmOverloads.kt similarity index 51% rename from libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/jvmOverloads.kt rename to libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/jvmOverloads.kt index ec941ff9737..5821487ff20 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/jvmOverloads.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/default/jvmOverloads.kt @@ -1,6 +1,11 @@ +/* + * 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. + */ + @file:Suppress("UNUSED_PARAMETER") -package cases.special +package cases.default @JvmOverloads @@ -9,9 +14,9 @@ public fun publicFunWithOverloads(a: Int = 0, b: String? = null) {} @JvmOverloads internal fun internalFunWithOverloads(a: Int = 0, b: String? = null) {} -public class ClassWithOverloads - @JvmOverloads - internal constructor(val a: Int = 0, val b: String? = null) { +public class JvmOverloadsClass +@JvmOverloads +internal constructor(val a: Int = 0, val b: String? = null) { @JvmOverloads internal fun internalFunWithOverloads(a: Int = 0, b: String? = null) {} diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/special.txt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/special.txt index 40c074d2455..242f2d571df 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/special.txt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/cases/special/special.txt @@ -2,11 +2,6 @@ public final class cases/special/ClassWithLateInitMembers { public final fun getPublicLateInitWithInternalSet ()Ljava/lang/String; } -public final class cases/special/ClassWithOverloads { - public final fun getA ()I - public final fun getB ()Ljava/lang/String; -} - public final class cases/special/HiddenClass { public synthetic fun ()V public final synthetic fun getHiddenVal ()I @@ -52,10 +47,3 @@ public final class cases/special/JvmNamesKt { public static final fun publicVarSetter (I)V } -public final class cases/special/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 -} - diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt index d76b3cd1890..b989d378f06 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/CasesPublicAPITest.kt @@ -22,6 +22,8 @@ class CasesPublicAPITest { @Test fun companions() { snapshotAPIAndCompare(testName.methodName) } + @Test fun default() { snapshotAPIAndCompare(testName.methodName) } + @Test fun inline() { snapshotAPIAndCompare(testName.methodName) } @Test fun interfaces() { snapshotAPIAndCompare(testName.methodName) }