From ece34aaf018f76aceae6eda30ea2b829f4b0e6cb Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Wed, 18 Jan 2023 07:47:42 -0800 Subject: [PATCH] d2ir: Add recursive scenario/step test --- d2ir/compile.go | 8 +- d2ir/compile_test.go | 6 +- .../d2ir/TestCompile/steps/recursive.exp.json | 3193 +++++++++++++++++ 3 files changed, 3200 insertions(+), 7 deletions(-) create mode 100644 testdata/d2ir/TestCompile/steps/recursive.exp.json diff --git a/d2ir/compile.go b/d2ir/compile.go index 69660b3a9..024bfd594 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -43,8 +43,8 @@ func (c *compiler) compileScenarios(m *Map) { } base := m.Copy(sf).(*Map) sf.Composite = Overlay(base, sf.Map()) - c.compileScenarios(sf.Map() - c.compileSteps(sf.Map() + c.compileScenarios(sf.Map()) + c.compileSteps(sf.Map()) } } @@ -71,8 +71,8 @@ func (c *compiler) compileSteps(m *Map) { base = steps.Fields[i-1].Map().Copy(sf).(*Map) } sf.Composite = Overlay(base, sf.Map()) - c.compileScenarios(sf.Map() - c.compileSteps(sf.Map() + c.compileScenarios(sf.Map()) + c.compileSteps(sf.Map()) } } diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index a3b5ec53e..9841c7c03 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -430,7 +430,7 @@ steps: { }`) assert.Success(t, err) - assertQuery(t, m, 16, 3, nil, "") + assertQuery(t, m, 25, 4, nil, "") assertQuery(t, m, 0, 0, nil, "x") assertQuery(t, m, 0, 0, nil, "y") @@ -444,7 +444,7 @@ steps: { assertQuery(t, m, 1, 0, nil, "steps.bingo.p.q") assertQuery(t, m, 0, 0, nil, "steps.bingo.p.q.z") - assertQuery(t, m, 6, 1, nil, "steps.nuclear") + assertQuery(t, m, 15, 2, nil, "steps.nuclear") assertQuery(t, m, 0, 0, nil, "steps.nuclear.x") assertQuery(t, m, 0, 0, nil, "steps.nuclear.y") assertQuery(t, m, 0, 0, nil, `steps.nuclear.(x -> y)[0]`) @@ -453,7 +453,7 @@ steps: { assertQuery(t, m, 0, 0, nil, "steps.nuclear.p.q.z") assertQuery(t, m, 0, 0, nil, "steps.nuclear.quiche") - assertQuery(t, m, 6, 1, nil, "steps.nuclear.scenarios.bavarian") + assertQuery(t, m, 7, 1, nil, "steps.nuclear.scenarios.bavarian") assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.x") assertQuery(t, m, 0, 0, nil, "steps.nuclear.scenarios.bavarian.y") assertQuery(t, m, 0, 0, nil, `steps.nuclear.scenarios.bavarian.(x -> y)[0]`) diff --git a/testdata/d2ir/TestCompile/steps/recursive.exp.json b/testdata/d2ir/TestCompile/steps/recursive.exp.json new file mode 100644 index 000000000..dd0c42d9d --- /dev/null +++ b/testdata/d2ir/TestCompile/steps/recursive.exp.json @@ -0,0 +1,3193 @@ +{ + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "steps", + "composite": { + "fields": [ + { + "name": "bingo", + "composite": { + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "p", + "composite": { + "fields": [ + { + "name": "q", + "composite": { + "fields": [ + { + "name": "z", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:17:33", + "key": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,2:8:24-2:16:32", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + }, + "edge": null + } + } + ] + }, + { + "name": "nuclear", + "composite": { + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "p", + "composite": { + "fields": [ + { + "name": "q", + "composite": { + "fields": [ + { + "name": "z", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + }, + { + "name": "quiche", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + }, + { + "name": "scenarios", + "composite": { + "fields": [ + { + "name": "bavarian", + "composite": { + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + }, + { + "name": "p", + "composite": { + "fields": [ + { + "name": "q", + "composite": { + "fields": [ + { + "name": "z", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + }, + { + "name": "quiche", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + }, + { + "name": "perseverance", + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + }, + "edge": null + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-8:4:106", + "key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,6:13:83-8:3:105", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-9:3:110", + "key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,5:13:68-9:2:109", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-8:4:106", + "key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,6:13:83-8:3:105", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + }, + "edge": null + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,3:1:35-10:2:113", + "key": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,3:10:44-10:1:112", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-9:3:110", + "key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,5:13:68-9:2:109", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-8:4:106", + "key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,6:13:83-8:3:105", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + }, + "edge": null + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,1:0:7-11:1:115", + "key": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,1:0:7-1:5:12", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,1:7:14-11:0:114", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:17:33", + "key": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:1:17-2:6:22", + "value": [ + { + "string": "bingo", + "raw_string": "bingo" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,2:8:24-2:16:32", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "key": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:16:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:10:26-2:11:27", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:12:28-2:13:29", + "value": [ + { + "string": "q", + "raw_string": "q" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,2:14:30-2:15:31", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,3:1:35-10:2:113", + "key": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,3:1:35-3:8:42", + "value": [ + { + "string": "nuclear", + "raw_string": "nuclear" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,3:10:44-10:1:112", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "key": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,4:2:48-4:8:54", + "value": [ + { + "string": "quiche", + "raw_string": "quiche" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-9:3:110", + "key": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,5:2:57-5:11:66", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,5:13:68-9:2:109", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-8:4:106", + "key": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,6:3:73-6:11:81", + "value": [ + { + "string": "bavarian", + "raw_string": "bavarian" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/steps/recursive.d2,6:13:83-8:3:105", + "nodes": [ + { + "map_key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "key": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,7:4:89-7:16:101", + "value": [ + { + "string": "perseverance", + "raw_string": "perseverance" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + }, + "edge": null + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + }, + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:2:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:4:4-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + } + } + ] + } + ] +}