Exception typealiases rendering in test output (CFG)

This commit is contained in:
Ilya Gorbunov
2016-08-12 19:40:42 +03:00
parent 2a0076d9bd
commit 58a010464a
5 changed files with 134 additions and 134 deletions
+26 -26
View File
@@ -22,36 +22,36 @@ fun sample(): String? {
return null
}
---------------------
<v8>: {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v8>
false <v0>: Boolean NEW: r(false) -> <v0>
"fail" <v1>: {<: String?} NEW: r("fail") -> <v1>
<v8>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v8>
false <v0>: Boolean NEW: r(false) -> <v0>
"fail" <v1>: {<: String?} NEW: r("fail") -> <v1>
return "fail" !<v2>: *
{ return "fail" } !<v2>: * COPY
false <v3>: Boolean NEW: r(false) -> <v3>
false <v4>: Boolean NEW: r(false) -> <v4>
null <v5>: {<: String?} NEW: r(null) -> <v5>
"test" <v6>: {<: String?} NEW: r("test") -> <v6>
{ return "fail" } !<v2>: * COPY
false <v3>: Boolean NEW: r(false) -> <v3>
false <v4>: Boolean NEW: r(false) -> <v4>
null <v5>: {<: String?} NEW: r(null) -> <v5>
"test" <v6>: {<: String?} NEW: r("test") -> <v6>
foo = "test" !<v7>: *
{ foo = "test" } !<v7>: * COPY
"fail" <v9>: {<: String?} NEW: r("fail") -> <v9>
{ foo = "test" } !<v7>: * COPY
"fail" <v9>: {<: String?} NEW: r("fail") -> <v9>
return "fail" !<v13>: *
{ return "fail" } !<v13>: * COPY
{ return "fail" } !<v13>: * COPY
println !<v11>: *
foo <v10>: * NEW: r(foo) -> <v10>
println(foo) <v12>: * NEW: magic[UNRESOLVED_CALL](println(foo)|<v10>, !<v11>) -> <v12>
{ println(foo) // Variable 'foo' must be initialized } <v12>: * COPY
try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } <v14>: * NEW: merge(try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized }|!<v7>, !<v13>) -> <v14>
{ var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } <v14>: * COPY
if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } <v15>: * NEW: merge(if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } }|<v14>) -> <v15>
"fail" <v16>: {<: String?} NEW: r("fail") -> <v16>
foo <v10>: * NEW: r(foo) -> <v10>
println(foo) <v12>: * NEW: magic[UNRESOLVED_CALL](println(foo)|<v10>, !<v11>) -> <v12>
{ println(foo) // Variable 'foo' must be initialized } <v12>: * COPY
try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } <v14>: * NEW: merge(try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized }|!<v7>, !<v13>) -> <v14>
{ var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } <v14>: * COPY
if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } <v15>: * NEW: merge(if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } }|<v14>) -> <v15>
"fail" <v16>: {<: String?} NEW: r("fail") -> <v16>
return "fail" !<v17>: *
{ if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } !<v17>: * COPY
if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } <v18>: * NEW: merge(if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" }|!<v17>) -> <v18>
{ if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } <v18>: * COPY
if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } <v19>: * NEW: merge(if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } }|!<v2>, <v18>) -> <v19>
{ if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } <v19>: * COPY
try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {} <v20>: * NEW: merge(try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {}|<v19>) -> <v20>
null <v21>: {<: String?} NEW: r(null) -> <v21>
{ if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } !<v17>: * COPY
if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } <v18>: * NEW: merge(if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" }|!<v17>) -> <v18>
{ if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } <v18>: * COPY
if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } <v19>: * NEW: merge(if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } }|!<v2>, <v18>) -> <v19>
{ if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } <v19>: * COPY
try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {} <v20>: * NEW: merge(try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {}|<v19>) -> <v20>
null <v21>: {<: String?} NEW: r(null) -> <v21>
return null !<v22>: *
{ try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {} return null } !<v22>: * COPY
{ try { if (false) { return "fail" } else { if (false) { if (false) { var foo: String? = null try { foo = "test" } catch (e: Exception) { return "fail" } finally { println(foo) // Variable 'foo' must be initialized } } return "fail" } } } finally {} return null } !<v22>: * COPY
=====================
+10 -10
View File
@@ -13,14 +13,14 @@ fun foo() {
"after"
}
---------------------
<v2>: {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v2>
"before" <v0>: * NEW: r("before") -> <v0>
foo() <v1>: * NEW: call(foo(), foo) -> <v1>
{ foo() } <v1>: * COPY
e <v3>: {<: Exception} NEW: r(e) -> <v3>
{ val a = e } !<v5>: *
1 <v4>: Int NEW: r(1) -> <v4>
try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } <v6>: * NEW: merge(try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 }|<v1>, !<v5>) -> <v6>
"after" <v7>: * NEW: r("after") -> <v7>
{ "before" try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } "after" } <v7>: * COPY
<v2>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v2>
"before" <v0>: * NEW: r("before") -> <v0>
foo() <v1>: * NEW: call(foo(), foo) -> <v1>
{ foo() } <v1>: * COPY
e <v3>: {<: Exception /* = Exception */} NEW: r(e) -> <v3>
{ val a = e } !<v5>: *
1 <v4>: Int NEW: r(1) -> <v4>
try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } <v6>: * NEW: merge(try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 }|<v1>, !<v5>) -> <v6>
"after" <v7>: * NEW: r("after") -> <v7>
{ "before" try { foo() } catch (e: Exception) { val a = e } finally { val a = 1 } "after" } <v7>: * COPY
=====================
+45 -45
View File
@@ -376,18 +376,18 @@ fun t13() : Int {
}
}
---------------------
<v4>: {<: UnsupportedOperationException} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v4>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v3>: *
{ return 1 } !<v3>: * COPY
2 <v5>: Int NEW: r(2) -> <v5>
doSmth(2) <v6>: * NEW: call(doSmth(2), doSmth|<v5>) -> <v6>
{ doSmth(2) } <v6>: * COPY
3 <v1>: Int NEW: r(3) -> <v1>
doSmth(3) <v2>: * NEW: call(doSmth(3), doSmth|<v1>) -> <v2>
{ doSmth(3) } <v2>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } <v7>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) }|!<v3>, <v6>) -> <v7>
{ try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } } <v7>: * COPY
<v4>: {<: UnsupportedOperationException /* = UnsupportedOperationException */} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v4>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v3>: *
{ return 1 } !<v3>: * COPY
2 <v5>: Int NEW: r(2) -> <v5>
doSmth(2) <v6>: * NEW: call(doSmth(2), doSmth|<v5>) -> <v6>
{ doSmth(2) } <v6>: * COPY
3 <v1>: Int NEW: r(3) -> <v1>
doSmth(3) <v2>: * NEW: call(doSmth(3), doSmth|<v1>) -> <v2>
{ doSmth(3) } <v2>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } <v7>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) }|!<v3>, <v6>) -> <v7>
{ try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } finally { doSmth(3) } } <v7>: * COPY
=====================
== t14 ==
fun t14() : Int {
@@ -399,15 +399,15 @@ fun t14() : Int {
}
}
---------------------
<v2>: {<: UnsupportedOperationException} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v2>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v1>: *
{ return 1 } !<v1>: * COPY
2 <v3>: Int NEW: r(2) -> <v3>
doSmth(2) <v4>: * NEW: call(doSmth(2), doSmth|<v3>) -> <v4>
{ doSmth(2) } <v4>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } <v5>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) }|!<v1>, <v4>) -> <v5>
{ try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } } <v5>: * COPY
<v2>: {<: UnsupportedOperationException /* = UnsupportedOperationException */} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v2>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v1>: *
{ return 1 } !<v1>: * COPY
2 <v3>: Int NEW: r(2) -> <v3>
doSmth(2) <v4>: * NEW: call(doSmth(2), doSmth|<v3>) -> <v4>
{ doSmth(2) } <v4>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } <v5>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) }|!<v1>, <v4>) -> <v5>
{ try { return 1 } catch (e: UnsupportedOperationException) { doSmth(2) } } <v5>: * COPY
=====================
== t15 ==
fun t15() : Int {
@@ -422,18 +422,18 @@ fun t15() : Int {
}
}
---------------------
<v4>: {<: UnsupportedOperationException} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v4>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v3>: *
{ return 1 } !<v3>: * COPY
2 <v5>: Int NEW: r(2) -> <v5>
return 2 !<v6>: *
{ return 2 } !<v6>: * COPY
3 <v1>: Int NEW: r(3) -> <v1>
doSmth(3) <v2>: * NEW: call(doSmth(3), doSmth|<v1>) -> <v2>
{ doSmth(3) } <v2>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } <v7>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) }|!<v3>, !<v6>) -> <v7>
{ try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } <v7>: * COPY
<v4>: {<: UnsupportedOperationException /* = UnsupportedOperationException */} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v4>
1 <v0>: Int NEW: r(1) -> <v0>
return 1 !<v3>: *
{ return 1 } !<v3>: * COPY
2 <v5>: Int NEW: r(2) -> <v5>
return 2 !<v6>: *
{ return 2 } !<v6>: * COPY
3 <v1>: Int NEW: r(3) -> <v1>
doSmth(3) <v2>: * NEW: call(doSmth(3), doSmth|<v1>) -> <v2>
{ doSmth(3) } <v2>: * COPY
try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } <v7>: * NEW: merge(try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) }|!<v3>, !<v6>) -> <v7>
{ try { return 1 } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } <v7>: * COPY
=====================
== t16 ==
fun t16() : Int {
@@ -448,18 +448,18 @@ fun t16() : Int {
}
}
---------------------
<v2>: {<: UnsupportedOperationException} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v2>
1 <v0>: Int NEW: r(1) -> <v0>
doSmth(1) <v1>: * NEW: call(doSmth(1), doSmth|<v0>) -> <v1>
{ doSmth(1) } <v1>: * COPY
2 <v3>: Int NEW: r(2) -> <v3>
return 2 !<v6>: *
{ return 2 } !<v6>: * COPY
3 <v4>: Int NEW: r(3) -> <v4>
doSmth(3) <v5>: * NEW: call(doSmth(3), doSmth|<v4>) -> <v5>
{ doSmth(3) } <v5>: * COPY
try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } <v7>: * NEW: merge(try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) }|<v1>, !<v6>) -> <v7>
{ try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } <v7>: * COPY
<v2>: {<: UnsupportedOperationException /* = UnsupportedOperationException */} NEW: magic[FAKE_INITIALIZER](e: UnsupportedOperationException) -> <v2>
1 <v0>: Int NEW: r(1) -> <v0>
doSmth(1) <v1>: * NEW: call(doSmth(1), doSmth|<v0>) -> <v1>
{ doSmth(1) } <v1>: * COPY
2 <v3>: Int NEW: r(2) -> <v3>
return 2 !<v6>: *
{ return 2 } !<v6>: * COPY
3 <v4>: Int NEW: r(3) -> <v4>
doSmth(3) <v5>: * NEW: call(doSmth(3), doSmth|<v4>) -> <v5>
{ doSmth(3) } <v5>: * COPY
try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } <v7>: * NEW: merge(try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) }|<v1>, !<v6>) -> <v7>
{ try { doSmth(1) } catch (e: UnsupportedOperationException) { return 2 } finally { doSmth(3) } } <v7>: * COPY
=====================
== doSmth ==
fun doSmth(i: Int) {
@@ -30,19 +30,19 @@ fun testCopy1() : Int {
}
}
---------------------
<v1>: {<: NullPointerException} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v1>
<v3>: {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v3>
doSmth() <v0>: * NEW: call(doSmth(), doSmth) -> <v0>
{ doSmth() } <v0>: * COPY
doSmth1() <v2>: * NEW: call(doSmth1(), doSmth1) -> <v2>
{ doSmth1() } <v2>: * COPY
doSmth2() <v4>: * NEW: call(doSmth2(), doSmth2) -> <v4>
{ doSmth2() } <v4>: * COPY
1 <v5>: Int NEW: r(1) -> <v5>
return 1 !<v6>: *
{ return 1 } !<v6>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 } <v7>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 }|<v0>, <v2>, <v4>) -> <v7>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 } } <v7>: * COPY
<v1>: {<: NullPointerException /* = NullPointerException */} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v1>
<v3>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v3>
doSmth() <v0>: * NEW: call(doSmth(), doSmth) -> <v0>
{ doSmth() } <v0>: * COPY
doSmth1() <v2>: * NEW: call(doSmth1(), doSmth1) -> <v2>
{ doSmth1() } <v2>: * COPY
doSmth2() <v4>: * NEW: call(doSmth2(), doSmth2) -> <v4>
{ doSmth2() } <v4>: * COPY
1 <v5>: Int NEW: r(1) -> <v5>
return 1 !<v6>: *
{ return 1 } !<v6>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 } <v7>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 }|<v0>, <v2>, <v4>) -> <v7>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { return 1 } } <v7>: * COPY
=====================
== testCopy2 ==
fun testCopy2() {
@@ -63,24 +63,24 @@ fun testCopy2() {
}
}
---------------------
<v2>: {<: NullPointerException} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v2>
<v4>: {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v4>
cond() <v0>: Boolean NEW: call(cond(), cond) -> <v0>
doSmth() <v1>: * NEW: call(doSmth(), doSmth) -> <v1>
{ doSmth() } <v1>: * COPY
doSmth1() <v3>: * NEW: call(doSmth1(), doSmth1) -> <v3>
{ doSmth1() } <v3>: * COPY
doSmth2() <v5>: * NEW: call(doSmth2(), doSmth2) -> <v5>
{ doSmth2() } <v5>: * COPY
cond() <v6>: Boolean NEW: call(cond(), cond) -> <v6>
return !<v7>: *
continue !<v8>: *
if (cond()) return else continue <v9>: * NEW: merge(if (cond()) return else continue|!<v7>, !<v8>) -> <v9>
{ if (cond()) return else continue } <v9>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } <v10>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue }|<v1>, <v3>, <v5>) -> <v10>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } <v10>: * COPY
while (cond()) { try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } !<v11>: *
{ while (cond()) { try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } } !<v11>: * COPY
<v2>: {<: NullPointerException /* = NullPointerException */} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v2>
<v4>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v4>
cond() <v0>: Boolean NEW: call(cond(), cond) -> <v0>
doSmth() <v1>: * NEW: call(doSmth(), doSmth) -> <v1>
{ doSmth() } <v1>: * COPY
doSmth1() <v3>: * NEW: call(doSmth1(), doSmth1) -> <v3>
{ doSmth1() } <v3>: * COPY
doSmth2() <v5>: * NEW: call(doSmth2(), doSmth2) -> <v5>
{ doSmth2() } <v5>: * COPY
cond() <v6>: Boolean NEW: call(cond(), cond) -> <v6>
return !<v7>: *
continue !<v8>: *
if (cond()) return else continue <v9>: * NEW: merge(if (cond()) return else continue|!<v7>, !<v8>) -> <v9>
{ if (cond()) return else continue } <v9>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } <v10>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue }|<v1>, <v3>, <v5>) -> <v10>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } <v10>: * COPY
while (cond()) { try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } !<v11>: *
{ while (cond()) { try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { if (cond()) return else continue } } } !<v11>: * COPY
=====================
== testCopy3 ==
fun testCopy3() {
@@ -98,19 +98,19 @@ fun testCopy3() {
}
}
---------------------
<v1>: {<: NullPointerException} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v1>
<v3>: {<: Exception} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v3>
doSmth() <v0>: * NEW: call(doSmth(), doSmth) -> <v0>
{ doSmth() } <v0>: * COPY
doSmth1() <v2>: * NEW: call(doSmth1(), doSmth1) -> <v2>
{ doSmth1() } <v2>: * COPY
doSmth2() <v4>: * NEW: call(doSmth2(), doSmth2) -> <v4>
{ doSmth2() } <v4>: * COPY
cond() <v5>: Boolean NEW: call(cond(), cond) -> <v5>
while (cond()) !<v6>: *
{ while (cond()); } !<v6>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); } <v7>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); }|<v0>, <v2>, <v4>) -> <v7>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); } } <v7>: * COPY
<v1>: {<: NullPointerException /* = NullPointerException */} NEW: magic[FAKE_INITIALIZER](e: NullPointerException) -> <v1>
<v3>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](e: Exception) -> <v3>
doSmth() <v0>: * NEW: call(doSmth(), doSmth) -> <v0>
{ doSmth() } <v0>: * COPY
doSmth1() <v2>: * NEW: call(doSmth1(), doSmth1) -> <v2>
{ doSmth1() } <v2>: * COPY
doSmth2() <v4>: * NEW: call(doSmth2(), doSmth2) -> <v4>
{ doSmth2() } <v4>: * COPY
cond() <v5>: Boolean NEW: call(cond(), cond) -> <v5>
while (cond()) !<v6>: *
{ while (cond()); } !<v6>: * COPY
try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); } <v7>: * NEW: merge(try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); }|<v0>, <v2>, <v4>) -> <v7>
{ try { doSmth() } catch (e: NullPointerException) { doSmth1() } catch (e: Exception) { doSmth2() } finally { while (cond()); } } <v7>: * COPY
=====================
== doTestCopy4 ==
fun doTestCopy4(list: List<String>?) : Int {
+9 -9
View File
@@ -9,13 +9,13 @@ fun test() : Unit {
}
}
---------------------
<v1>: {<: Exception} NEW: magic[FAKE_INITIALIZER](any : Exception) -> <v1>
test() <v0>: * NEW: call(test(), test) -> <v0>
{ test() } <v0>: * COPY
test() <v2>: * NEW: call(test(), test) -> <v2>
{ test() } <v2>: * COPY
test() <v3>: * NEW: call(test(), test) -> <v3>
{ test() } <v3>: * COPY
try { test() } catch (any : Exception) { test() } finally { test() } <v4>: * NEW: merge(try { test() } catch (any : Exception) { test() } finally { test() }|<v0>, <v2>) -> <v4>
{ try { test() } catch (any : Exception) { test() } finally { test() } } <v4>: * COPY
<v1>: {<: Exception /* = Exception */} NEW: magic[FAKE_INITIALIZER](any : Exception) -> <v1>
test() <v0>: * NEW: call(test(), test) -> <v0>
{ test() } <v0>: * COPY
test() <v2>: * NEW: call(test(), test) -> <v2>
{ test() } <v2>: * COPY
test() <v3>: * NEW: call(test(), test) -> <v3>
{ test() } <v3>: * COPY
try { test() } catch (any : Exception) { test() } finally { test() } <v4>: * NEW: merge(try { test() } catch (any : Exception) { test() } finally { test() }|<v0>, <v2>) -> <v4>
{ try { test() } catch (any : Exception) { test() } finally { test() } } <v4>: * COPY
=====================