diff --git a/build.gradle.kts b/build.gradle.kts index 0cd5e51..aa5fcf6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -15,7 +15,7 @@ buildscript { } group = "ru.landgrafhomyak.utility" -version = "0.4.4" +version = "0.4.5" repositories { mavenCentral() @@ -25,6 +25,8 @@ xomrk { kotlin { setCompatibilityWithKotlin(KotlinVersion.KOTLIN_2_0) optInContracts() + noWarnExpectActual() + warningsAsErrors() defineAllMultiplatformTargets() @@ -46,24 +48,34 @@ xomrk { } sourceSets { - commonMain { + val commonMain by getting { dependencies { compileOnly(kotlin("stdlib")) } } - jvmMain { + val jvmMain by getting { dependencies { compileOnly(kotlin("stdlib")) } } - sourceSets.configureEach { - if (name == "jvmMain") return@configureEach - if (name == "commonMain") return@configureEach + val nonJvmMain by creating { + dependsOn(commonMain) dependencies { implementation(kotlin("stdlib")) } } + + sourceSets.configureEach { + when { + // commonMain !in dependsOn -> return@configureEach + !name.endsWith("Main") -> return@configureEach + this@configureEach === commonMain -> return@configureEach + this@configureEach === jvmMain -> return@configureEach + this@configureEach === nonJvmMain -> return@configureEach + } + dependsOn(nonJvmMain) + } } } diff --git a/gradle.properties b/gradle.properties index bf7d93b..ef6aa44 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,2 +1,3 @@ kotlin.code.style=official kotlin.stdlib.default.dependency=false +kotlin.mpp.applyDefaultHierarchyTemplate=false \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt b/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt new file mode 100644 index 0000000..7a472ba --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt @@ -0,0 +1,7 @@ +package ru.landgrafhomyak.utility.highlevel_try_finally + +@PublishedApi +internal expect object ExceptionsKt { + @PublishedApi + internal fun addSuppressed(e1: Throwable?, e2: Throwable?) +} \ No newline at end of file diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/safe_autoclose.kt b/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/safe_autoclose.kt index 048ae74..024ee8b 100644 --- a/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/safe_autoclose.kt +++ b/src/commonMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/safe_autoclose.kt @@ -86,7 +86,7 @@ inline fun safeAutoClose3e( try { onError(e1) } catch (e2: Throwable) { - e1.addSuppressed(e2) + ExceptionsKt.addSuppressed(e1, e2) } throw e1 } finally { diff --git a/src/jvmMain/java/kotlin/ExceptionsKt.kt b/src/jvmMain/java/kotlin/ExceptionsKt.kt deleted file mode 100644 index 8484776..0000000 --- a/src/jvmMain/java/kotlin/ExceptionsKt.kt +++ /dev/null @@ -1,13 +0,0 @@ -package kotlin - -import java.util.Objects - -@PublishedApi -internal object ExceptionsKt { - @Suppress("RemoveRedundantQualifierName") - @JvmStatic - @PublishedApi - internal fun addSuppressed(`this`: kotlin.Throwable, e2: kotlin.Throwable?) { - (java.lang.Throwable::addSuppressed)(`this` as java.lang.Throwable, e2) - } -} diff --git a/src/jvmMain/java/kotlin/jvm/internal/Intrinsics.kt b/src/jvmMain/java/kotlin/jvm/internal/Intrinsics.kt deleted file mode 100644 index ffb223c..0000000 --- a/src/jvmMain/java/kotlin/jvm/internal/Intrinsics.kt +++ /dev/null @@ -1,11 +0,0 @@ -package kotlin.jvm.internal - -@PublishedApi -internal object Intrinsics { - @PublishedApi - @JvmStatic - internal fun checkNotNullParameter(expr: java.lang.Object?, name: String?) { - if (expr == null) - throw java.lang.NullPointerException(name) - } -} \ No newline at end of file diff --git a/src/jvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt b/src/jvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt new file mode 100644 index 0000000..9279da7 --- /dev/null +++ b/src/jvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt @@ -0,0 +1,11 @@ +package ru.landgrafhomyak.utility.highlevel_try_finally + +@PublishedApi +internal actual object ExceptionsKt { + @PublishedApi + internal actual fun addSuppressed(e1: Throwable?, e2: Throwable?) { + if (e1 == null) throw NullPointerException("e1") + if (e2 == null) throw NullPointerException("e2") + (java.lang.Throwable::addSuppressed)(e1 as java.lang.Throwable, e2) + } +} \ No newline at end of file diff --git a/src/nonJvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt b/src/nonJvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt new file mode 100644 index 0000000..0dc8d17 --- /dev/null +++ b/src/nonJvmMain/kotlin/ru/landgrafhomyak/utility/highlevel_try_finally/ExceptionsKt.kt @@ -0,0 +1,11 @@ +package ru.landgrafhomyak.utility.highlevel_try_finally + +import kotlin.addSuppressed as kotlinAddSuppressed + +@PublishedApi +internal actual object ExceptionsKt { + @PublishedApi + internal actual fun addSuppressed(e1: Throwable?, e2: Throwable?) { + e1!!.kotlinAddSuppressed(e2!!) + } +} \ No newline at end of file