From f056700152445251b51ccfba068c00e378204b11 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Fri, 27 Jan 2023 17:19:12 -0800 Subject: [PATCH] d2ir: Review fixes #714 --- ci/release/changelogs/next.md | 4 + ci/sub | 2 +- d2compiler/compile.go | 46 +- d2compiler/compile_test.go | 10 +- d2format/format.go | 7 +- d2graph/copy.go | 4 +- d2graph/d2graph.go | 31 +- d2ir/compile_test.go | 19 +- d2ir/d2ir.go | 100 +- .../TestCompile/edge_to_style.exp.json | 4 +- .../boards/errs/duplicate_board.exp.json | 12 + .../TestCompile2/boards/recursive.exp.json | 1867 +++++++++++++++++ .../TestCompile2/boards/root.exp.json | 722 +++++++ .../scenarios/recursive#01.exp.json | 12 - .../TestCompile2/scenarios/recursive.exp.json | 695 ------ .../TestCompile2/scenarios/root.exp.json | 402 ---- .../layers/errs/4/good_edge.exp.json | 1539 ++++++++++++++ 17 files changed, 4279 insertions(+), 1197 deletions(-) create mode 100644 testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.exp.json create mode 100644 testdata/d2compiler/TestCompile2/boards/recursive.exp.json create mode 100644 testdata/d2compiler/TestCompile2/boards/root.exp.json delete mode 100644 testdata/d2compiler/TestCompile2/scenarios/recursive#01.exp.json delete mode 100644 testdata/d2compiler/TestCompile2/scenarios/recursive.exp.json delete mode 100644 testdata/d2compiler/TestCompile2/scenarios/root.exp.json create mode 100644 testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index 8f0cadb4e..0fc0a71d1 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -9,6 +9,10 @@ - You can now use the reserved keywords `layers`/`scenarios`/`steps` to define diagrams with multiple levels of abstractions. [#714](https://github.com/terrastruct/d2/pull/714) Docs to come soon + - [#416](https://github.com/terrastruct/d2/issues/416) was also fixed so you can no + longer use keywords intended for use under `style` outside and vice versa. e.g. + `obj.style.shape` and `obj.double-border` are now illegal. The correct uses are + `obj.shape` and `obj.style.double-border`. #### Improvements 🧹 diff --git a/ci/sub b/ci/sub index 8ac704818..2009cdd52 160000 --- a/ci/sub +++ b/ci/sub @@ -1 +1 @@ -Subproject commit 8ac704818b5d7ab519e4b87caf5eb79716493709 +Subproject commit 2009cdd523e00cc2e9b8ba804095f71ca70d5671 diff --git a/d2compiler/compile.go b/d2compiler/compile.go index bdc5acb8b..a010c2b27 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -26,8 +26,6 @@ func Compile(path string, r io.RuneReader, opts *CompileOptions) (*d2graph.Graph opts = &CompileOptions{} } - var pe d2parser.ParseError - ast, err := d2parser.Parse(path, r, &d2parser.ParseOptions{ UTF16: opts.UTF16, }) @@ -40,43 +38,39 @@ func Compile(path string, r io.RuneReader, opts *CompileOptions) (*d2graph.Graph return nil, err } - g, err := compileIR(pe, ir) + g, err := compileIR(ast, ir) if err != nil { return nil, err } - g.AST = ast return g, err } -func compileIR(pe d2parser.ParseError, m *d2ir.Map) (*d2graph.Graph, error) { - c := &compiler{ - err: pe, - } +func compileIR(ast *d2ast.Map, m *d2ir.Map) (*d2graph.Graph, error) { + c := &compiler{} - g := c.compileLayer(m) + g := d2graph.NewGraph() + g.AST = ast + c.compileBoard(g, m) if len(c.err.Errors) > 0 { return nil, c.err } return g, nil } -func (c *compiler) compileLayer(ir *d2ir.Map) *d2graph.Graph { - g := d2graph.NewGraph() - - m := ir.CopyRoot() - c.compileMap(g.Root, m) +func (c *compiler) compileBoard(g *d2graph.Graph, ir *d2ir.Map) *d2graph.Graph { + c.compileMap(g.Root, ir) if len(c.err.Errors) == 0 { - c.validateKeys(g.Root, m) + c.validateKeys(g.Root, ir) } c.validateNear(g) - c.compileLayersField(g, ir, "layers") - c.compileLayersField(g, ir, "scenarios") - c.compileLayersField(g, ir, "steps") + c.compileBoardsField(g, ir, "layers") + c.compileBoardsField(g, ir, "scenarios") + c.compileBoardsField(g, ir, "steps") return g } -func (c *compiler) compileLayersField(g *d2graph.Graph, ir *d2ir.Map, fieldName string) { +func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName string) { layers := ir.GetField(fieldName) if layers.Map() == nil { return @@ -85,11 +79,13 @@ func (c *compiler) compileLayersField(g *d2graph.Graph, ir *d2ir.Map, fieldName if f.Map() == nil { continue } - if g.GetLayer(f.Name) != nil { - c.errorf(f.References[0].AST(), "layer name %v already used by another layer", f.Name) + if g.GetBoard(f.Name) != nil { + c.errorf(f.References[0].AST(), "board name %v already used by another board", f.Name) continue } - g2 := c.compileLayer(f.Map()) + g2 := d2graph.NewGraph() + g2.AST = g.AST + c.compileBoard(g2, f.Map()) g2.Name = f.Name switch fieldName { case "layers": @@ -119,6 +115,9 @@ func (c *compiler) compileMap(obj *d2graph.Object, m *d2ir.Map) { if f.Name == "shape" { continue } + if _, ok := d2graph.BoardKeywords[f.Name]; ok { + continue + } c.compileField(obj, f) } @@ -538,6 +537,9 @@ func (c *compiler) compileSQLTable(obj *d2graph.Object) { func (c *compiler) validateKeys(obj *d2graph.Object, m *d2ir.Map) { for _, f := range m.Fields { + if _, ok := d2graph.BoardKeywords[f.Name]; ok { + continue + } c.validateKey(obj, f) } } diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 5e25a92a8..67c66e8f4 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -1479,7 +1479,7 @@ d2/testdata/d2compiler/TestCompile/errors/reserved_icon_style.d2:2:9: near key " text: `x: {style.opacity: 0.4} y -> x.style `, - expErr: `d2/testdata/d2compiler/TestCompile/edge_to_style.d2:2:1: cannot connect to reserved keyword`, + expErr: `d2/testdata/d2compiler/TestCompile/edge_to_style.d2:2:8: reserved keywords are prohibited in edges`, }, { name: "escaped_id", @@ -1946,10 +1946,10 @@ Chinchillas_Collectibles.chinchilla -> Chinchillas.id`, func TestCompile2(t *testing.T) { t.Parallel() - t.Run("scenarios", testScenarios) + t.Run("boards", testBoards) } -func testScenarios(t *testing.T) { +func testBoards(t *testing.T) { t.Parallel() tca := []struct { @@ -2004,7 +2004,7 @@ layers: { }, }, { - name: "recursive", + name: "errs/duplicate_board", run: func(t *testing.T) { assertCompile(t, `base @@ -2018,7 +2018,7 @@ steps: { clause } } -`, `d2/testdata/d2compiler/TestCompile2/scenarios/recursive#01.d2:9:2: layer name one already used by another layer`) +`, `d2/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.d2:9:2: board name one already used by another board`) }, }, } diff --git a/d2format/format.go b/d2format/format.go index b7eca3bca..e979a6fea 100644 --- a/d2format/format.go +++ b/d2format/format.go @@ -398,15 +398,14 @@ func (p *printer) edgeIndex(ei *d2ast.EdgeIndex) { p.sb.WriteByte(']') } -func KeyPath(kp *d2ast.KeyPath) []string { - var ids []string +func KeyPath(kp *d2ast.KeyPath) (ida []string) { for _, s := range kp.Path { // We format each string of the key to ensure the resulting strings can be parsed // correctly. n := &d2ast.KeyPath{ Path: []*d2ast.StringBox{d2ast.MakeValueBox(d2ast.RawString(s.Unbox().ScalarString(), true)).StringBox()}, } - ids = append(ids, Format(n)) + ida = append(ida, Format(n)) } - return ids + return ida } diff --git a/d2graph/copy.go b/d2graph/copy.go index b6d1828c4..5c8a3fe7b 100644 --- a/d2graph/copy.go +++ b/d2graph/copy.go @@ -27,6 +27,7 @@ func (s Style) Copy() Style { Italic: s.Italic.Copy(), Underline: s.Underline.Copy(), Filled: s.Filled.Copy(), + DoubleBorder: s.DoubleBorder.Copy(), } } @@ -48,7 +49,8 @@ func (attrs *Attributes) Copy() *Attributes { Language: attrs.Language, Shape: attrs.Shape, - Direction: attrs.Shape, + Direction: attrs.Direction, + Constraint: attrs.Constraint, } } diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index d1e5a714b..72153efbb 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -997,13 +997,13 @@ func (obj *Object) Connect(srcID, dstID []string, srcArrow, dstArrow bool, label } e.initIndex() - addSQLTableColumnIndexes(e, srcID, dstID, obj, src, dst) + addSQLTableColumnIndices(e, srcID, dstID, obj, src, dst) obj.Graph.Edges = append(obj.Graph.Edges, e) return e, nil } -func addSQLTableColumnIndexes(e *Edge, srcID, dstID []string, obj, src, dst *Object) { +func addSQLTableColumnIndices(e *Edge, srcID, dstID []string, obj, src, dst *Object) { if src.Attributes.Shape.Value == d2target.ShapeSQLTable { if src == dst { // Ignore edge to column inside table. @@ -1311,6 +1311,9 @@ func Key(k *d2ast.KeyPath) []string { // All reserved keywords. See init below. var ReservedKeywords map[string]struct{} +// All reserved keywords not including style keywords. +var ReservedKeywords2 map[string]struct{} + // Non Style/Holder keywords. var SimpleReservedKeywords = map[string]struct{}{ "label": {}, @@ -1379,6 +1382,13 @@ var NearConstantsArray = []string{ } var NearConstants map[string]struct{} +// BoardKeywords contains the keywords that create new boards. +var BoardKeywords = map[string]struct{}{ + "layers": {}, + "scenarios": {}, + "steps": {}, +} + func init() { ReservedKeywords = make(map[string]struct{}) for k, v := range SimpleReservedKeywords { @@ -1390,13 +1400,28 @@ func init() { for k, v := range ReservedKeywordHolders { ReservedKeywords[k] = v } + for k, v := range BoardKeywords { + ReservedKeywords[k] = v + } + + ReservedKeywords2 = make(map[string]struct{}) + for k, v := range SimpleReservedKeywords { + ReservedKeywords2[k] = v + } + for k, v := range ReservedKeywordHolders { + ReservedKeywords2[k] = v + } + for k, v := range BoardKeywords { + ReservedKeywords2[k] = v + } + NearConstants = make(map[string]struct{}, len(NearConstantsArray)) for _, k := range NearConstantsArray { NearConstants[k] = struct{}{} } } -func (g *Graph) GetLayer(name string) *Graph { +func (g *Graph) GetBoard(name string) *Graph { for _, l := range g.Layers { if l.Name == name { return l diff --git a/d2ir/compile_test.go b/d2ir/compile_test.go index 9841c7c03..bd21d9ae2 100644 --- a/d2ir/compile_test.go +++ b/d2ir/compile_test.go @@ -313,24 +313,31 @@ layers: { t.Parallel() tca := []testCase{ { - name: "bad_edge/1", + name: "1/bad_edge", run: func(t testing.TB) { _, err := compile(t, `layers.x -> layers.y`) - assert.ErrorString(t, err, `TestCompile/layers/errs/bad_edge/1.d2:1:1: cannot create edges between layers, scenarios or steps`) + assert.ErrorString(t, err, `TestCompile/layers/errs/1/bad_edge.d2:1:1: cannot create edges between boards`) }, }, { - name: "bad_edge/2", + name: "2/bad_edge", run: func(t testing.TB) { _, err := compile(t, `layers -> scenarios`) - assert.ErrorString(t, err, `TestCompile/layers/errs/bad_edge/2.d2:1:1: cannot create edges between layers, scenarios or steps`) + assert.ErrorString(t, err, `TestCompile/layers/errs/2/bad_edge.d2:1:1: edge with board keyword alone doesn't make sense`) }, }, { - name: "bad_edge/3", + name: "3/bad_edge", run: func(t testing.TB) { _, err := compile(t, `layers.x.y -> steps.z.p`) - assert.ErrorString(t, err, `TestCompile/layers/errs/bad_edge/3.d2:1:1: cannot create edges between layers, scenarios or steps`) + assert.ErrorString(t, err, `TestCompile/layers/errs/3/bad_edge.d2:1:1: cannot create edges between boards`) + }, + }, + { + name: "4/good_edge", + run: func(t testing.TB) { + _, err := compile(t, `layers.x.y -> layers.x.y`) + assert.Success(t, err) }, }, } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 88b55600e..cddacba2f 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -11,6 +11,7 @@ import ( "oss.terrastruct.com/d2/d2ast" "oss.terrastruct.com/d2/d2format" + "oss.terrastruct.com/d2/d2graph" "oss.terrastruct.com/d2/d2parser" ) @@ -199,13 +200,6 @@ func (m *Map) CopyBase(newParent Node) *Map { return m2 } -// CopyRoot copies the map such that it is now the root of a diagram. -func (m *Map) CopyRoot() *Map { - m = m.CopyBase(nil) - m.initRoot() - return m -} - // Root reports whether the Map is the root of the D2 tree. func (m *Map) Root() bool { // m.parent exists even on the root map as we store the root AST in @@ -222,28 +216,28 @@ func (f *Field) Root() bool { return f.parent == nil } -type LayerKind string +type BoardKind string const ( - LayerLayer LayerKind = "layer" - LayerScenario LayerKind = "scenario" - LayerStep LayerKind = "step" + BoardLayer BoardKind = "layer" + BoardScenario BoardKind = "scenario" + BoardStep BoardKind = "step" ) -// NodeLayerKind reports whether n represents the root of a layer. +// NodeBoardKind reports whether n represents the root of a board. // n should be *Field or *Map -func NodeLayerKind(n Node) LayerKind { +func NodeBoardKind(n Node) BoardKind { var f *Field switch n := n.(type) { case *Field: if n.Name == "" { - return LayerLayer + return BoardLayer } f = ParentField(n) case *Map: f = ParentField(n) if f.Root() { - return LayerLayer + return BoardLayer } f = ParentField(f) } @@ -252,11 +246,11 @@ func NodeLayerKind(n Node) LayerKind { } switch f.Name { case "layers": - return LayerLayer + return BoardLayer case "scenarios": - return LayerScenario + return BoardScenario case "steps": - return LayerStep + return BoardStep default: return "" } @@ -657,8 +651,8 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field, return nil, d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) } - if hasLayerKeywords(head) != -1 && NodeLayerKind(m) == "" { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a layer root", head) + if findBoardKeyword(head) != -1 && NodeBoardKind(m) == "" { + return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } for _, f := range m.Fields { @@ -789,25 +783,34 @@ func (m *Map) CreateEdge(eid *EdgeID, refctx *RefContext) (*Edge, error) { return f.Map().CreateEdge(eid, refctx) } - ij := hasLayerKeywords(eid.SrcPath...) + ij := findProhibitedEdgeKeyword(eid.SrcPath...) if ij != -1 { - return nil, d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "cannot create edges between layers, scenarios or steps") + return nil, d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "reserved keywords are prohibited in edges") + } + ij = findBoardKeyword(eid.SrcPath...) + if ij == len(eid.SrcPath)-1 { + return nil, d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") } src := m.GetField(eid.SrcPath...) - if NodeLayerKind(src) != "" { - return nil, d2parser.Errorf(refctx.Edge.Src, "cannot create edges between layers, scenarios or steps") - } - ij = hasLayerKeywords(eid.DstPath...) - if ij != -1 { - return nil, d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "cannot create edges between layers, scenarios or steps") - } - dst := m.GetField(eid.DstPath...) - if NodeLayerKind(dst) != "" { - return nil, d2parser.Errorf(refctx.Edge.Dst, "cannot create edges between layers, scenarios or steps") + if NodeBoardKind(src) != "" { + return nil, d2parser.Errorf(refctx.Edge.Src, "cannot create edges between boards") } - if ParentLayer(src) != ParentLayer(dst) { - return nil, d2parser.Errorf(refctx.Edge, "cannot create edges between layers, scenarios or steps") + ij = findProhibitedEdgeKeyword(eid.DstPath...) + if ij != -1 { + return nil, d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "reserved keywords are prohibited in edges") + } + ij = findBoardKeyword(eid.DstPath...) + if ij == len(eid.DstPath)-1 { + return nil, d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") + } + dst := m.GetField(eid.DstPath...) + if NodeBoardKind(dst) != "" { + return nil, d2parser.Errorf(refctx.Edge.Dst, "cannot create edges between boards") + } + + if ParentBoard(src) != ParentBoard(dst) { + return nil, d2parser.Errorf(refctx.Edge, "cannot create edges between boards") } eid.Index = nil @@ -949,13 +952,13 @@ func ParentField(n Node) *Field { } } -func ParentLayer(n Node) Node { +func ParentBoard(n Node) Node { for { n = n.Parent() if n == nil { return nil } - if NodeLayerKind(n) != "" { + if NodeBoardKind(n) != "" { return n } } @@ -974,20 +977,29 @@ func ParentEdge(n Node) *Edge { } func countUnderscores(p []string) int { - var count int - for _, el := range p { + for i, el := range p { if el != "_" { - break + return i } - count++ } - return count + return 0 } -func hasLayerKeywords(ida ...string) int { +func findBoardKeyword(ida ...string) int { for i := range ida { - switch ida[i] { - case "layers", "scenarios", "steps": + if _, ok := d2graph.BoardKeywords[ida[i]]; ok { + return i + } + } + return -1 +} + +func findProhibitedEdgeKeyword(ida ...string) int { + for i := range ida { + if _, ok := d2graph.SimpleReservedKeywords[ida[i]]; ok { + return i + } + if _, ok := d2graph.ReservedKeywordHolders[ida[i]]; ok { return i } } diff --git a/testdata/d2compiler/TestCompile/edge_to_style.exp.json b/testdata/d2compiler/TestCompile/edge_to_style.exp.json index 998c6e57c..4b0ac711c 100644 --- a/testdata/d2compiler/TestCompile/edge_to_style.exp.json +++ b/testdata/d2compiler/TestCompile/edge_to_style.exp.json @@ -4,8 +4,8 @@ "ioerr": null, "errs": [ { - "range": "d2/testdata/d2compiler/TestCompile/edge_to_style.d2,1:0:24-1:12:36", - "errmsg": "d2/testdata/d2compiler/TestCompile/edge_to_style.d2:2:1: cannot connect to reserved keyword" + "range": "d2/testdata/d2compiler/TestCompile/edge_to_style.d2,1:7:31-1:12:36", + "errmsg": "d2/testdata/d2compiler/TestCompile/edge_to_style.d2:2:8: reserved keywords are prohibited in edges" } ] } diff --git a/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.exp.json b/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.exp.json new file mode 100644 index 000000000..663733cfe --- /dev/null +++ b/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.exp.json @@ -0,0 +1,12 @@ +{ + "graph": null, + "err": { + "ioerr": null, + "errs": [ + { + "range": "d2/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.d2,8:1:51-8:4:54", + "errmsg": "d2/testdata/d2compiler/TestCompile2/boards/errs/duplicate_board.d2:9:2: board name one already used by another board" + } + ] + } +} diff --git a/testdata/d2compiler/TestCompile2/boards/recursive.exp.json b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json new file mode 100644 index 000000000..4496b0752 --- /dev/null +++ b/testdata/d2compiler/TestCompile2/boards/recursive.exp.json @@ -0,0 +1,1867 @@ +{ + "graph": { + "name": "", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-18:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-17:1:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:8:14-17:0:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-16:3:142", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:7:46-16:2:141", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-15:3:138", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:9:68-15:2:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-11:4:102", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "value": [ + { + "string": "seinfeld", + "raw_string": "seinfeld" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:13:83-11:3:101", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-14:4:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "value": [ + { + "string": "missoula", + "raw_string": "missoula" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:13:116-14:3:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "base", + "id_val": "base", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "base" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "one", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-18:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-17:1:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:8:14-17:0:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-16:3:142", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:7:46-16:2:141", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-15:3:138", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:9:68-15:2:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-11:4:102", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "value": [ + { + "string": "seinfeld", + "raw_string": "seinfeld" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:13:83-11:3:101", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-14:4:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "value": [ + { + "string": "missoula", + "raw_string": "missoula" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:13:116-14:3:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "santa", + "id_val": "santa", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "santa" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + { + "name": "two", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-18:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-17:1:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:8:14-17:0:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-16:3:142", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:7:46-16:2:141", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-15:3:138", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:9:68-15:2:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-11:4:102", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "value": [ + { + "string": "seinfeld", + "raw_string": "seinfeld" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:13:83-11:3:101", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-14:4:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "value": [ + { + "string": "missoula", + "raw_string": "missoula" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:13:116-14:3:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "steps": [ + { + "name": "seinfeld", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-18:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-17:1:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:8:14-17:0:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-16:3:142", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:7:46-16:2:141", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-15:3:138", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:9:68-15:2:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-11:4:102", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "value": [ + { + "string": "seinfeld", + "raw_string": "seinfeld" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:13:83-11:3:101", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-14:4:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "value": [ + { + "string": "missoula", + "raw_string": "missoula" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:13:116-14:3:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "reindeer", + "id_val": "reindeer", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "reindeer" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + { + "name": "missoula", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-18:0:145", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-17:1:144", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,2:8:14-17:0:143", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-16:3:142", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,6:7:46-16:2:141", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-15:3:138", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:2:61-8:7:66", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,8:9:68-15:2:137", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-11:4:102", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:3:73-9:11:81", + "value": [ + { + "string": "seinfeld", + "raw_string": "seinfeld" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,9:13:83-11:3:101", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,10:4:89-10:12:97", + "value": [ + { + "string": "reindeer", + "raw_string": "reindeer" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-14:4:134", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:3:106-12:11:114", + "value": [ + { + "string": "missoula", + "raw_string": "missoula" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,12:13:116-14:3:133", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "montana", + "id_val": "montana", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/recursive.d2,13:4:122-13:11:129", + "value": [ + { + "string": "montana", + "raw_string": "montana" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "montana" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + } + ] + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile2/boards/root.exp.json b/testdata/d2compiler/TestCompile2/boards/root.exp.json new file mode 100644 index 000000000..7efd58eac --- /dev/null +++ b/testdata/d2compiler/TestCompile2/boards/root.exp.json @@ -0,0 +1,722 @@ +{ + "graph": { + "name": "", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-10:0:65", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-9:1:64", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:8:14-9:0:63", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-8:3:62", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:7:46-8:2:61", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "base", + "id_val": "base", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "base" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "one", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-10:0:65", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-9:1:64", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:8:14-9:0:63", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-8:3:62", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:7:46-8:2:61", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "santa", + "id_val": "santa", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "santa" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + }, + { + "name": "two", + "ast": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-10:0:65", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,0:0:0-0:4:4", + "value": [ + { + "string": "base", + "raw_string": "base" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-9:1:64", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:0:6-2:6:12", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,2:8:14-9:0:63", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-5:3:38", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:2:18-3:5:21", + "value": [ + { + "string": "one", + "raw_string": "one" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,3:7:23-5:2:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,4:4:29-4:9:34", + "value": [ + { + "string": "santa", + "raw_string": "santa" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-8:3:62", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:2:41-6:5:44", + "value": [ + { + "string": "two", + "raw_string": "two" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,6:7:46-8:2:61", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "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": null, + "objects": [ + { + "id": "clause", + "id_val": "clause", + "label_dimensions": { + "width": 0, + "height": 0 + }, + "references": [ + { + "key": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2compiler/TestCompile2/boards/root.d2,7:4:52-7:10:58", + "value": [ + { + "string": "clause", + "raw_string": "clause" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "clause" + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": { + "value": "" + } + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": null +} diff --git a/testdata/d2compiler/TestCompile2/scenarios/recursive#01.exp.json b/testdata/d2compiler/TestCompile2/scenarios/recursive#01.exp.json deleted file mode 100644 index 22fa2ae4c..000000000 --- a/testdata/d2compiler/TestCompile2/scenarios/recursive#01.exp.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "graph": null, - "err": { - "ioerr": null, - "errs": [ - { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive#01.d2,8:1:51-8:4:54", - "errmsg": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive#01.d2:9:2: layer name one already used by another layer" - } - ] - } -} diff --git a/testdata/d2compiler/TestCompile2/scenarios/recursive.exp.json b/testdata/d2compiler/TestCompile2/scenarios/recursive.exp.json deleted file mode 100644 index ce5e1687e..000000000 --- a/testdata/d2compiler/TestCompile2/scenarios/recursive.exp.json +++ /dev/null @@ -1,695 +0,0 @@ -{ - "graph": { - "name": "", - "ast": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-18:0:145", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-0:4:4", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-0:4:4", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-0:4:4", - "value": [ - { - "string": "base", - "raw_string": "base" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,2:0:6-17:1:144", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,2:0:6-2:6:12", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,2:0:6-2:6:12", - "value": [ - { - "string": "layers", - "raw_string": "layers" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,2:8:14-17:0:143", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,3:2:18-5:3:38", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,3:2:18-3:5:21", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,3:2:18-3:5:21", - "value": [ - { - "string": "one", - "raw_string": "one" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,3:7:23-5:2:37", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,4:4:29-4:9:34", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,4:4:29-4:9:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,4:4:29-4:9:34", - "value": [ - { - "string": "santa", - "raw_string": "santa" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - } - } - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,6:2:41-16:3:142", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,6:2:41-6:5:44", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,6:2:41-6:5:44", - "value": [ - { - "string": "two", - "raw_string": "two" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,6:7:46-16:2:141", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,7:4:52-7:10:58", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,7:4:52-7:10:58", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,7:4:52-7:10:58", - "value": [ - { - "string": "clause", - "raw_string": "clause" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,8:2:61-15:3:138", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,8:2:61-8:7:66", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,8:2:61-8:7:66", - "value": [ - { - "string": "steps", - "raw_string": "steps" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,8:9:68-15:2:137", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,9:3:73-11:4:102", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,9:3:73-9:11:81", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,9:3:73-9:11:81", - "value": [ - { - "string": "seinfeld", - "raw_string": "seinfeld" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,9:13:83-11:3:101", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,10:4:89-10:12:97", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,10:4:89-10:12:97", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,10:4:89-10:12:97", - "value": [ - { - "string": "reindeer", - "raw_string": "reindeer" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - } - } - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,12:3:106-14:4:134", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,12:3:106-12:11:114", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,12:3:106-12:11:114", - "value": [ - { - "string": "missoula", - "raw_string": "missoula" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,12:13:116-14:3:133", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,13:4:122-13:11:129", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,13:4:122-13:11:129", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,13:4:122-13:11:129", - "value": [ - { - "string": "montana", - "raw_string": "montana" - } - ] - } - } - ] - }, - "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": null, - "objects": [ - { - "id": "base", - "id_val": "base", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-0:4:4", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,0:0:0-0:4:4", - "value": [ - { - "string": "base", - "raw_string": "base" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "base" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ], - "layers": [ - { - "name": "one", - "ast": null, - "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": null, - "objects": [ - { - "id": "santa", - "id_val": "santa", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,4:4:29-4:9:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,4:4:29-4:9:34", - "value": [ - { - "string": "santa", - "raw_string": "santa" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "santa" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ] - }, - { - "name": "two", - "ast": null, - "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": null, - "objects": [ - { - "id": "clause", - "id_val": "clause", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,7:4:52-7:10:58", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,7:4:52-7:10:58", - "value": [ - { - "string": "clause", - "raw_string": "clause" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "clause" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ], - "steps": [ - { - "name": "seinfeld", - "ast": null, - "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": null, - "objects": [ - { - "id": "reindeer", - "id_val": "reindeer", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,10:4:89-10:12:97", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,10:4:89-10:12:97", - "value": [ - { - "string": "reindeer", - "raw_string": "reindeer" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "reindeer" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ] - }, - { - "name": "missoula", - "ast": null, - "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": null, - "objects": [ - { - "id": "montana", - "id_val": "montana", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,13:4:122-13:11:129", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/recursive.d2,13:4:122-13:11:129", - "value": [ - { - "string": "montana", - "raw_string": "montana" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "montana" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ] - } - ] - } - ] - }, - "err": null -} diff --git a/testdata/d2compiler/TestCompile2/scenarios/root.exp.json b/testdata/d2compiler/TestCompile2/scenarios/root.exp.json deleted file mode 100644 index 2c01d12f9..000000000 --- a/testdata/d2compiler/TestCompile2/scenarios/root.exp.json +++ /dev/null @@ -1,402 +0,0 @@ -{ - "graph": { - "name": "", - "ast": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-10:0:65", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-0:4:4", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-0:4:4", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-0:4:4", - "value": [ - { - "string": "base", - "raw_string": "base" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,2:0:6-9:1:64", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,2:0:6-2:6:12", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,2:0:6-2:6:12", - "value": [ - { - "string": "layers", - "raw_string": "layers" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,2:8:14-9:0:63", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,3:2:18-5:3:38", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,3:2:18-3:5:21", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,3:2:18-3:5:21", - "value": [ - { - "string": "one", - "raw_string": "one" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,3:7:23-5:2:37", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,4:4:29-4:9:34", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,4:4:29-4:9:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,4:4:29-4:9:34", - "value": [ - { - "string": "santa", - "raw_string": "santa" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - } - } - } - }, - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,6:2:41-8:3:62", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,6:2:41-6:5:44", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,6:2:41-6:5:44", - "value": [ - { - "string": "two", - "raw_string": "two" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,6:7:46-8:2:61", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,7:4:52-7:10:58", - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,7:4:52-7:10:58", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,7:4:52-7:10:58", - "value": [ - { - "string": "clause", - "raw_string": "clause" - } - ] - } - } - ] - }, - "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": null, - "objects": [ - { - "id": "base", - "id_val": "base", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-0:4:4", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,0:0:0-0:4:4", - "value": [ - { - "string": "base", - "raw_string": "base" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "base" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ], - "layers": [ - { - "name": "one", - "ast": null, - "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": null, - "objects": [ - { - "id": "santa", - "id_val": "santa", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,4:4:29-4:9:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,4:4:29-4:9:34", - "value": [ - { - "string": "santa", - "raw_string": "santa" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "santa" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ] - }, - { - "name": "two", - "ast": null, - "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": null, - "objects": [ - { - "id": "clause", - "id_val": "clause", - "label_dimensions": { - "width": 0, - "height": 0 - }, - "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,7:4:52-7:10:58", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile2/scenarios/root.d2,7:4:52-7:10:58", - "value": [ - { - "string": "clause", - "raw_string": "clause" - } - ] - } - } - ] - }, - "key_path_index": 0, - "map_key_edge_index": -1 - } - ], - "attributes": { - "label": { - "value": "clause" - }, - "style": {}, - "near_key": null, - "shape": { - "value": "rectangle" - }, - "direction": { - "value": "" - }, - "constraint": { - "value": "" - } - }, - "zIndex": 0 - } - ] - } - ] - }, - "err": null -} diff --git a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json new file mode 100644 index 000000000..2a2fbc66b --- /dev/null +++ b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json @@ -0,0 +1,1539 @@ +{ + "fields": [ + { + "name": "layers", + "composite": { + "fields": [ + { + "name": "x", + "composite": { + "fields": [ + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "y" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:13:13-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null +}