提交 17c90665 编写于 作者: D Denis Zharkov 提交者: Mikhail Glukhikh

Transform Throwable members to properties

上级 9088bf67
......@@ -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
}
......
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"
}
......@@ -13,7 +13,7 @@ fun box(): String =
"e2"
}
catch (e3: Exception3) {
e3.getMessage()
e3.message
}
catch (e: Exception) {
"e"
......
......@@ -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
}
......
......@@ -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
}
......
......@@ -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
......
......@@ -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.
*/
......
......@@ -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")
......
......@@ -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)
}
}
......@@ -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!!
}
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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册