Transform Throwable members to properties

This commit is contained in:
Denis Zharkov
2015-10-13 20:30:29 +03:00
committed by Mikhail Glukhikh
parent 9088bf67c7
commit 17c906658d
22 changed files with 63 additions and 51 deletions
+4 -2
View File
@@ -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"
}
@@ -13,7 +13,7 @@ fun box(): String =
"e2"
}
catch (e3: Exception3) {
e3.getMessage()
e3.message
}
catch (e: Exception) {
"e"
+1 -1
View File
@@ -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
}
+1 -1
View File
@@ -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)
}
}
+2 -2
View File
@@ -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")