blob: 2987225d704438b1b15a4cc43f4897665e1bf6f9 [file] [log] [blame]
== sample ==
fun sample(): String? {
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
}
---------------------
<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>
foo = "test" !<v7>: *
{ foo = "test" } !<v7>: * COPY
"fail" <v9>: {<: String?} NEW: r("fail") -> <v9>
return "fail" !<v13>: *
{ 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>
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>
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
=====================