Created
February 6, 2022 20:00
-
-
Save folkertdev/1f9d539ffc3528ca4325b83c576a9add to your computer and use it in GitHub Desktop.
Roc+Morphic join point problem
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program { | |
mod "UserApp" { | |
type "jY\xe2\xcd\xd2\xfd/t" = type_10 where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_2 = (type_0, type_1); | |
type type_3 = (); | |
type type_4 = (type_3); | |
type type_5 = heap_cell; | |
type type_6 = (type_5); | |
type type_7 = (type_6); | |
type type_8 = union { type_2, type_4, type_7 }; | |
type type_9 = heap_cell; | |
type type_10 = (type_9, type_8); | |
} | |
const "\x03\x00\x00\x00\x0f\x00\x00\x00": type_1 = { | |
let val_0 = new_heap_cell (); | |
let val_1 = make_tuple (val_0); | |
val_1 | |
} where { | |
type type_0 = heap_cell; | |
type type_1 = (type_0); | |
} | |
const "THIS IS A STATIC LIST": type_4 = { | |
let val_0 = new_heap_cell (); | |
let val_1 = empty_bag<type_0> (); | |
let val_2 = make_tuple (val_0, val_1); | |
val_2 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = heap_cell; | |
type type_3 = bag<type_1>; | |
type type_4 = (type_2, type_3); | |
} | |
fn "\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_3) -> type_4 { | |
let val_1 = get_tuple_field 0 (val_0); | |
let val_2 = get_tuple_field 1 (val_0); | |
let val_6 = { | |
let val_5 = choice { | |
case { | |
let val_3 = make_tuple (); | |
val_3 | |
}, | |
case { | |
let val_4 = terminate<type_0> (); | |
val_4 | |
}, | |
} (); | |
val_5 | |
} (); | |
val_6 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = (); | |
type type_3 = (type_1, type_2); | |
type type_4 = (); | |
} | |
fn "\x08\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.main`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_8) -> type_10 { | |
let val_1 = make_tuple (); | |
let val_2 = make_tuple (val_1); | |
let val_3 = make_union<type_2, type_4, type_7> 1 (val_2); | |
let val_4 = new_heap_cell (); | |
let val_5 = make_tuple (val_4, val_3); | |
let val_6 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_5); | |
let val_7 = recursive_touch (val_6); | |
let val_8 = make_tuple (val_6, val_6); | |
let val_9 = call["\x02\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_8); | |
let val_10 = make_tuple (val_6, val_9); | |
let val_11 = call["\x01\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_10); | |
let val_12 = const_ref "UserApp"::"\x03\x00\x00\x00\x0f\x00\x00\x00" (); | |
val_12 | |
} where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_2 = (type_0, type_1); | |
type type_3 = (); | |
type type_4 = (type_3); | |
type type_5 = heap_cell; | |
type type_6 = (type_5); | |
type type_7 = (type_6); | |
type type_8 = (); | |
type type_9 = heap_cell; | |
type type_10 = (type_9); | |
} | |
fn "\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_39) -> type_40 { | |
let val_1 = get_tuple_field 0 (val_0); | |
let val_2 = get_tuple_field 1 (val_0); | |
continuation cont_0 (val_3: type_3) -> type_2 { | |
let val_7 = get_tuple_field 0 (val_3); | |
let val_8 = get_tuple_field 1 (val_3); | |
let val_9 = make_tuple (val_7, val_8); | |
continuation cont_1 (val_10: type_6) -> type_5 { | |
let val_129 = get_tuple_field 0 (val_9); | |
let val_130 = recursive_touch (val_129); | |
let val_131 = get_tuple_field 1 (val_9); | |
let val_132 = recursive_touch (val_131); | |
let val_133 = recursive_touch (val_9); | |
let val_134 = make_tuple (val_129, val_131); | |
let val_135 = make_union<type_31, type_33, type_36> 0 (val_134); | |
let val_136 = new_heap_cell (); | |
let val_137 = make_tuple (val_136, val_135); | |
let val_138 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_137); | |
val_138 | |
} | |
let val_139 = { | |
let val_12 = get_tuple_field 0 (val_9); | |
let val_13 = recursive_touch (val_12); | |
let val_14 = make_tuple (); | |
let val_15 = make_tuple (); | |
let val_16 = recursive_touch (val_12); | |
let val_17 = make_tuple (); | |
let val_128 = choice { | |
case { | |
let val_18 = get_tuple_field 1 (val_9); | |
let val_19 = recursive_touch (val_18); | |
let val_20 = make_tuple (); | |
let val_125 = choice { | |
case { | |
let val_21 = get_tuple_field 0 (val_9); | |
let val_22 = recursive_touch (val_21); | |
let val_23 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_21); | |
let val_24 = get_tuple_field 0 (val_23); | |
let val_25 = get_tuple_field 1 (val_23); | |
let val_26 = touch (val_24); | |
let val_27 = unwrap_union 1 (val_25); | |
let val_28 = get_tuple_field 0 (val_27); | |
let val_29 = recursive_touch (val_21); | |
let val_30 = get_tuple_field 1 (val_9); | |
let val_31 = recursive_touch (val_30); | |
let val_32 = recursive_touch (val_9); | |
let val_33 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_30); | |
let val_34 = get_tuple_field 0 (val_33); | |
let val_35 = get_tuple_field 1 (val_33); | |
let val_36 = touch (val_34); | |
let val_37 = unwrap_union 1 (val_35); | |
let val_38 = get_tuple_field 0 (val_37); | |
let val_39 = recursive_touch (val_30); | |
let val_40 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_18); | |
let val_41 = get_tuple_field 0 (val_40); | |
let val_42 = get_tuple_field 1 (val_40); | |
let val_43 = touch (val_41); | |
let val_44 = update_write_only["\x03\x00\x00\x00"] (val_41); | |
let val_45 = new_heap_cell (); | |
let val_46 = make_tuple (val_45, val_42); | |
let val_47 = make_tuple (val_28, val_38); | |
let val_48 = call["\x03\x00\x00\x00"] "UserApp"::"\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_47); | |
let val_49 = make_tuple (val_48); | |
let val_50 = make_union<type_10, type_12, type_15> 1 (val_49); | |
let val_51 = new_heap_cell (); | |
let val_52 = make_tuple (val_51, val_50); | |
let val_53 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_52); | |
val_53 | |
}, | |
case { | |
let val_54 = get_tuple_field 1 (val_9); | |
let val_55 = recursive_touch (val_54); | |
let val_56 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_54); | |
let val_57 = get_tuple_field 0 (val_56); | |
let val_58 = get_tuple_field 1 (val_56); | |
let val_59 = touch (val_57); | |
let val_60 = unwrap_union 0 (val_58); | |
let val_61 = get_tuple_field 0 (val_60); | |
let val_62 = recursive_touch (val_61); | |
let val_63 = recursive_touch (val_54); | |
let val_64 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_18); | |
let val_65 = get_tuple_field 0 (val_64); | |
let val_66 = get_tuple_field 1 (val_64); | |
let val_67 = touch (val_65); | |
let val_68 = update_write_only["\x04\x00\x00\x00"] (val_65); | |
let val_69 = new_heap_cell (); | |
let val_70 = make_tuple (val_69, val_66); | |
let val_71 = make_tuple (); | |
let val_72 = make_tuple (); | |
let val_73 = recursive_touch (val_61); | |
let val_74 = make_tuple (); | |
let val_121 = choice { | |
case { | |
let val_75 = get_tuple_field 0 (val_9); | |
let val_76 = recursive_touch (val_75); | |
let val_77 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_75); | |
let val_78 = get_tuple_field 0 (val_77); | |
let val_79 = get_tuple_field 1 (val_77); | |
let val_80 = touch (val_78); | |
let val_81 = unwrap_union 1 (val_79); | |
let val_82 = get_tuple_field 0 (val_81); | |
let val_83 = recursive_touch (val_75); | |
let val_84 = get_tuple_field 1 (val_9); | |
let val_85 = recursive_touch (val_84); | |
let val_86 = recursive_touch (val_9); | |
let val_87 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_84); | |
let val_88 = get_tuple_field 0 (val_87); | |
let val_89 = get_tuple_field 1 (val_87); | |
let val_90 = touch (val_88); | |
let val_91 = unwrap_union 0 (val_89); | |
let val_92 = get_tuple_field 0 (val_91); | |
let val_93 = recursive_touch (val_92); | |
let val_94 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_92); | |
let val_95 = get_tuple_field 0 (val_94); | |
let val_96 = get_tuple_field 1 (val_94); | |
let val_97 = touch (val_95); | |
let val_98 = unwrap_union 1 (val_96); | |
let val_99 = get_tuple_field 0 (val_98); | |
let val_100 = recursive_touch (val_92); | |
let val_101 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_84); | |
let val_102 = get_tuple_field 0 (val_101); | |
let val_103 = get_tuple_field 1 (val_101); | |
let val_104 = touch (val_102); | |
let val_105 = unwrap_union 0 (val_103); | |
let val_106 = get_tuple_field 1 (val_105); | |
let val_107 = recursive_touch (val_106); | |
let val_108 = recursive_touch (val_84); | |
let val_109 = make_tuple (val_82, val_99); | |
let val_110 = call["\x05\x00\x00\x00"] "UserApp"::"\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_109); | |
let val_111 = make_tuple (val_110); | |
let val_112 = make_union<type_19, type_21, type_24> 1 (val_111); | |
let val_113 = new_heap_cell (); | |
let val_114 = make_tuple (val_113, val_112); | |
let val_115 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_114); | |
let val_116 = make_tuple (val_115, val_106); | |
let val_117 = jump<type_25> cont_0 (val_116); | |
val_117 | |
}, | |
case { | |
let val_118 = recursive_touch (val_70); | |
let val_119 = make_tuple (); | |
let val_120 = jump<type_26> cont_1 (val_119); | |
val_120 | |
}, | |
} (); | |
val_121 | |
}, | |
case { | |
let val_122 = recursive_touch (val_18); | |
let val_123 = make_tuple (); | |
let val_124 = jump<type_27> cont_1 (val_123); | |
val_124 | |
}, | |
} (); | |
val_125 | |
}, | |
case { | |
let val_126 = make_tuple (); | |
let val_127 = jump<type_28> cont_1 (val_126); | |
val_127 | |
}, | |
} (); | |
val_128 | |
} (); | |
val_139 | |
} | |
let val_140 = { | |
let val_5 = make_tuple (val_1, val_2); | |
let val_6 = jump<type_4> cont_0 (val_5); | |
val_6 | |
} (); | |
val_140 | |
} where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_2 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_3 = (type_0, type_1); | |
type type_4 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_5 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_6 = (); | |
type type_7 = (); | |
type type_8 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_9 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_10 = (type_8, type_9); | |
type type_11 = (); | |
type type_12 = (type_11); | |
type type_13 = heap_cell; | |
type type_14 = (type_13); | |
type type_15 = (type_14); | |
type type_16 = (); | |
type type_17 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_18 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_19 = (type_17, type_18); | |
type type_20 = (); | |
type type_21 = (type_20); | |
type type_22 = heap_cell; | |
type type_23 = (type_22); | |
type type_24 = (type_23); | |
type type_25 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_26 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_27 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_28 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_29 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_30 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_31 = (type_29, type_30); | |
type type_32 = (); | |
type type_33 = (type_32); | |
type type_34 = heap_cell; | |
type type_35 = (type_34); | |
type type_36 = (type_35); | |
type type_37 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_38 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_39 = (type_37, type_38); | |
type type_40 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
} | |
fn "\t\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`pf..mainForHost`\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_0) -> type_2 { | |
let val_1 = make_tuple (); | |
let val_2 = call["\x01\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.main`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_1); | |
val_2 | |
} where { | |
type type_0 = (); | |
type type_1 = heap_cell; | |
type type_2 = (type_1); | |
} | |
fn "mainForHost" (val_0: type_3) -> type_3 { | |
let val_6 = choice { | |
case { | |
let val_1 = make_tuple (); | |
let val_2 = make_union<type_1, type_0> 0 (val_1); | |
let val_3 = unwrap_union 1 (val_2); | |
let val_4 = call["\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"] "UserApp"::"\t\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`pf..mainForHost`\x00\x00\x00\x00\x00\x00\x00\x00" (val_3); | |
let val_5 = unknown_with<type_2> (val_4); | |
val_5 | |
}, | |
} (); | |
val_6 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = (); | |
type type_3 = (); | |
} | |
} | |
entry_point "mainForHost" = "UserApp"::"mainForHost"; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
procedure : `pf..mainForHost` Str | |
procedure = `pf..mainForHost` (): | |
let `pf..0` : Builtin(Str) = CallByName `#UserApp.main`; | |
ret `pf..0`; | |
procedure : `#UserApp.main` Str | |
procedure = `#UserApp.main` (): | |
let `#UserApp.7` : Builtin(Int(I64)) = 5i64; | |
let `#UserApp.x` : _ = Val `#UserApp.7`; | |
inc 2 `#UserApp.x`; | |
let `#UserApp.6` : _ = CallByName `#UserApp.add` `#UserApp.x` `#UserApp.x`; | |
let `#UserApp.f` : _ = CallByName `#UserApp.add` `#UserApp.x` `#UserApp.6`; | |
let `#UserApp.5` : Builtin(Str) = "Hello World"; | |
ret `#UserApp.5`; | |
procedure : `Num.add` I64 | |
procedure = `Num.add` (`#Attr.#arg1`, `#Attr.#arg2`): | |
let `#UserApp.12` : Builtin(Int(I64)) = lowlevel NumAdd `#Attr.#arg1` `#Attr.#arg2`; | |
ret `#UserApp.12`; | |
procedure : `#UserApp.add` TODO | |
procedure = `#UserApp.add` (`#UserApp.34`, `#UserApp.35`): | |
joinpoint `#UserApp.8` `#UserApp.a` `#UserApp.b`: | |
let `#UserApp.9` : Struct([_, _]) = Struct {`#UserApp.a`, `#UserApp.b`}; | |
joinpoint `#UserApp.22`: | |
let `#UserApp.f` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.f`; | |
let `#UserApp.g` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.g`; | |
dec `#UserApp.9`; | |
let `#UserApp.16` : _ = Add `#UserApp.f` `#UserApp.g`; | |
ret `#UserApp.16`; | |
in | |
let `#UserApp.30` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.30`; | |
let `#UserApp.31` : Builtin(Int(U8)) = 1i64; | |
let `#UserApp.32` : Builtin(Int(U8)) = GetTagId `#UserApp.30`; | |
dec `#UserApp.30`; | |
let `#UserApp.33` : Builtin(Bool) = lowlevel Eq `#UserApp.31` `#UserApp.32`; | |
if `#UserApp.33` then <no branch info> | |
let `#UserApp.23` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.23`; | |
let `#UserApp.29` : Builtin(Int(U8)) = GetTagId `#UserApp.23`; | |
switch `#UserApp.29`: | |
case 1: | |
let `#UserApp.18` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.18`; | |
let `#UserApp.n` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.18`; | |
dec `#UserApp.18`; | |
let `#UserApp.17` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.17`; | |
dec `#UserApp.9`; | |
let `#UserApp.m` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.17`; | |
dec `#UserApp.17`; | |
let `#UserApp.IdentId(54)` : _ = Reset { symbol: `#UserApp.23`, id: 3 }; | |
let `#UserApp.11` : Builtin(Int(I64)) = CallByName `Num.add` `#UserApp.n` `#UserApp.m`; | |
let `#UserApp.10` : _ = Reuse `#UserApp.IdentId(54)` UpdateModeId { id: 3 } Val `#UserApp.11`; | |
ret `#UserApp.10`; | |
case 0: | |
let `#UserApp.24` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.24`; | |
let `#UserApp.25` : _ = UnionAtIndex (Id 0) (Index 0) `#UserApp.24`; | |
inc `#UserApp.25`; | |
dec `#UserApp.24`; | |
let `#UserApp.IdentId(55)` : _ = Reset { symbol: `#UserApp.23`, id: 4 }; | |
let `#UserApp.26` : Builtin(Int(U8)) = 1i64; | |
let `#UserApp.27` : Builtin(Int(U8)) = GetTagId `#UserApp.25`; | |
dec `#UserApp.25`; | |
let `#UserApp.28` : Builtin(Bool) = lowlevel Eq `#UserApp.26` `#UserApp.27`; | |
if `#UserApp.28` then <no branch info> | |
let `#UserApp.21` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.21`; | |
let `#UserApp.n` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.21`; | |
dec `#UserApp.21`; | |
let `#UserApp.19` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.19`; | |
dec `#UserApp.9`; | |
let `#UserApp.20` : _ = UnionAtIndex (Id 0) (Index 0) `#UserApp.19`; | |
inc `#UserApp.20`; | |
let `#UserApp.m` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.20`; | |
dec `#UserApp.20`; | |
let `#UserApp.f` : _ = UnionAtIndex (Id 0) (Index 1) `#UserApp.19`; | |
inc `#UserApp.f`; | |
dec `#UserApp.19`; | |
let `#UserApp.15` : Builtin(Int(I64)) = CallByName `Num.add` `#UserApp.n` `#UserApp.m`; | |
let `#UserApp.14` : _ = Reuse `#UserApp.IdentId(55)` UpdateModeId { id: 4 } Val `#UserApp.15`; | |
jump `#UserApp.8` `#UserApp.14` `#UserApp.f`; | |
else <no branch info> | |
decref `#UserApp.IdentId(55)`; | |
jump `#UserApp.22`; | |
default: | |
dec `#UserApp.23`; | |
jump `#UserApp.22`; | |
else <no branch info> | |
jump `#UserApp.22`; | |
in | |
jump `#UserApp.8` `#UserApp.34` `#UserApp.35`; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
program { | |
mod "UserApp" { | |
type "jY\xe2\xcd\xd2\xfd/t" = type_10 where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_2 = (type_0, type_1); | |
type type_3 = (); | |
type type_4 = (type_3); | |
type type_5 = heap_cell; | |
type type_6 = (type_5); | |
type type_7 = (type_6); | |
type type_8 = union { type_2, type_4, type_7 }; | |
type type_9 = heap_cell; | |
type type_10 = (type_9, type_8); | |
} | |
const "\x03\x00\x00\x00\x0f\x00\x00\x00": type_1 = { | |
let val_0 = new_heap_cell (); | |
let val_1 = make_tuple (val_0); | |
val_1 | |
} where { | |
type type_0 = heap_cell; | |
type type_1 = (type_0); | |
} | |
const "THIS IS A STATIC LIST": type_4 = { | |
let val_0 = new_heap_cell (); | |
let val_1 = empty_bag<type_0> (); | |
let val_2 = make_tuple (val_0, val_1); | |
val_2 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = heap_cell; | |
type type_3 = bag<type_1>; | |
type type_4 = (type_2, type_3); | |
} | |
fn "\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_3) -> type_4 { | |
let val_1 = get_tuple_field 0 (val_0); | |
let val_2 = get_tuple_field 1 (val_0); | |
let val_6 = { | |
let val_5 = choice { | |
case { | |
let val_3 = make_tuple (); | |
val_3 | |
}, | |
case { | |
let val_4 = terminate<type_0> (); | |
val_4 | |
}, | |
} (); | |
val_5 | |
} (); | |
val_6 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = (); | |
type type_3 = (type_1, type_2); | |
type type_4 = (); | |
} | |
fn "\x08\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.main`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_8) -> type_10 { | |
let val_1 = make_tuple (); | |
let val_2 = make_tuple (val_1); | |
let val_3 = make_union<type_2, type_4, type_7> 1 (val_2); | |
let val_4 = new_heap_cell (); | |
let val_5 = make_tuple (val_4, val_3); | |
let val_6 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_5); | |
let val_7 = recursive_touch (val_6); | |
let val_8 = make_tuple (val_6, val_6); | |
let val_9 = call["\x02\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_8); | |
let val_10 = make_tuple (val_6, val_9); | |
let val_11 = call["\x01\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_10); | |
let val_12 = const_ref "UserApp"::"\x03\x00\x00\x00\x0f\x00\x00\x00" (); | |
val_12 | |
} where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_2 = (type_0, type_1); | |
type type_3 = (); | |
type type_4 = (type_3); | |
type type_5 = heap_cell; | |
type type_6 = (type_5); | |
type type_7 = (type_6); | |
type type_8 = (); | |
type type_9 = heap_cell; | |
type type_10 = (type_9); | |
} | |
fn "\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_33) -> type_34 { | |
let val_1 = get_tuple_field 0 (val_0); | |
let val_2 = get_tuple_field 1 (val_0); | |
let val_3 = make_tuple (val_1, val_2); | |
continuation cont_0 (val_4: type_1) -> type_0 { | |
let val_123 = get_tuple_field 0 (val_3); | |
let val_124 = recursive_touch (val_123); | |
let val_125 = get_tuple_field 1 (val_3); | |
let val_126 = recursive_touch (val_125); | |
let val_127 = recursive_touch (val_3); | |
let val_128 = make_tuple (val_123, val_125); | |
let val_129 = make_union<type_25, type_27, type_30> 0 (val_128); | |
let val_130 = new_heap_cell (); | |
let val_131 = make_tuple (val_130, val_129); | |
let val_132 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_131); | |
val_132 | |
} | |
let val_133 = { | |
let val_6 = get_tuple_field 0 (val_3); | |
let val_7 = recursive_touch (val_6); | |
let val_8 = make_tuple (); | |
let val_9 = make_tuple (); | |
let val_10 = recursive_touch (val_6); | |
let val_11 = make_tuple (); | |
let val_122 = choice { | |
case { | |
let val_12 = get_tuple_field 1 (val_3); | |
let val_13 = recursive_touch (val_12); | |
let val_14 = make_tuple (); | |
let val_119 = choice { | |
case { | |
let val_15 = get_tuple_field 0 (val_3); | |
let val_16 = recursive_touch (val_15); | |
let val_17 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_15); | |
let val_18 = get_tuple_field 0 (val_17); | |
let val_19 = get_tuple_field 1 (val_17); | |
let val_20 = touch (val_18); | |
let val_21 = unwrap_union 1 (val_19); | |
let val_22 = get_tuple_field 0 (val_21); | |
let val_23 = recursive_touch (val_15); | |
let val_24 = get_tuple_field 1 (val_3); | |
let val_25 = recursive_touch (val_24); | |
let val_26 = recursive_touch (val_3); | |
let val_27 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_24); | |
let val_28 = get_tuple_field 0 (val_27); | |
let val_29 = get_tuple_field 1 (val_27); | |
let val_30 = touch (val_28); | |
let val_31 = unwrap_union 1 (val_29); | |
let val_32 = get_tuple_field 0 (val_31); | |
let val_33 = recursive_touch (val_24); | |
let val_34 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_12); | |
let val_35 = get_tuple_field 0 (val_34); | |
let val_36 = get_tuple_field 1 (val_34); | |
let val_37 = touch (val_35); | |
let val_38 = update_write_only["\x03\x00\x00\x00"] (val_35); | |
let val_39 = new_heap_cell (); | |
let val_40 = make_tuple (val_39, val_36); | |
let val_41 = make_tuple (val_22, val_32); | |
let val_42 = call["\x03\x00\x00\x00"] "UserApp"::"\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_41); | |
let val_43 = make_tuple (val_42); | |
let val_44 = make_union<type_5, type_7, type_10> 1 (val_43); | |
let val_45 = new_heap_cell (); | |
let val_46 = make_tuple (val_45, val_44); | |
let val_47 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_46); | |
val_47 | |
}, | |
case { | |
let val_48 = get_tuple_field 1 (val_3); | |
let val_49 = recursive_touch (val_48); | |
let val_50 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_48); | |
let val_51 = get_tuple_field 0 (val_50); | |
let val_52 = get_tuple_field 1 (val_50); | |
let val_53 = touch (val_51); | |
let val_54 = unwrap_union 0 (val_52); | |
let val_55 = get_tuple_field 0 (val_54); | |
let val_56 = recursive_touch (val_55); | |
let val_57 = recursive_touch (val_48); | |
let val_58 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_12); | |
let val_59 = get_tuple_field 0 (val_58); | |
let val_60 = get_tuple_field 1 (val_58); | |
let val_61 = touch (val_59); | |
let val_62 = update_write_only["\x04\x00\x00\x00"] (val_59); | |
let val_63 = new_heap_cell (); | |
let val_64 = make_tuple (val_63, val_60); | |
let val_65 = make_tuple (); | |
let val_66 = make_tuple (); | |
let val_67 = recursive_touch (val_55); | |
let val_68 = make_tuple (); | |
let val_115 = choice { | |
case { | |
let val_69 = get_tuple_field 0 (val_3); | |
let val_70 = recursive_touch (val_69); | |
let val_71 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_69); | |
let val_72 = get_tuple_field 0 (val_71); | |
let val_73 = get_tuple_field 1 (val_71); | |
let val_74 = touch (val_72); | |
let val_75 = unwrap_union 1 (val_73); | |
let val_76 = get_tuple_field 0 (val_75); | |
let val_77 = recursive_touch (val_69); | |
let val_78 = get_tuple_field 1 (val_3); | |
let val_79 = recursive_touch (val_78); | |
let val_80 = recursive_touch (val_3); | |
let val_81 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_78); | |
let val_82 = get_tuple_field 0 (val_81); | |
let val_83 = get_tuple_field 1 (val_81); | |
let val_84 = touch (val_82); | |
let val_85 = unwrap_union 0 (val_83); | |
let val_86 = get_tuple_field 0 (val_85); | |
let val_87 = recursive_touch (val_86); | |
let val_88 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_86); | |
let val_89 = get_tuple_field 0 (val_88); | |
let val_90 = get_tuple_field 1 (val_88); | |
let val_91 = touch (val_89); | |
let val_92 = unwrap_union 1 (val_90); | |
let val_93 = get_tuple_field 0 (val_92); | |
let val_94 = recursive_touch (val_86); | |
let val_95 = unwrap_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_78); | |
let val_96 = get_tuple_field 0 (val_95); | |
let val_97 = get_tuple_field 1 (val_95); | |
let val_98 = touch (val_96); | |
let val_99 = unwrap_union 0 (val_97); | |
let val_100 = get_tuple_field 1 (val_99); | |
let val_101 = recursive_touch (val_100); | |
let val_102 = recursive_touch (val_78); | |
let val_103 = make_tuple (val_76, val_93); | |
let val_104 = call["\x05\x00\x00\x00"] "UserApp"::"\x01\x00\x00\x00\x16\x00\x00\x00LY\x93K\xc3c\xae\xb7\x00\x00\x00\x00\x00\x00\x00\x00\x00`Num.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_103); | |
let val_105 = make_tuple (val_104); | |
let val_106 = make_union<type_14, type_16, type_19> 1 (val_105); | |
let val_107 = new_heap_cell (); | |
let val_108 = make_tuple (val_107, val_106); | |
let val_109 = make_named "UserApp"::"jY\xe2\xcd\xd2\xfd/t" (val_108); | |
let val_110 = make_tuple (val_109, val_100); | |
let val_111 = call["\x04\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x02\x00\x00\x00V\x90\xe8B>\xd7\x94\xf6\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.add`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_110); | |
val_111 | |
}, | |
case { | |
let val_112 = recursive_touch (val_64); | |
let val_113 = make_tuple (); | |
let val_114 = jump<type_20> cont_0 (val_113); | |
val_114 | |
}, | |
} (); | |
val_115 | |
}, | |
case { | |
let val_116 = recursive_touch (val_12); | |
let val_117 = make_tuple (); | |
let val_118 = jump<type_21> cont_0 (val_117); | |
val_118 | |
}, | |
} (); | |
val_119 | |
}, | |
case { | |
let val_120 = make_tuple (); | |
let val_121 = jump<type_22> cont_0 (val_120); | |
val_121 | |
}, | |
} (); | |
val_122 | |
} (); | |
val_133 | |
} where { | |
type type_0 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_1 = (); | |
type type_2 = (); | |
type type_3 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_4 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_5 = (type_3, type_4); | |
type type_6 = (); | |
type type_7 = (type_6); | |
type type_8 = heap_cell; | |
type type_9 = (type_8); | |
type type_10 = (type_9); | |
type type_11 = (); | |
type type_12 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_13 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_14 = (type_12, type_13); | |
type type_15 = (); | |
type type_16 = (type_15); | |
type type_17 = heap_cell; | |
type type_18 = (type_17); | |
type type_19 = (type_18); | |
type type_20 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_21 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_22 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_23 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_24 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_25 = (type_23, type_24); | |
type type_26 = (); | |
type type_27 = (type_26); | |
type type_28 = heap_cell; | |
type type_29 = (type_28); | |
type type_30 = (type_29); | |
type type_31 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_32 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
type type_33 = (type_31, type_32); | |
type type_34 = "UserApp"::"jY\xe2\xcd\xd2\xfd/t"; | |
} | |
fn "\t\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`pf..mainForHost`\x00\x00\x00\x00\x00\x00\x00\x00" (val_0: type_0) -> type_2 { | |
let val_1 = make_tuple (); | |
let val_2 = call["\x01\x00\x00\x00"] "UserApp"::"\x08\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`#UserApp.main`\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" (val_1); | |
val_2 | |
} where { | |
type type_0 = (); | |
type type_1 = heap_cell; | |
type type_2 = (type_1); | |
} | |
fn "mainForHost" (val_0: type_3) -> type_3 { | |
let val_6 = choice { | |
case { | |
let val_1 = make_tuple (); | |
let val_2 = make_union<type_1, type_0> 0 (val_1); | |
let val_3 = unwrap_union 1 (val_2); | |
let val_4 = call["\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"] "UserApp"::"\t\x00\x00\x00\x00\x00\x00\x00_\xa8\x0c\xbc5\xf4\x81h\x00\x00\x00\x00\x00\x00\x00\x00\x00`pf..mainForHost`\x00\x00\x00\x00\x00\x00\x00\x00" (val_3); | |
let val_5 = unknown_with<type_2> (val_4); | |
val_5 | |
}, | |
} (); | |
val_6 | |
} where { | |
type type_0 = (); | |
type type_1 = (); | |
type type_2 = (); | |
type type_3 = (); | |
} | |
} | |
entry_point "mainForHost" = "UserApp"::"mainForHost"; | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
procedure : `pf..mainForHost` Str | |
procedure = `pf..mainForHost` (): | |
let `pf..0` : Builtin(Str) = CallByName `#UserApp.main`; | |
ret `pf..0`; | |
procedure : `#UserApp.main` Str | |
procedure = `#UserApp.main` (): | |
let `#UserApp.7` : Builtin(Int(I64)) = 5i64; | |
let `#UserApp.x` : _ = Val `#UserApp.7`; | |
inc 2 `#UserApp.x`; | |
let `#UserApp.6` : _ = CallByName `#UserApp.add` `#UserApp.x` `#UserApp.x`; | |
let `#UserApp.f` : _ = CallByName `#UserApp.add` `#UserApp.x` `#UserApp.6`; | |
let `#UserApp.5` : Builtin(Str) = "Hello World"; | |
ret `#UserApp.5`; | |
procedure : `Num.add` I64 | |
procedure = `Num.add` (`#Attr.#arg1`, `#Attr.#arg2`): | |
let `#UserApp.12` : Builtin(Int(I64)) = lowlevel NumAdd `#Attr.#arg1` `#Attr.#arg2`; | |
ret `#UserApp.12`; | |
procedure : `#UserApp.add` TODO | |
procedure = `#UserApp.add` (`#UserApp.a`, `#UserApp.b`): | |
let `#UserApp.9` : Struct([_, _]) = Struct {`#UserApp.a`, `#UserApp.b`}; | |
joinpoint `#UserApp.22`: | |
let `#UserApp.f` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.f`; | |
let `#UserApp.g` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.g`; | |
dec `#UserApp.9`; | |
let `#UserApp.16` : _ = Add `#UserApp.f` `#UserApp.g`; | |
ret `#UserApp.16`; | |
in | |
let `#UserApp.30` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.30`; | |
let `#UserApp.31` : Builtin(Int(U8)) = 1i64; | |
let `#UserApp.32` : Builtin(Int(U8)) = GetTagId `#UserApp.30`; | |
dec `#UserApp.30`; | |
let `#UserApp.33` : Builtin(Bool) = lowlevel Eq `#UserApp.31` `#UserApp.32`; | |
if `#UserApp.33` then <no branch info> | |
let `#UserApp.23` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.23`; | |
let `#UserApp.29` : Builtin(Int(U8)) = GetTagId `#UserApp.23`; | |
switch `#UserApp.29`: | |
case 1: | |
let `#UserApp.18` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.18`; | |
let `#UserApp.n` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.18`; | |
dec `#UserApp.18`; | |
let `#UserApp.17` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.17`; | |
dec `#UserApp.9`; | |
let `#UserApp.m` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.17`; | |
dec `#UserApp.17`; | |
let `#UserApp.IdentId(50)` : _ = Reset { symbol: `#UserApp.23`, id: 3 }; | |
let `#UserApp.11` : Builtin(Int(I64)) = CallByName `Num.add` `#UserApp.n` `#UserApp.m`; | |
let `#UserApp.10` : _ = Reuse `#UserApp.IdentId(50)` UpdateModeId { id: 3 } Val `#UserApp.11`; | |
ret `#UserApp.10`; | |
case 0: | |
let `#UserApp.24` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.24`; | |
let `#UserApp.25` : _ = UnionAtIndex (Id 0) (Index 0) `#UserApp.24`; | |
inc `#UserApp.25`; | |
dec `#UserApp.24`; | |
let `#UserApp.IdentId(51)` : _ = Reset { symbol: `#UserApp.23`, id: 4 }; | |
let `#UserApp.26` : Builtin(Int(U8)) = 1i64; | |
let `#UserApp.27` : Builtin(Int(U8)) = GetTagId `#UserApp.25`; | |
dec `#UserApp.25`; | |
let `#UserApp.28` : Builtin(Bool) = lowlevel Eq `#UserApp.26` `#UserApp.27`; | |
if `#UserApp.28` then <no branch info> | |
let `#UserApp.21` : _ = StructAtIndex 0 `#UserApp.9`; | |
inc `#UserApp.21`; | |
let `#UserApp.n` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.21`; | |
dec `#UserApp.21`; | |
let `#UserApp.19` : _ = StructAtIndex 1 `#UserApp.9`; | |
inc `#UserApp.19`; | |
dec `#UserApp.9`; | |
let `#UserApp.20` : _ = UnionAtIndex (Id 0) (Index 0) `#UserApp.19`; | |
inc `#UserApp.20`; | |
let `#UserApp.m` : Builtin(Int(I64)) = UnionAtIndex (Id 1) (Index 0) `#UserApp.20`; | |
dec `#UserApp.20`; | |
let `#UserApp.f` : _ = UnionAtIndex (Id 0) (Index 1) `#UserApp.19`; | |
inc `#UserApp.f`; | |
dec `#UserApp.19`; | |
let `#UserApp.15` : Builtin(Int(I64)) = CallByName `Num.add` `#UserApp.n` `#UserApp.m`; | |
let `#UserApp.14` : _ = Reuse `#UserApp.IdentId(51)` UpdateModeId { id: 4 } Val `#UserApp.15`; | |
let `#UserApp.13` : _ = CallByName `#UserApp.add` `#UserApp.14` `#UserApp.f`; | |
ret `#UserApp.13`; | |
else <no branch info> | |
decref `#UserApp.IdentId(51)`; | |
jump `#UserApp.22`; | |
default: | |
dec `#UserApp.23`; | |
jump `#UserApp.22`; | |
else <no branch info> | |
jump `#UserApp.22`; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment