diff --git a/d2oracle/edit.go b/d2oracle/edit.go index efd7134c6..dd878fef1 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -643,6 +643,9 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra return g, nil } + // Keep a list of newly generated IDs, so that generateUniqueKey considers them for conflict + var newIDs []string + // If we already renamed the key from another reference, no need to touch dedupedRenames := map[string]struct{}{} for _, ref := range obj.References { var absKeys []*d2ast.KeyPath @@ -686,7 +689,6 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra absKeys = append(absKeys, absKey) } - var newIDs []string renames := make(map[string]string) for _, absKey := range absKeys { ida := d2graph.Key(absKey) @@ -694,6 +696,7 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra if _, ok := dedupedRenames[absKeyStr]; ok { continue } + // Stale reference dedupedRenames[absKeyStr] = struct{}{} // Do not consider the parent for conflicts, assume the parent will be deleted if ida[len(ida)-1] == ida[len(ida)-2] { @@ -724,6 +727,7 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra if absKeyStr != renamedKeyStr { renames[absKeyStr] = renamedKeyStr } + dedupedRenames[renamedKeyStr] = struct{}{} } // We need to rename in a conflict-free order // E.g. imagine you have children `Text 4` and `Text`. diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 00f825e31..020b93484 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -1938,6 +1938,42 @@ z: "" exp: `x -> z.y (z) z: "" +`, + }, + { + name: "middle_container_generated_conflict", + + text: `a.Square.Text 3 -> a.Square.Text 2 + +a.Square -> a.Text + +a: { + Text + Square: { + Text 2 + Text 3 + } + Square + + Text 2 +} +`, + key: `a.Square`, + newKey: `Square`, + + exp: `a.Text 3 -> a.Text 4 + +Square -> a.Text + +a: { + Text + + Text 4 + Text 3 + + Text 2 +} +Square `, }, { @@ -4934,10 +4970,10 @@ Square: { exp: `Text 4 -Text: { +Text 2: { Text 2 } -Text 2 +Text `, }, { diff --git a/testdata/d2oracle/TestDelete/conflicts_generated.exp.json b/testdata/d2oracle/TestDelete/conflicts_generated.exp.json index ff5630b3a..e8631525c 100644 --- a/testdata/d2oracle/TestDelete/conflicts_generated.exp.json +++ b/testdata/d2oracle/TestDelete/conflicts_generated.exp.json @@ -30,17 +30,17 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-4:1:26", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-4:1:28", "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:4:12", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:6:14", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:4:12", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:6:14", "value": [ { - "string": "Text", - "raw_string": "Text" + "string": "Text 2", + "raw_string": "Text 2" } ] } @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:6:14-4:0:25", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:8:16-4:0:27", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:18-3:8:24", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:20-3:8:26", "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:18-3:8:24", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:20-3:8:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:18-3:8:24", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:20-3:8:26", "value": [ { "string": "Text 2", @@ -82,17 +82,17 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:27-5:6:33", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:29-5:4:33", "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:27-5:6:33", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:29-5:4:33", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:27-5:6:33", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:29-5:4:33", "value": [ { - "string": "Text 2", - "raw_string": "Text 2" + "string": "Text", + "raw_string": "Text" } ] } @@ -179,6 +179,100 @@ }, "zIndex": 0 }, + { + "id": "Text 2", + "id_val": "Text 2", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:6:14", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:6:14", + "value": [ + { + "string": "Text 2", + "raw_string": "Text 2" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text 2" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Text 2", + "id_val": "Text 2", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:20-3:8:26", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:20-3:8:26", + "value": [ + { + "string": "Text 2", + "raw_string": "Text 2" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text 2" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, { "id": "Text", "id_val": "Text", @@ -189,11 +283,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:4:12", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:29-5:4:33", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,2:0:8-2:4:12", + "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:29-5:4:33", "value": [ { "string": "Text", @@ -225,100 +319,6 @@ } }, "zIndex": 0 - }, - { - "id": "Text 2", - "id_val": "Text 2", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:18-3:8:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,3:2:18-3:8:24", - "value": [ - { - "string": "Text 2", - "raw_string": "Text 2" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "Text 2" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - }, - { - "id": "Text 2", - "id_val": "Text 2", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:27-5:6:33", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/conflicts_generated.d2,5:0:27-5:6:33", - "value": [ - { - "string": "Text 2", - "raw_string": "Text 2" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "Text 2" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 } ] }, diff --git a/testdata/d2oracle/TestMove/middle_container_generated_conflict.exp.json b/testdata/d2oracle/TestMove/middle_container_generated_conflict.exp.json new file mode 100644 index 000000000..88bc19e86 --- /dev/null +++ b/testdata/d2oracle/TestMove/middle_container_generated_conflict.exp.json @@ -0,0 +1,866 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-13:0:90", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:20:20", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:20:20", + "src": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:2:2-0:8:8", + "value": [ + { + "string": "Text 3", + "raw_string": "Text 3" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:11:11-0:20:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:12:12-0:13:13", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:14:14-0:20:20", + "value": [ + { + "string": "Text 4", + "raw_string": "Text 4" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:16:38", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:16:38", + "src": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:7:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:6:28", + "value": [ + { + "string": "Square", + "raw_string": "Square" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:9:31-2:16:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:10:32-2:11:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:12:34-2:16:38", + "value": [ + { + "string": "Text", + "raw_string": "Text" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:0:40-11:1:82", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:0:40-4:1:41", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:0:40-4:1:41", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:3:43-11:0:81", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,5:2:47-5:6:51", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,5:2:47-5:6:51", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,5:2:47-5:6:51", + "value": [ + { + "string": "Text", + "raw_string": "Text" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,7:2:55-7:8:61", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,7:2:55-7:8:61", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,7:2:55-7:8:61", + "value": [ + { + "string": "Text 4", + "raw_string": "Text 4" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,8:2:64-8:8:70", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,8:2:64-8:8:70", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,8:2:64-8:8:70", + "value": [ + { + "string": "Text 3", + "raw_string": "Text 3" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,10:2:74-10:8:80", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,10:2:74-10:8:80", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,10:2:74-10:8:80", + "value": [ + { + "string": "Text 2", + "raw_string": "Text 2" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,12:0:83-12:6:89", + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,12:0:83-12:6:89", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,12:0:83-12:6:89", + "value": [ + { + "string": "Square", + "raw_string": "Square" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "index": 0, + "minWidth": 0, + "minHeight": 0, + "label_dimensions": { + "width": 0, + "height": 0 + }, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:2:2-0:8:8", + "value": [ + { + "string": "Text 3", + "raw_string": "Text 3" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:11:11-0:20:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:12:12-0:13:13", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:14:14-0:20:20", + "value": [ + { + "string": "Text 4", + "raw_string": "Text 4" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:9:31-2:16:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:10:32-2:11:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:12:34-2:16:38", + "value": [ + { + "string": "Text", + "raw_string": "Text" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:0:40-4:1:41", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,4:0:40-4:1:41", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Text 3", + "id_val": "Text 3", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:9:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:2:2-0:8:8", + "value": [ + { + "string": "Text 3", + "raw_string": "Text 3" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,8:2:64-8:8:70", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,8:2:64-8:8:70", + "value": [ + { + "string": "Text 3", + "raw_string": "Text 3" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text 3" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Text 4", + "id_val": "Text 4", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:11:11-0:20:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:12:12-0:13:13", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,0:14:14-0:20:20", + "value": [ + { + "string": "Text 4", + "raw_string": "Text 4" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,7:2:55-7:8:61", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,7:2:55-7:8:61", + "value": [ + { + "string": "Text 4", + "raw_string": "Text 4" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text 4" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Square", + "id_val": "Square", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:7:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:0:22-2:6:28", + "value": [ + { + "string": "Square", + "raw_string": "Square" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,12:0:83-12:6:89", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,12:0:83-12:6:89", + "value": [ + { + "string": "Square", + "raw_string": "Square" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Square" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Text", + "id_val": "Text", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:9:31-2:16:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:10:32-2:11:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,2:12:34-2:16:38", + "value": [ + { + "string": "Text", + "raw_string": "Text" + } + ] + } + } + ] + }, + "key_path_index": 1, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,5:2:47-5:6:51", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,5:2:47-5:6:51", + "value": [ + { + "string": "Text", + "raw_string": "Text" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + }, + { + "id": "Text 2", + "id_val": "Text 2", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,10:2:74-10:8:80", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/middle_container_generated_conflict.d2,10:2:74-10:8:80", + "value": [ + { + "string": "Text 2", + "raw_string": "Text 2" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "Text 2" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + "err": "" +}