Drop Throwable#printStackTrace, make it a JVM-specific extension

This commit is contained in:
Alexander Udalov
2015-12-24 03:53:27 +03:00
parent 3d44471659
commit 75f046fa81
14 changed files with 14 additions and 27 deletions
-1
View File
@@ -1291,7 +1291,6 @@ public open class Throwable {
public final fun <get-cause>(): kotlin.Throwable?
public final val message: kotlin.String?
public final fun <get-message>(): kotlin.String?
public final fun printStackTrace(): kotlin.Unit
}
public object Unit {
+1
View File
@@ -3,6 +3,7 @@ compiler/testData/cli/jvm/wrongAbiVersion.kt:4:5: error: unresolved reference: b
bar()
^
compiler/testData/cli/jvm/wrongAbiVersion.kt:6:7: error: unresolved reference. None of the following candidates is applicable because of receiver type mismatch:
public fun kotlin.Throwable.printStackTrace(): kotlin.Unit defined in kotlin
public fun kotlin.Throwable.printStackTrace(stream: java.io.PrintStream): kotlin.Unit defined in kotlin
public fun kotlin.Throwable.printStackTrace(writer: java.io.PrintWriter): kotlin.Unit defined in kotlin
(note: this may be caused by the fact that some classes compiled with an incompatible version of Kotlin were found in the classpath. Such classes cannot be loaded properly by this version of Kotlin compiler. See below for more information)
+3 -3
View File
@@ -41,10 +41,10 @@ public class SomeClass() {
}
}
public fun box():String {
public fun box(): String {
var obj = SomeClass()
return if(obj.status == null) "OK" else {
obj.status?.printStackTrace()
return if (obj.status == null) "OK" else {
(obj.status as java.lang.Throwable).printStackTrace()
"failed"
}
}
@@ -4,14 +4,12 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class E2 : java.lang.Exception {
public constructor E2()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -4,14 +4,12 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class E2 : java.lang.Exception {
public constructor E2()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -6,7 +6,6 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -4,14 +4,12 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class E2 : java.lang.Exception {
public constructor E2()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class Impl : test.Trait {
@@ -13,7 +13,6 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -8,14 +8,12 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class E2 : java.lang.Exception {
public constructor E2()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -4,14 +4,12 @@ public final class E1 : java.lang.Exception {
public constructor E1()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public final class E2 : java.lang.Exception {
public constructor E2()
public final /*fake_override*/ val cause: kotlin.Throwable?
public final /*fake_override*/ val message: kotlin.String?
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
}
public/*package*/ open class JavaClass {
@@ -10,7 +10,6 @@ public final class XException</*0*/ T> : kotlin.Throwable {
public final val p: T
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -21,7 +20,6 @@ public final class YException</*0*/ T> : java.lang.RuntimeException {
public final val p: T
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -32,6 +30,5 @@ public final class ZException</*0*/ T> : java.lang.Exception {
public final val p: T
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -8,6 +8,5 @@ public final class IdUnavailableException : java.lang.Exception {
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final override /*1*/ /*fake_override*/ fun printStackTrace(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
-5
View File
@@ -23,14 +23,9 @@ package kotlin
* @param cause the cause of this throwable.
*/
public open class Throwable(val message: String?, val cause: Throwable?) {
constructor(message: String?) : this(message, null)
constructor(cause: Throwable?) : this(cause?.toString(), cause)
constructor() : this(null, null)
/**
* Prints the stack trace of this throwable to the standard output.
*/
public fun printStackTrace(): Unit
}
@@ -7,7 +7,15 @@ import java.io.PrintStream
import java.io.PrintWriter
/**
* Allows a stack trace to be printed from Kotlin's [Throwable].
* Prints the stack trace of this throwable to the standard output.
*/
public fun Throwable.printStackTrace(): Unit {
val jlt = this as java.lang.Throwable
jlt.printStackTrace()
}
/**
* Prints the stack trace of this throwable to the specified [writer].
*/
public fun Throwable.printStackTrace(writer: PrintWriter): Unit {
val jlt = this as java.lang.Throwable
@@ -15,7 +23,7 @@ public fun Throwable.printStackTrace(writer: PrintWriter): Unit {
}
/**
* Allows a stack trace to be printed from Kotlin's [Throwable].
* Prints the stack trace of this throwable to the specified [stream].
*/
public fun Throwable.printStackTrace(stream: PrintStream): Unit {
val jlt = this as java.lang.Throwable