From bf536afe5f6fe2b220510e07cdb72b1c81043047 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Thu, 18 Feb 2016 20:20:16 +0300 Subject: [PATCH] Mark reified assertFailsWith with InlineOnly to preserve stack traces. --- .../src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt | 1 + .../src/main/kotlin/kotlin/internal/internalAnnotations.kt | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt b/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt index a32363bd17e..e50b1d2b1a8 100644 --- a/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt +++ b/libraries/kotlin.test/shared/src/main/kotlin.jvm/kotlin/test/TestAssertionsJVM.kt @@ -28,6 +28,7 @@ fun assertFailsWith(exceptionClass: KClass, message: String?, /** Asserts that a [block] fails with a specific exception of type [T] being thrown. * Since inline method doesn't allow to trace where it was invoked, it is required to pass a [message] to distinguish this method call from others. */ +@kotlin.internal.InlineOnly inline fun assertFailsWith(message: String? = null, noinline block: () -> Unit): T = assertFailsWith(T::class, message, block) diff --git a/libraries/kotlin.test/shared/src/main/kotlin/kotlin/internal/internalAnnotations.kt b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/internal/internalAnnotations.kt index 71404811ec6..76a295c89bc 100644 --- a/libraries/kotlin.test/shared/src/main/kotlin/kotlin/internal/internalAnnotations.kt +++ b/libraries/kotlin.test/shared/src/main/kotlin/kotlin/internal/internalAnnotations.kt @@ -8,3 +8,9 @@ package kotlin.internal @Retention(AnnotationRetention.BINARY) internal annotation class OnlyInputTypes +/** + * Specifies that this function should not be called directly without inlining + */ +@Target(AnnotationTarget.FUNCTION) +@Retention(AnnotationRetention.BINARY) +internal annotation class InlineOnly \ No newline at end of file