| == 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 |
| ===================== |