{ "capabilities": [ "unified_call", "phi", "effects", "callee_typing" ], "cfg": { "functions": [ { "blocks": [ { "id": 10, "reachable": false, "successors": [ 11 ], "terminator": "Jump" }, { "id": 11, "reachable": false, "successors": [ 12 ], "terminator": "Jump" }, { "id": 12, "reachable": false, "successors": [ 13, 15 ], "terminator": "Branch" }, { "id": 13, "reachable": false, "successors": [ 14 ], "terminator": "Jump" }, { "id": 14, "reachable": false, "successors": [ 12 ], "terminator": "Jump" }, { "id": 15, "reachable": false, "successors": [], "terminator": "Return" }, { "id": 16, "reachable": false, "successors": [ 12 ], "terminator": "Jump" } ], "entry_block": 10, "name": "Main.main/0" }, { "blocks": [ { "id": 17, "reachable": false, "successors": [], "terminator": "Return" } ], "entry_block": 17, "name": "Main.equals/1" }, { "blocks": [ { "id": 18, "reachable": false, "successors": [], "terminator": "Return" } ], "entry_block": 18, "name": "Main.toString/0" }, { "blocks": [ { "id": 0, "reachable": false, "successors": [], "terminator": "Return" } ], "entry_block": 0, "name": "condition_fn" }, { "blocks": [ { "id": 0, "reachable": false, "successors": [], "terminator": "Return" } ], "entry_block": 0, "name": "main" } ] }, "functions": [ { "blocks": [ { "id": 10, "instructions": [ { "dst": 2, "op": "const", "value": { "type": "i64", "value": 0 } }, { "dst": 3, "op": "copy", "src": 2 }, { "op": "jump", "target": 11 } ] }, { "id": 11, "instructions": [ { "dst": 4, "op": "copy", "src": 3 }, { "dst": 4, "op": "copy", "src": 3 }, { "op": "jump", "target": 12 } ] }, { "id": 12, "instructions": [ { "dst": 5, "incoming": [ [ 4, 11 ], [ 18, 14 ] ], "op": "phi" }, { "dst": 12, "op": "copy", "src": 9 }, { "dst": 13, "op": "copy", "src": 10 }, { "dst": 8, "op": "const", "value": { "type": "i64", "value": 10 } }, { "dst": 12, "op": "copy", "src": 9 }, { "dst": 13, "op": "copy", "src": 10 }, { "dst": 11, "lhs": 12, "op": "compare", "operation": "<", "rhs": 13 }, { "dst": 9, "op": "copy", "src": 5 }, { "dst": 10, "op": "copy", "src": 8 }, { "dst": 14, "op": "copy", "src": 11 }, { "cond": 14, "else": 15, "op": "branch", "then": 13 } ] }, { "id": 13, "instructions": [ { "dst": 16, "op": "copy", "src": 5 }, { "dst": null, "mir_call": { "args": [ 9 ], "callee": { "name": "print", "type": "Global" }, "effects": [ "IO" ], "flags": {} }, "op": "mir_call" }, { "dst": 15, "op": "const", "value": { "type": "i64", "value": 1 } }, { "dst": 16, "op": "copy", "src": 5 }, { "dst": 18, "lhs": 16, "op": "binop", "operation": "+", "rhs": 17 }, { "dst": 17, "op": "copy", "src": 15 }, { "op": "jump", "target": 14 } ] }, { "id": 14, "instructions": [ { "op": "jump", "target": 12 } ] }, { "id": 15, "instructions": [ { "dst": 20, "op": "const", "value": { "type": "void", "value": 0 } }, { "op": "ret", "value": 20 } ] }, { "id": 16, "instructions": [ { "op": "jump", "target": 12 } ] } ], "name": "Main.main/0", "params": [ 0, 1 ] }, { "blocks": [ { "id": 17, "instructions": [ { "dst": 3, "op": "const", "value": { "type": "i64", "value": 1 } }, { "op": "ret", "value": 3 } ] } ], "name": "Main.equals/1", "params": [ 0, 1, 2 ] }, { "blocks": [ { "id": 18, "instructions": [ { "dst": 2, "op": "const", "value": { "type": { "box_type": "StringBox", "kind": "handle" }, "value": "Main(" } }, { "dst": 3, "op": "const", "value": { "type": { "box_type": "StringBox", "kind": "handle" }, "value": ")" } }, { "dst": 6, "lhs": 4, "op": "binop", "operation": "+", "rhs": 5 }, { "dst": 4, "op": "copy", "src": 2 }, { "dst": 5, "op": "copy", "src": 3 }, { "op": "ret", "value": 6 } ] } ], "name": "Main.toString/0", "params": [ 0, 1 ] }, { "blocks": [ { "id": 0, "instructions": [ { "dst": 1, "op": "const", "value": { "type": "i64", "value": 1 } }, { "op": "ret", "value": 1 } ] } ], "name": "condition_fn", "params": [ 0 ] }, { "blocks": [ { "id": 0, "instructions": [ { "dst": 9, "op": "const", "value": { "type": "void", "value": 0 } }, { "op": "ret", "value": 9 } ] } ], "name": "main", "params": [] } ], "metadata": { "build_time": "Phase 15.5 Development", "features": [ "mir_call_unification", "json_v1_schema" ], "generator": "nyash-rust", "phase": "15.5" }, "schema_version": "1.0" }