Transform Throwable members to properties
This commit is contained in:
committed by
Mikhail Glukhikh
parent
9088bf67c7
commit
17c906658d
+4
-2
@@ -1274,8 +1274,10 @@ public final class String : kotlin.Comparable<kotlin.String>, kotlin.CharSequenc
|
||||
|
||||
public open class Throwable {
|
||||
/*primary*/ public constructor Throwable(/*0*/ message: kotlin.String? = ..., /*1*/ cause: kotlin.Throwable? = ...)
|
||||
public final fun getCause(): kotlin.Throwable?
|
||||
public final fun getMessage(): kotlin.String?
|
||||
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 final fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
fun box(): String {
|
||||
try {
|
||||
throw Throwable("OK", null)
|
||||
} catch (t: Throwable) {
|
||||
if (t.cause != null) return "fail 1"
|
||||
return t.message!!
|
||||
}
|
||||
|
||||
return "fail 2"
|
||||
}
|
||||
@@ -3,5 +3,5 @@ class GameError(msg: String): Exception(msg) {
|
||||
|
||||
fun box(): String {
|
||||
val e = GameError("foo")
|
||||
return if (e.getMessage() == "foo") "OK" else "fail"
|
||||
return if (e.message == "foo") "OK" else "fail"
|
||||
}
|
||||
|
||||
Vendored
+1
-1
@@ -13,7 +13,7 @@ fun box(): String =
|
||||
"e2"
|
||||
}
|
||||
catch (e3: Exception3) {
|
||||
e3.getMessage()
|
||||
e3.message
|
||||
}
|
||||
catch (e: Exception) {
|
||||
"e"
|
||||
|
||||
+1
-1
@@ -4,6 +4,6 @@ fun foo(s: String): String? {
|
||||
return "no message";
|
||||
}
|
||||
catch(e: NumberFormatException) {
|
||||
return e.getMessage(); // Work around an overload-resolution bug
|
||||
return e.message // Work around an overload-resolution bug
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,15 +2,15 @@ package test
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ package test
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ package test
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ package test
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
+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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -6,15 +6,15 @@ public fun two(): kotlin.Unit
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
@@ -2,15 +2,15 @@ package test
|
||||
|
||||
public final class E1 : java.lang.Exception {
|
||||
public constructor E1()
|
||||
public final /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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*/ fun getCause(): kotlin.Throwable?
|
||||
public final /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
public final /*fake_override*/ val cause: kotlin.Throwable?
|
||||
public final /*fake_override*/ val message: kotlin.String?
|
||||
public final /*fake_override*/ fun printStackTrace(): kotlin.Unit
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -36,7 +36,7 @@ fun test(<!UNUSED_PARAMETER!>l<!> : <!PLATFORM_CLASS_MAPPED_TO_KOTLIN!>java.util
|
||||
// ...
|
||||
}
|
||||
catch(e: Exception) {
|
||||
System.out.println(e.getMessage())
|
||||
System.out.println(e.message)
|
||||
}
|
||||
|
||||
PrintStream("sdf")
|
||||
|
||||
@@ -60,6 +60,6 @@ fun main(args: Array<String>) {
|
||||
System.out.println("You won!");
|
||||
}
|
||||
catch(e: Throwable) {
|
||||
System.out.println(e.getMessage())
|
||||
System.out.println(e.message)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,9 +4,9 @@ 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*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final override /*1*/ /*fake_override*/ fun getCause(): kotlin.Throwable?
|
||||
public final override /*1*/ /*fake_override*/ fun getMessage(): kotlin.String?
|
||||
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
|
||||
|
||||
+6
@@ -921,6 +921,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/builtinsProperties/maps.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
|
||||
@TestMetadata("throwable.kt")
|
||||
public void testThrowable() throws Exception {
|
||||
String fileName = JetTestUtils.navigationMetadata("compiler/testData/codegen/box/builtinsProperties/throwable.kt");
|
||||
doTest(fileName);
|
||||
}
|
||||
}
|
||||
|
||||
@TestMetadata("compiler/testData/codegen/box/casts")
|
||||
|
||||
@@ -22,17 +22,7 @@ package kotlin
|
||||
* @param message the detail message string.
|
||||
* @param cause the cause of this throwable.
|
||||
*/
|
||||
public open class Throwable(message: String? = null, cause: Throwable? = null) {
|
||||
/**
|
||||
* Returns the detail message of this throwable.
|
||||
*/
|
||||
public fun getMessage(): String?
|
||||
|
||||
/**
|
||||
* Returns the cause of this throwable.
|
||||
*/
|
||||
public fun getCause(): Throwable?
|
||||
|
||||
public open class Throwable(val message: String? = null, val cause: Throwable? = null) {
|
||||
/**
|
||||
* Prints the stack trace of this throwable to the standard output.
|
||||
*/
|
||||
|
||||
+1
-1
@@ -35,7 +35,7 @@ fun test(<warning>l</warning> : List<Int>) {
|
||||
// ...
|
||||
}
|
||||
catch(e: Exception) {
|
||||
System.out.println(e.getMessage())
|
||||
System.out.println(e.message)
|
||||
}
|
||||
|
||||
PrintStream("sdf")
|
||||
|
||||
+1
-1
@@ -60,6 +60,6 @@ fun main(args: Array<String>) {
|
||||
System.out.println("You won!");
|
||||
}
|
||||
catch(e: Throwable) {
|
||||
System.out.println(e.getMessage())
|
||||
System.out.println(e.message)
|
||||
}
|
||||
}
|
||||
|
||||
+1
-3
@@ -2,8 +2,6 @@
|
||||
|
||||
package foo
|
||||
|
||||
@native val Exception.message: String get() = noImpl
|
||||
|
||||
public fun <T : Throwable> failsWith(block: () -> Any): T {
|
||||
try {
|
||||
block()
|
||||
@@ -20,5 +18,5 @@ fun box(): String {
|
||||
throw Exception("OK")
|
||||
}
|
||||
|
||||
return a.message
|
||||
return a.message!!
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package foo
|
||||
|
||||
class Fail(val message: String) : Exception(message)
|
||||
class Fail(message: String) : Exception(message)
|
||||
|
||||
fun test(testName: String, actual: Any, expectedAsString: String) {
|
||||
val expected = eval("[$expectedAsString]")
|
||||
@@ -20,7 +20,7 @@ fun box(): String {
|
||||
test("doubleArrayOf", doubleArrayOf(0.0, 1.1, 2.2, 3.3, 4.4), "0.0, 1.1, 2.2, 3.3, 4.4")
|
||||
}
|
||||
catch (e: Fail) {
|
||||
return e.message
|
||||
return e.message!!
|
||||
}
|
||||
|
||||
return "OK"
|
||||
|
||||
@@ -78,3 +78,9 @@ public inline fun <K, V> Map<K, V>.values(): Collection<V> = values
|
||||
@kotlin.jvm.JvmName("mutableValues")
|
||||
@Deprecated("Use property 'values' instead", ReplaceWith("this.values"))
|
||||
public inline fun <K, V> MutableMap<K, V>.values(): MutableCollection<V> = values
|
||||
|
||||
@Deprecated("Use property 'message' instead", ReplaceWith("this.message"))
|
||||
public inline fun Throwable.getMessage(): String? = message
|
||||
|
||||
@Deprecated("Use property 'cause' instead", ReplaceWith("this.cause"))
|
||||
public inline fun Throwable.getCause(): Throwable? = cause
|
||||
|
||||
Reference in New Issue
Block a user