From 9bfb226948c6860243b35182a656948a321102c5 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Fri, 6 May 2016 17:28:27 +0300 Subject: [PATCH] Drop inline-only extensions and hide non-inline-only ones that are available now as mapped methods of mapped builtins. #KT-10887 Fixed --- .../stdlib/src/kotlin/util/Exceptions.kt | 25 +++---------------- libraries/stdlib/test/ExceptionTest.kt | 8 ++++++ .../reference-public-api/kotlin-stdlib.txt | 2 +- 3 files changed, 12 insertions(+), 23 deletions(-) diff --git a/libraries/stdlib/src/kotlin/util/Exceptions.kt b/libraries/stdlib/src/kotlin/util/Exceptions.kt index 221c234ba18..3d3c6d39dd0 100644 --- a/libraries/stdlib/src/kotlin/util/Exceptions.kt +++ b/libraries/stdlib/src/kotlin/util/Exceptions.kt @@ -1,33 +1,14 @@ @file:kotlin.jvm.JvmMultifileClass @file:kotlin.jvm.JvmName("ExceptionsKt") @file:kotlin.jvm.JvmVersion -@file:Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN") +@file:Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN", "DeprecatedCallableAddReplaceWith") package kotlin -import java.io.PrintStream -import java.io.PrintWriter - -/** - * Prints the stack trace of this throwable to the standard output. - */ -@kotlin.internal.InlineOnly -public inline fun Throwable.printStackTrace(): Unit = (this as java.lang.Throwable).printStackTrace() - -/** - * Prints the stack trace of this throwable to the specified [writer]. - */ -@kotlin.internal.InlineOnly -public inline fun Throwable.printStackTrace(writer: PrintWriter): Unit = (this as java.lang.Throwable).printStackTrace(writer) - -/** - * Prints the stack trace of this throwable to the specified [stream]. - */ -@kotlin.internal.InlineOnly -public inline fun Throwable.printStackTrace(stream: PrintStream): Unit = (this as java.lang.Throwable).printStackTrace(stream) /** * Returns an array of stack trace elements representing the stack trace * pertaining to this throwable. */ +@Deprecated("Provided for binary compatibility", level = DeprecationLevel.HIDDEN) public val Throwable.stackTrace: Array - get() = (this as java.lang.Throwable).stackTrace!! + get() = stackTrace!! diff --git a/libraries/stdlib/test/ExceptionTest.kt b/libraries/stdlib/test/ExceptionTest.kt index 46348c65aa8..17e0f903a2b 100644 --- a/libraries/stdlib/test/ExceptionTest.kt +++ b/libraries/stdlib/test/ExceptionTest.kt @@ -41,4 +41,12 @@ class ExceptionTest { val bytes = assertNotNull(byteBuffer.toByteArray()) assertTrue(bytes.size > 10) } + + @test fun changeStackTrace() { + val exception = RuntimeException("Fail") + var stackTrace = exception.stackTrace + stackTrace = stackTrace.dropLast(1).toTypedArray() + exception.stackTrace = stackTrace + assertArrayNotSameButEquals(stackTrace, exception.stackTrace) + } } diff --git a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt index 6a4a122d325..47547114797 100644 --- a/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt +++ b/libraries/tools/binary-compatibility-validator/reference-public-api/kotlin-stdlib.txt @@ -1,5 +1,5 @@ public final class kotlin/ExceptionsKt { - public static final fun getStackTrace (Ljava/lang/Throwable;)[Ljava/lang/StackTraceElement; + public static final synthetic fun getStackTrace (Ljava/lang/Throwable;)[Ljava/lang/StackTraceElement; } public abstract interface class kotlin/Lazy {