Make Throwable properties message and cause open.
#KT-5587 Fixed
This commit is contained in:
+4
-4
@@ -674,10 +674,10 @@ public open class Throwable {
|
||||
public constructor Throwable(/*0*/ message: kotlin.String?)
|
||||
/*primary*/ public constructor Throwable(/*0*/ message: kotlin.String?, /*1*/ cause: kotlin.Throwable?)
|
||||
public constructor Throwable(/*0*/ cause: kotlin.Throwable?)
|
||||
public final val cause: kotlin.Throwable?
|
||||
public final fun <get-cause>(): kotlin.Throwable?
|
||||
public final val message: kotlin.String?
|
||||
public final fun <get-message>(): kotlin.String?
|
||||
public open val cause: kotlin.Throwable?
|
||||
public open fun <get-cause>(): kotlin.Throwable?
|
||||
public open val message: kotlin.String?
|
||||
public open fun <get-message>(): kotlin.String?
|
||||
}
|
||||
|
||||
public object Unit {
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
class MyThrowable(message: String? = null, cause: Throwable? = null) : Throwable(message, cause) {
|
||||
|
||||
override val message: String?
|
||||
get() = "My message: " + super.message
|
||||
|
||||
override val cause: Throwable?
|
||||
get() = super.cause ?: this
|
||||
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
try {
|
||||
throw MyThrowable("test")
|
||||
} catch (t: MyThrowable) {
|
||||
if (t.cause != t) return "fail t.cause"
|
||||
if (t.message != "My message: test") return "fail t.message"
|
||||
return "OK"
|
||||
}
|
||||
|
||||
return "fail: MyThrowable wasn't catched."
|
||||
}
|
||||
@@ -2,14 +2,14 @@ package test
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -2,14 +2,14 @@ package test
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -4,8 +4,8 @@ package test
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -2,14 +2,14 @@ package test
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public final class Impl : test.Trait {
|
||||
|
||||
+2
-2
@@ -11,8 +11,8 @@ public final class Derived : test.Base<kotlin.String> {
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -6,14 +6,14 @@ public fun two(): kotlin.Unit
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -2,14 +2,14 @@ package test
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
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 open /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open /*fake_override*/ val message: kotlin.String?
|
||||
}
|
||||
|
||||
public/*package*/ open class JavaClass {
|
||||
|
||||
@@ -5,8 +5,8 @@ public inline fun </*0*/ reified E : java.lang.Exception, /*1*/ R> tryCatch(/*0*
|
||||
|
||||
public final class XException</*0*/ T> : kotlin.Throwable {
|
||||
public constructor XException</*0*/ T>(/*0*/ p: T)
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
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
|
||||
@@ -15,8 +15,8 @@ public final class XException</*0*/ T> : kotlin.Throwable {
|
||||
|
||||
public final class YException</*0*/ T> : java.lang.RuntimeException {
|
||||
public constructor YException</*0*/ T>(/*0*/ p: T)
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
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
|
||||
@@ -25,8 +25,8 @@ public final class YException</*0*/ T> : java.lang.RuntimeException {
|
||||
|
||||
public final class ZException</*0*/ T> : java.lang.Exception {
|
||||
public constructor ZException</*0*/ T>(/*0*/ p: T)
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
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
|
||||
|
||||
@@ -4,8 +4,8 @@ public fun </*0*/ T : kotlin.Any> T.getJavaClass(): java.lang.Class<T>
|
||||
|
||||
public final class IdUnavailableException : java.lang.Exception {
|
||||
public constructor IdUnavailableException()
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
+4
-4
@@ -9,8 +9,8 @@ public fun test6(): kotlin.Unit
|
||||
|
||||
public final class A : java.lang.Exception {
|
||||
public constructor A()
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@@ -18,8 +18,8 @@ public final class A : java.lang.Exception {
|
||||
|
||||
public final class B : java.lang.Exception {
|
||||
public constructor B()
|
||||
public final override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ val message: kotlin.String?
|
||||
public open override /*1*/ /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public open 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 open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
+6
@@ -7492,6 +7492,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("throwableImpl.kt")
|
||||
public void testThrowableImpl() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/specialBuiltins/throwableImpl.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("valuesInsideEnum.kt")
|
||||
public void testValuesInsideEnum() throws Exception {
|
||||
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/specialBuiltins/valuesInsideEnum.kt");
|
||||
|
||||
@@ -22,7 +22,7 @@ package kotlin
|
||||
* @param message the detail message string.
|
||||
* @param cause the cause of this throwable.
|
||||
*/
|
||||
public open class Throwable(val message: String?, val cause: Throwable?) {
|
||||
public open class Throwable(open val message: String?, open val cause: Throwable?) {
|
||||
constructor(message: String?) : this(message, null)
|
||||
|
||||
constructor(cause: Throwable?) : this(cause?.toString(), cause)
|
||||
|
||||
Reference in New Issue
Block a user