From 14703dd991306e8e7a8f04b2a9f371eea1683ddc Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Fri, 16 Jun 2023 16:23:08 -0700 Subject: [PATCH 01/14] save d2oracle --- d2oracle/edit.go | 14 ++++++++++---- d2oracle/edit_test.go | 32 ++++++++++++++++++++++++++++---- d2oracle/get.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+), 8 deletions(-) diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 165d6886c..89fbcd143 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -22,19 +22,25 @@ import ( "oss.terrastruct.com/d2/d2target" ) -func Create(g *d2graph.Graph, key string) (_ *d2graph.Graph, newKey string, err error) { +func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, newKey string, err error) { defer xdefer.Errorf(&err, "failed to create %#v", key) - newKey, edge, err := generateUniqueKey(g, key, nil, nil) + boardG := GetBoardGraph(g, boardPath) + if boardG == nil { + return nil, "", fmt.Errorf("board %v not found", boardPath) + } + + newKey, edge, err := generateUniqueKey(boardG, key, nil, nil) if err != nil { return nil, "", err } if edge { - err = _set(g, key, nil, nil) + err = _set(boardG, key, nil, nil) } else { - err = _set(g, newKey, nil, nil) + err = _set(boardG, newKey, nil, nil) } + println(d2format.Format(boardG.AST)) if err != nil { return nil, "", err } diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index a48bcc0d1..f582aa306 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -26,9 +26,10 @@ func TestCreate(t *testing.T) { t.Parallel() testCases := []struct { - name string - text string - key string + boardPath []string + name string + text string + key string expKey string expErr string @@ -455,6 +456,29 @@ rawr: { } after +`, + }, + { + name: "layers-basic", + + text: `a +layers: { + x: { + a + } +} +`, + key: `b`, + boardPath: []string{"root", "layers", "x"}, + + expKey: `b`, + exp: `a +layers: { + x: { + a + b + } +} `, }, } @@ -469,7 +493,7 @@ after text: tc.text, testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) { var err error - g, newKey, err = d2oracle.Create(g, tc.key) + g, newKey, err = d2oracle.Create(g, tc.boardPath, tc.key) return g, err }, diff --git a/d2oracle/get.go b/d2oracle/get.go index f24178efd..c2bce9596 100644 --- a/d2oracle/get.go +++ b/d2oracle/get.go @@ -9,6 +9,48 @@ import ( "oss.terrastruct.com/d2/d2parser" ) +func GetBoardGraph(g *d2graph.Graph, boardPath []string) *d2graph.Graph { + if len(boardPath) == 0 { + return g + } + switch boardPath[0] { + case "root": + if g.Parent == nil { + return GetBoardGraph(g, boardPath[1:]) + } + return nil + case "layers": + if len(boardPath) < 2 { + return nil + } + for i, b := range g.Layers { + if b.Name == boardPath[1] { + return GetBoardGraph(g.Layers[i], boardPath[2:]) + } + } + case "scenarios": + if len(boardPath) < 2 { + return nil + } + for i, b := range g.Scenarios { + if b.Name == boardPath[1] { + return GetBoardGraph(g.Scenarios[i], boardPath[2:]) + } + } + case "steps": + if len(boardPath) < 2 { + return nil + } + for i, b := range g.Steps { + if b.Name == boardPath[1] { + return GetBoardGraph(g.Steps[i], boardPath[2:]) + } + } + } + + return nil +} + func GetChildrenIDs(g *d2graph.Graph, absID string) (ids []string, _ error) { mk, err := d2parser.ParseMapKey(absID) if err != nil { From 1ff119d8035050b6a48f642f4ad534924b475031 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 18 Jun 2023 23:57:08 -0700 Subject: [PATCH 02/14] baseAST --- d2compiler/compile.go | 1 + d2graph/d2graph.go | 2 ++ d2ir/compile.go | 3 +++ d2ir/d2ir.go | 42 ++++++++++++++++++++++++++++++++++++++++++ d2ir/merge.go | 8 ++++++-- 5 files changed, 54 insertions(+), 2 deletions(-) diff --git a/d2compiler/compile.go b/d2compiler/compile.go index b8579ffe3..6bf07ecd7 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -111,6 +111,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName g2 := d2graph.NewGraph() g2.Parent = g g2.AST = f.Map().AST().(*d2ast.Map) + g2.BaseAST = f.Map().BaseAST().(*d2ast.Map) c.compileBoard(g2, f.Map()) g2.Name = f.Name switch fieldName { diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index a91c95e12..77cf7d944 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -42,6 +42,8 @@ type Graph struct { // the board tree. IsFolderOnly bool `json:"isFolderOnly"` AST *d2ast.Map `json:"ast"` + // BaseAST is the AST of the original graph without inherited fields and edges + BaseAST *d2ast.Map `json:"baseAST,omitempty"` Root *Object `json:"root"` Edges []*Edge `json:"edges"` diff --git a/d2ir/compile.go b/d2ir/compile.go index 2c4022edc..3995efffe 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -153,6 +153,9 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return } + if f.Inherited { + f.Inherited = false + } if refctx.Key.Primary.Unbox() != nil { f.Primary_ = &Scalar{ diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 47651fdc6..1255d144d 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -196,7 +196,25 @@ func (m *Map) CopyBase(newParent Node) *Map { layers := m.DeleteField("layers") scenarios := m.DeleteField("scenarios") steps := m.DeleteField("steps") + + had := make(map[string]struct{}) + if parentM, ok := newParent.(*Map); ok { + for _, f := range parentM.Fields { + had[f.Name] = struct{}{} + } + } + // TODO pretty sure you don't need one for edges. + // Maybe if both boards had a (x -> y)[0]? + m2 := m.Copy(newParent).(*Map) + for i := range m2.Fields { + if _, ok := had[m2.Fields[i].Name]; !ok { + m2.Fields[i].Inherited = true + } + } + for i := range m2.Edges { + m2.Edges[i].Inherited = true + } if layers != nil { m.Fields = append(m.Fields, layers) } @@ -277,6 +295,9 @@ type Field struct { Composite Composite `json:"composite,omitempty"` References []*FieldReference `json:"references,omitempty"` + + // Whether it's from a parent board or imported + Inherited bool `json:"inherited"` } func (f *Field) Copy(newParent Node) Node { @@ -431,6 +452,8 @@ type Edge struct { Map_ *Map `json:"map,omitempty"` References []*EdgeReference `json:"references,omitempty"` + + Inherited bool `json:"inherited"` } func (e *Edge) Copy(newParent Node) Node { @@ -915,6 +938,25 @@ func (a *Array) AST() d2ast.Node { return astArray } +func (m *Map) BaseAST() d2ast.Node { + if m == nil { + return nil + } + astMap := &d2ast.Map{} + astMap.Range = d2ast.MakeRange(",0:0:0-1:0:0") + for _, f := range m.Fields { + if !f.Inherited { + astMap.Nodes = append(astMap.Nodes, d2ast.MakeMapNodeBox(f.AST().(d2ast.MapNode))) + } + } + for _, e := range m.Edges { + if !e.Inherited { + astMap.Nodes = append(astMap.Nodes, d2ast.MakeMapNodeBox(e.AST().(d2ast.MapNode))) + } + } + return astMap +} + func (m *Map) AST() d2ast.Node { if m == nil { return nil diff --git a/d2ir/merge.go b/d2ir/merge.go index 15ba2a9ec..7cb4748aa 100644 --- a/d2ir/merge.go +++ b/d2ir/merge.go @@ -4,7 +4,9 @@ func OverlayMap(base, overlay *Map) { for _, of := range overlay.Fields { bf := base.GetField(of.Name) if bf == nil { - base.Fields = append(base.Fields, of.Copy(base).(*Field)) + f := of.Copy(base).(*Field) + f.Inherited = true + base.Fields = append(base.Fields, f) continue } OverlayField(bf, of) @@ -13,7 +15,9 @@ func OverlayMap(base, overlay *Map) { for _, oe := range overlay.Edges { bea := base.GetEdges(oe.ID) if len(bea) == 0 { - base.Edges = append(base.Edges, oe.Copy(base).(*Edge)) + e := oe.Copy(base).(*Edge) + e.Inherited = true + base.Edges = append(base.Edges, e) continue } be := bea[0] From 3aed9f59c9de994982fd8423345fa66f75272fa8 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Sun, 18 Jun 2023 23:57:29 -0700 Subject: [PATCH 03/14] use baseAST, add basic tests --- d2oracle/edit.go | 69 +- d2oracle/edit_test.go | 50 ++ d2oracle/get.go | 49 ++ .../d2oracle/TestCreate/layers-basic.exp.json | 430 ++++++++++++ .../TestCreate/scenarios-basic.exp.json | 585 ++++++++++++++++ .../d2oracle/TestCreate/steps-basic.exp.json | 632 ++++++++++++++++++ 6 files changed, 1789 insertions(+), 26 deletions(-) create mode 100644 testdata/d2oracle/TestCreate/layers-basic.exp.json create mode 100644 testdata/d2oracle/TestCreate/scenarios-basic.exp.json create mode 100644 testdata/d2oracle/TestCreate/steps-basic.exp.json diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 89fbcd143..3548fe881 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -25,9 +25,19 @@ import ( func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, newKey string, err error) { defer xdefer.Errorf(&err, "failed to create %#v", key) - boardG := GetBoardGraph(g, boardPath) - if boardG == nil { - return nil, "", fmt.Errorf("board %v not found", boardPath) + boardG := g + baseBoardG := g + + if len(boardPath) > 0 { + boardG = GetBoardGraph(g, boardPath) + if boardG == nil { + return nil, "", fmt.Errorf("board %v not found", boardPath) + } + + baseBoardG, err = recompile(g, boardG.BaseAST) + if err != nil { + return nil, "", err + } } newKey, edge, err := generateUniqueKey(boardG, key, nil, nil) @@ -36,15 +46,22 @@ func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, } if edge { - err = _set(boardG, key, nil, nil) + err = _set(boardG, baseBoardG, key, nil, nil) } else { - err = _set(boardG, newKey, nil, nil) + err = _set(boardG, baseBoardG, newKey, nil, nil) } - println(d2format.Format(boardG.AST)) + + if len(boardPath) > 0 { + replaced := ReplaceBoardNode(g.AST, baseBoardG.AST, boardPath) + if !replaced { + return nil, "", fmt.Errorf("board %v AST not found", boardPath) + } + } + if err != nil { return nil, "", err } - g, err = recompile(g) + g, err = recompile(g, g.AST) if err != nil { return nil, "", err } @@ -66,12 +83,12 @@ func Set(g *d2graph.Graph, key string, tag, value *string) (_ *d2graph.Graph, er defer xdefer.Errorf(&err, "failed to set %#v to %#v", key, valueHelp) } - err = _set(g, key, tag, value) + err = _set(g, g, key, tag, value) if err != nil { return nil, err } - return recompile(g) + return recompile(g, g.AST) } func ReconnectEdge(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (_ *d2graph.Graph, err error) { @@ -208,7 +225,7 @@ func ReconnectEdge(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (_ } } - return recompile(g) + return recompile(g, g.AST) } func pathFromScopeKey(g *d2graph.Graph, key *d2ast.Key, scopeak []string) ([]*d2ast.StringBox, error) { @@ -240,9 +257,9 @@ func pathFromScopeObj(g *d2graph.Graph, key *d2ast.Key, fromScope *d2graph.Objec return pathFromScopeKey(g, key, scopeak) } -func recompile(g *d2graph.Graph) (*d2graph.Graph, error) { - s := d2format.Format(g.AST) - g, err := d2compiler.Compile(g.AST.Range.Path, strings.NewReader(s), nil) +func recompile(g *d2graph.Graph, ast *d2ast.Map) (*d2graph.Graph, error) { + s := d2format.Format(ast) + g, err := d2compiler.Compile(ast.Range.Path, strings.NewReader(s), nil) if err != nil { return nil, fmt.Errorf("failed to recompile:\n%s\n%w", s, err) } @@ -250,7 +267,7 @@ func recompile(g *d2graph.Graph) (*d2graph.Graph, error) { } // TODO merge flat styles -func _set(g *d2graph.Graph, key string, tag, value *string) error { +func _set(g, baseG *d2graph.Graph, key string, tag, value *string) error { if tag != nil { if hasSpace(*tag) { return fmt.Errorf("spaces are not allowed in blockstring tags") @@ -278,7 +295,7 @@ func _set(g *d2graph.Graph, key string, tag, value *string) error { }) } - scope := g.AST + scope := baseG.AST edgeTrimCommon(mk) obj := g.Root toSkip := 1 @@ -758,10 +775,10 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { } } } - return recompile(g) + return recompile(g, g.AST) } - prevG, _ := recompile(g) + prevG, _ := recompile(g, g.AST) g, err = renameConflictsToParent(g, mk.Key) if err != nil { @@ -782,7 +799,7 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { return nil, err } - return recompile(g) + return recompile(g, g.AST) } func bumpChildrenUnderscores(m *d2ast.Map) { @@ -1021,7 +1038,7 @@ func deleteReserved(g *d2graph.Graph, mk *d2ast.Key) (*d2graph.Graph, error) { if err := deleteEdgeField(g, e, targetKey.Path[len(targetKey.Path)-1].Unbox().ScalarString()); err != nil { return nil, err } - return recompile(g) + return recompile(g, g.AST) } isStyleKey := false @@ -1060,7 +1077,7 @@ func deleteReserved(g *d2graph.Graph, mk *d2ast.Key) (*d2graph.Graph, error) { } } - return recompile(g) + return recompile(g, g.AST) } func deleteMapField(m *d2ast.Map, field string) { @@ -1124,7 +1141,7 @@ func deleteObjField(g *d2graph.Graph, obj *d2graph.Object, field string) error { copy(tmpNodes, ref.Scope.Nodes) // If I delete this, will the object still exist? deleteFromMap(ref.Scope, ref.MapKey) - g2, err := recompile(g) + g2, err := recompile(g, g.AST) if err != nil { return err } @@ -1419,10 +1436,10 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra ref.MapKey.Edges[ref.MapKeyEdgeIndex].SrcArrow = mk2.Edges[0].SrcArrow ref.MapKey.Edges[ref.MapKeyEdgeIndex].DstArrow = mk2.Edges[0].DstArrow } - return recompile(g) + return recompile(g, g.AST) } - prevG, _ := recompile(g) + prevG, _ := recompile(g, g.AST) ak := d2graph.Key(mk.Key) ak2 := d2graph.Key(mk2.Key) @@ -1828,7 +1845,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return nil, err } - return recompile(g) + return recompile(g, g.AST) } // filterReserved takes a Value and splits it into 2 @@ -1940,7 +1957,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string, includeDescendants bo if err != nil { return err } - tmpG, _ := recompile(prevG) + tmpG, _ := recompile(prevG, prevG.AST) appendMapKey(tmpG.AST, valueMK) if to == nil { deltas, err := DeleteIDDeltas(tmpG, *from) @@ -1985,7 +2002,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string, includeDescendants bo if err != nil { return err } - tmpG, _ := recompile(prevG) + tmpG, _ := recompile(prevG, prevG.AST) appendMapKey(tmpG.AST, valueMK) if to == nil { deltas, err := DeleteIDDeltas(tmpG, *from) diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index f582aa306..b01e0f80a 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -479,6 +479,56 @@ layers: { b } } +`, + }, + { + name: "scenarios-basic", + + text: `a +b +scenarios: { + x: { + a + } +} +`, + key: `c`, + boardPath: []string{"root", "scenarios", "x"}, + + expKey: `c`, + exp: `a +b +scenarios: { + x: { + a + c + } +} +`, + }, + { + name: "steps-basic", + + text: `a +d +steps: { + x: { + b + } +} +`, + key: `c`, + boardPath: []string{"root", "steps", "x"}, + + expKey: `c`, + exp: `a +d +steps: { + x: { + b + c + } +} `, }, } diff --git a/d2oracle/get.go b/d2oracle/get.go index c2bce9596..c17bbbb54 100644 --- a/d2oracle/get.go +++ b/d2oracle/get.go @@ -51,6 +51,55 @@ func GetBoardGraph(g *d2graph.Graph, boardPath []string) *d2graph.Graph { return nil } +func ReplaceBoardNode(ast, ast2 *d2ast.Map, boardPath []string) bool { + if len(boardPath) == 0 { + return false + } + switch boardPath[0] { + case "root": + return ReplaceBoardNode(ast, ast2, boardPath[1:]) + case "layers": + if len(boardPath) < 2 { + return false + } + for _, n := range ast.Nodes { + if n.MapKey != nil && n.MapKey.Key != nil && n.MapKey.Key.Path[0].Unbox().ScalarString() == "layers" { + return ReplaceBoardNode(n.MapKey.Value.Map, ast2, boardPath[1:]) + } + } + case "scenarios": + if len(boardPath) < 2 { + return false + } + for _, n := range ast.Nodes { + if n.MapKey != nil && n.MapKey.Key != nil && n.MapKey.Key.Path[0].Unbox().ScalarString() == "scenarios" { + return ReplaceBoardNode(n.MapKey.Value.Map, ast2, boardPath[1:]) + } + } + case "steps": + if len(boardPath) < 2 { + return false + } + for _, n := range ast.Nodes { + if n.MapKey != nil && n.MapKey.Key != nil && n.MapKey.Key.Path[0].Unbox().ScalarString() == "steps" { + return ReplaceBoardNode(n.MapKey.Value.Map, ast2, boardPath[1:]) + } + } + default: + for _, n := range ast.Nodes { + if n.MapKey != nil && n.MapKey.Key != nil && n.MapKey.Key.Path[0].Unbox().ScalarString() == boardPath[0] { + if len(boardPath) == 1 { + n.MapKey.Value.Map.Nodes = ast2.Nodes + return true + } + return ReplaceBoardNode(n.MapKey.Value.Map, ast2, boardPath[1:]) + } + } + } + + return false +} + func GetChildrenIDs(g *d2graph.Graph, absID string) (ids []string, _ error) { mk, err := d2parser.ParseMapKey(absID) if err != nil { diff --git a/testdata/d2oracle/TestCreate/layers-basic.exp.json b/testdata/d2oracle/TestCreate/layers-basic.exp.json new file mode 100644 index 000000000..4fe04884d --- /dev/null +++ b/testdata/d2oracle/TestCreate/layers-basic.exp.json @@ -0,0 +1,430 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-7:0:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-6:1:36", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:8:10-6:1:36", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-5:3:34", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:5:17-5:3:34", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": ",0:0:0-1:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json new file mode 100644 index 000000000..539a60b79 --- /dev/null +++ b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json @@ -0,0 +1,585 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-8:0:42", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-7:1:41", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-2:9:13", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-2:9:13", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:11:15-7:1:41", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-6:3:39", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-3:3:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-3:3:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:5:22-6:3:39", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": ",0:0:0-1:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "c", + "id_val": "c", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "c" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/steps-basic.exp.json b/testdata/d2oracle/TestCreate/steps-basic.exp.json new file mode 100644 index 000000000..72578651c --- /dev/null +++ b/testdata/d2oracle/TestCreate/steps-basic.exp.json @@ -0,0 +1,632 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-8:0:38", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-7:1:37", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-2:5:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-2:5:9", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:7:11-7:1:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-6:3:35", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-3:3:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-3:3:16", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:5:18-6:3:35", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "steps": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": ",0:0:0-1:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "c", + "id_val": "c", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "c" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} From a25f418c12e7d16271d907ba141f963707c06aac Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 19 Jun 2023 10:28:44 -0700 Subject: [PATCH 04/14] new implementation --- d2compiler/compile.go | 44 +- d2oracle/edit.go | 52 +- d2oracle/edit_test.go | 46 + .../d2oracle/TestCreate/edge-dupe.exp.json | 205 +++++ .../d2oracle/TestCreate/layers-basic.exp.json | 20 +- .../TestCreate/layers-edge-duplicate.exp.json | 812 ++++++++++++++++++ .../d2oracle/TestCreate/layers-edge.exp.json | 573 ++++++++++++ .../TestCreate/scenarios-basic.exp.json | 20 +- .../d2oracle/TestCreate/steps-basic.exp.json | 20 +- 9 files changed, 1737 insertions(+), 55 deletions(-) create mode 100644 testdata/d2oracle/TestCreate/edge-dupe.exp.json create mode 100644 testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json create mode 100644 testdata/d2oracle/TestCreate/layers-edge.exp.json diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 6bf07ecd7..65d528aac 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -111,7 +111,7 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName g2 := d2graph.NewGraph() g2.Parent = g g2.AST = f.Map().AST().(*d2ast.Map) - g2.BaseAST = f.Map().BaseAST().(*d2ast.Map) + g2.BaseAST = findFieldAST(g.AST, f) c.compileBoard(g2, f.Map()) g2.Name = f.Name switch fieldName { @@ -125,6 +125,48 @@ func (c *compiler) compileBoardsField(g *d2graph.Graph, ir *d2ir.Map, fieldName } } +func findFieldAST(ast *d2ast.Map, f *d2ir.Field) *d2ast.Map { + path := []string{} + var curr *d2ir.Field = f + for { + path = append([]string{curr.Name}, path...) + boardKind := d2ir.NodeBoardKind(curr) + if boardKind == "" { + break + } + curr = d2ir.ParentField(curr) + } + + currAST := ast + for len(path) > 0 { + head := path[0] + found := false + for _, n := range currAST.Nodes { + if n.MapKey == nil { + continue + } + if n.MapKey.Key == nil { + continue + } + if len(n.MapKey.Key.Path) != 1 { + continue + } + head2 := n.MapKey.Key.Path[0].Unbox().ScalarString() + if head == head2 { + currAST = n.MapKey.Value.Map + found = true + break + } + } + if !found { + return nil + } + path = path[1:] + } + + return currAST +} + type compiler struct { err *d2parser.ParseError } diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 3548fe881..9cf7e8d4f 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -26,18 +26,16 @@ func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, defer xdefer.Errorf(&err, "failed to create %#v", key) boardG := g - baseBoardG := g + baseAST := g.AST if len(boardPath) > 0 { + // When compiling a nested board, we can read from boardG but only write to baseBoardG boardG = GetBoardGraph(g, boardPath) if boardG == nil { return nil, "", fmt.Errorf("board %v not found", boardPath) } - - baseBoardG, err = recompile(g, boardG.BaseAST) - if err != nil { - return nil, "", err - } + // TODO beter name + baseAST = boardG.BaseAST } newKey, edge, err := generateUniqueKey(boardG, key, nil, nil) @@ -46,13 +44,13 @@ func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, } if edge { - err = _set(boardG, baseBoardG, key, nil, nil) + err = _set(boardG, baseAST, key, nil, nil) } else { - err = _set(boardG, baseBoardG, newKey, nil, nil) + err = _set(boardG, baseAST, newKey, nil, nil) } if len(boardPath) > 0 { - replaced := ReplaceBoardNode(g.AST, baseBoardG.AST, boardPath) + replaced := ReplaceBoardNode(g.AST, baseAST, boardPath) if !replaced { return nil, "", fmt.Errorf("board %v AST not found", boardPath) } @@ -61,7 +59,7 @@ func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, if err != nil { return nil, "", err } - g, err = recompile(g, g.AST) + g, err = recompile(g.AST) if err != nil { return nil, "", err } @@ -83,12 +81,12 @@ func Set(g *d2graph.Graph, key string, tag, value *string) (_ *d2graph.Graph, er defer xdefer.Errorf(&err, "failed to set %#v to %#v", key, valueHelp) } - err = _set(g, g, key, tag, value) + err = _set(g, g.AST, key, tag, value) if err != nil { return nil, err } - return recompile(g, g.AST) + return recompile(g.AST) } func ReconnectEdge(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (_ *d2graph.Graph, err error) { @@ -225,7 +223,7 @@ func ReconnectEdge(g *d2graph.Graph, edgeKey string, srcKey, dstKey *string) (_ } } - return recompile(g, g.AST) + return recompile(g.AST) } func pathFromScopeKey(g *d2graph.Graph, key *d2ast.Key, scopeak []string) ([]*d2ast.StringBox, error) { @@ -257,7 +255,7 @@ func pathFromScopeObj(g *d2graph.Graph, key *d2ast.Key, fromScope *d2graph.Objec return pathFromScopeKey(g, key, scopeak) } -func recompile(g *d2graph.Graph, ast *d2ast.Map) (*d2graph.Graph, error) { +func recompile(ast *d2ast.Map) (*d2graph.Graph, error) { s := d2format.Format(ast) g, err := d2compiler.Compile(ast.Range.Path, strings.NewReader(s), nil) if err != nil { @@ -267,7 +265,7 @@ func recompile(g *d2graph.Graph, ast *d2ast.Map) (*d2graph.Graph, error) { } // TODO merge flat styles -func _set(g, baseG *d2graph.Graph, key string, tag, value *string) error { +func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) error { if tag != nil { if hasSpace(*tag) { return fmt.Errorf("spaces are not allowed in blockstring tags") @@ -295,7 +293,7 @@ func _set(g, baseG *d2graph.Graph, key string, tag, value *string) error { }) } - scope := baseG.AST + scope := baseAST edgeTrimCommon(mk) obj := g.Root toSkip := 1 @@ -775,10 +773,10 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { } } } - return recompile(g, g.AST) + return recompile(g.AST) } - prevG, _ := recompile(g, g.AST) + prevG, _ := recompile(g.AST) g, err = renameConflictsToParent(g, mk.Key) if err != nil { @@ -799,7 +797,7 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { return nil, err } - return recompile(g, g.AST) + return recompile(g.AST) } func bumpChildrenUnderscores(m *d2ast.Map) { @@ -1038,7 +1036,7 @@ func deleteReserved(g *d2graph.Graph, mk *d2ast.Key) (*d2graph.Graph, error) { if err := deleteEdgeField(g, e, targetKey.Path[len(targetKey.Path)-1].Unbox().ScalarString()); err != nil { return nil, err } - return recompile(g, g.AST) + return recompile(g.AST) } isStyleKey := false @@ -1077,7 +1075,7 @@ func deleteReserved(g *d2graph.Graph, mk *d2ast.Key) (*d2graph.Graph, error) { } } - return recompile(g, g.AST) + return recompile(g.AST) } func deleteMapField(m *d2ast.Map, field string) { @@ -1141,7 +1139,7 @@ func deleteObjField(g *d2graph.Graph, obj *d2graph.Object, field string) error { copy(tmpNodes, ref.Scope.Nodes) // If I delete this, will the object still exist? deleteFromMap(ref.Scope, ref.MapKey) - g2, err := recompile(g, g.AST) + g2, err := recompile(g.AST) if err != nil { return err } @@ -1436,10 +1434,10 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra ref.MapKey.Edges[ref.MapKeyEdgeIndex].SrcArrow = mk2.Edges[0].SrcArrow ref.MapKey.Edges[ref.MapKeyEdgeIndex].DstArrow = mk2.Edges[0].DstArrow } - return recompile(g, g.AST) + return recompile(g.AST) } - prevG, _ := recompile(g, g.AST) + prevG, _ := recompile(g.AST) ak := d2graph.Key(mk.Key) ak2 := d2graph.Key(mk2.Key) @@ -1845,7 +1843,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return nil, err } - return recompile(g, g.AST) + return recompile(g.AST) } // filterReserved takes a Value and splits it into 2 @@ -1957,7 +1955,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string, includeDescendants bo if err != nil { return err } - tmpG, _ := recompile(prevG, prevG.AST) + tmpG, _ := recompile(prevG.AST) appendMapKey(tmpG.AST, valueMK) if to == nil { deltas, err := DeleteIDDeltas(tmpG, *from) @@ -2002,7 +2000,7 @@ func updateNear(prevG, g *d2graph.Graph, from, to *string, includeDescendants bo if err != nil { return err } - tmpG, _ := recompile(prevG, prevG.AST) + tmpG, _ := recompile(prevG.AST) appendMapKey(tmpG.AST, valueMK) if to == nil { deltas, err := DeleteIDDeltas(tmpG, *from) diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index b01e0f80a..60cb3236e 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -479,6 +479,52 @@ layers: { b } } +`, + }, + { + name: "layers-edge", + + text: `a +layers: { + x: { + a + } +} +`, + key: `a -> b`, + boardPath: []string{"root", "layers", "x"}, + + expKey: `(a -> b)[0]`, + exp: `a +layers: { + x: { + a + a -> b + } +} +`, + }, + { + name: "layers-edge-duplicate", + + text: `a -> b +layers: { + x: { + a -> b + } +} +`, + key: `a -> b`, + boardPath: []string{"root", "layers", "x"}, + + expKey: `(a -> b)[1]`, + exp: `a -> b +layers: { + x: { + a -> b + a -> b + } +} `, }, { diff --git a/testdata/d2oracle/TestCreate/edge-dupe.exp.json b/testdata/d2oracle/TestCreate/edge-dupe.exp.json new file mode 100644 index 000000000..444e8a838 --- /dev/null +++ b/testdata/d2oracle/TestCreate/edge-dupe.exp.json @@ -0,0 +1,205 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-1:0:7", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:6:6", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "x", + "id_val": "x", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "x" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "y", + "id_val": "y", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/edge-dupe.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "y" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/layers-basic.exp.json b/testdata/d2oracle/TestCreate/layers-basic.exp.json index 4fe04884d..c4e489b90 100644 --- a/testdata/d2oracle/TestCreate/layers-basic.exp.json +++ b/testdata/d2oracle/TestCreate/layers-basic.exp.json @@ -259,20 +259,21 @@ ] }, "baseAST": { - "range": ",0:0:0-1:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:5:17-5:3:34", "nodes": [ { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -285,16 +286,17 @@ }, { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } diff --git a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json new file mode 100644 index 000000000..566b24360 --- /dev/null +++ b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json @@ -0,0 +1,812 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-7:0:52", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:6:6", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-6:1:51", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-1:6:13", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-1:6:13", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:8:15-6:1:51", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-5:3:49", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-2:3:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-2:3:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:5:22-5:3:49", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:5:22-5:3:49", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "index": 1, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/layers-edge.exp.json b/testdata/d2oracle/TestCreate/layers-edge.exp.json new file mode 100644 index 000000000..73ac59e37 --- /dev/null +++ b/testdata/d2oracle/TestCreate/layers-edge.exp.json @@ -0,0 +1,573 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-7:0:42", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-6:1:41", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:8:10-6:1:41", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-5:3:39", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:5:17-5:3:39", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:5:17-5:3:39", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json index 539a60b79..4d4833d74 100644 --- a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json @@ -349,20 +349,21 @@ ] }, "baseAST": { - "range": ",0:0:0-1:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:5:22-6:3:39", "nodes": [ { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", "value": [ { - "string": "a" + "string": "a", + "raw_string": "a" } ] } @@ -375,16 +376,17 @@ }, { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } diff --git a/testdata/d2oracle/TestCreate/steps-basic.exp.json b/testdata/d2oracle/TestCreate/steps-basic.exp.json index 72578651c..18b0dc0e5 100644 --- a/testdata/d2oracle/TestCreate/steps-basic.exp.json +++ b/testdata/d2oracle/TestCreate/steps-basic.exp.json @@ -371,20 +371,21 @@ ] }, "baseAST": { - "range": ",0:0:0-1:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:5:18-6:3:35", "nodes": [ { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", "value": [ { - "string": "b" + "string": "b", + "raw_string": "b" } ] } @@ -397,16 +398,17 @@ }, { "map_key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", "key": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", "path": [ { "unquoted_string": { - "range": ",0:0:0-0:0:0", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", "value": [ { - "string": "c" + "string": "c", + "raw_string": "c" } ] } From b2cb2d15ac7f3f49fcdfbede9f2897decb0dcd67 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 19 Jun 2023 10:43:34 -0700 Subject: [PATCH 05/14] more tests --- d2oracle/edit_test.go | 73 ++ .../scenarios-edge-inherited.exp.json | 786 ++++++++++++++++++ .../TestCreate/scenarios-edge.exp.json | 681 +++++++++++++++ .../d2oracle/TestCreate/steps-edge.exp.json | 728 ++++++++++++++++ 4 files changed, 2268 insertions(+) create mode 100644 testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json create mode 100644 testdata/d2oracle/TestCreate/scenarios-edge.exp.json create mode 100644 testdata/d2oracle/TestCreate/steps-edge.exp.json diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 60cb3236e..ceacc1448 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -550,6 +550,54 @@ scenarios: { c } } +`, + }, + { + name: "scenarios-edge", + + text: `a +b +scenarios: { + x: { + a + } +} +`, + key: `a -> b`, + boardPath: []string{"root", "scenarios", "x"}, + + expKey: `(a -> b)[0]`, + exp: `a +b +scenarios: { + x: { + a + a -> b + } +} +`, + }, + { + name: "scenarios-edge-inherited", + + text: `a -> b +scenarios: { + x: { + a + } +} +`, + key: `a -> b`, + boardPath: []string{"root", "scenarios", "x"}, + + expKey: `(a -> b)[1]`, + exp: `a -> b +scenarios: { + x: { + a + a -> b + } +} `, }, { @@ -575,6 +623,31 @@ steps: { c } } +`, + }, + { + name: "steps-edge", + + text: `a +d +steps: { + x: { + b + } +} +`, + key: `d -> b`, + boardPath: []string{"root", "steps", "x"}, + + expKey: `(d -> b)[0]`, + exp: `a +d +steps: { + x: { + b + d -> b + } +} `, }, } diff --git a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json new file mode 100644 index 000000000..9e2880fc8 --- /dev/null +++ b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json @@ -0,0 +1,786 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-7:0:50", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:6:6", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-6:1:49", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-1:9:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-1:9:16", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:11:18-6:1:49", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-5:3:47", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-2:3:23", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-2:3:23", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:5:25-5:3:47", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:5:25-5:3:47", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "index": 1, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json new file mode 100644 index 000000000..91bbc8a5d --- /dev/null +++ b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json @@ -0,0 +1,681 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-8:0:47", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-7:1:46", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-2:9:13", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-2:9:13", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:11:15-7:1:46", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-6:3:44", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-3:3:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-3:3:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:5:22-6:3:44", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:5:22-6:3:44", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestCreate/steps-edge.exp.json b/testdata/d2oracle/TestCreate/steps-edge.exp.json new file mode 100644 index 000000000..b6721480f --- /dev/null +++ b/testdata/d2oracle/TestCreate/steps-edge.exp.json @@ -0,0 +1,728 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-8:0:43", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-7:1:42", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-2:5:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-2:5:9", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:7:11-7:1:42", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-6:3:40", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-3:3:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-3:3:16", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:5:18-6:3:40", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "steps": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "edges": [ + { + "range": ",0:0:0-0:0:0", + "src": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "d" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:5:18-6:3:40", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "edges": [ + { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "src": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": [ + { + "index": 0, + "isCurve": false, + "src_arrow": false, + "dst_arrow": true, + "references": [ + { + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": 0 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} From 21d2c444137bf43d3cba45b67df77da38e70ae58 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 19 Jun 2023 20:06:26 -0700 Subject: [PATCH 06/14] set wip --- d2compiler/compile.go | 1 + d2graph/d2graph.go | 2 +- d2ir/compile.go | 23 +- d2ir/d2ir.go | 7 +- d2ir/import.go | 2 +- d2oracle/edit.go | 61 +- d2oracle/edit_test.go | 158 +++- .../TestCreate/steps-conflict.exp.json | 634 +++++++++++++++ .../layers-unusable-ref-style.exp.json | 576 +++++++++++++ .../TestSet/layers-usable-ref-style.exp.json | 477 +++++++++++ ...scenarios-nested-usable-ref-style.exp.json | 762 ++++++++++++++++++ .../scenarios-unusable-ref-style.exp.json | 596 ++++++++++++++ .../scenarios-usable-ref-style.exp.json | 537 ++++++++++++ 13 files changed, 3809 insertions(+), 27 deletions(-) create mode 100644 testdata/d2oracle/TestCreate/steps-conflict.exp.json create mode 100644 testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json create mode 100644 testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json create mode 100644 testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json create mode 100644 testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json create mode 100644 testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 65d528aac..d99f7994c 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -327,6 +327,7 @@ func (c *compiler) compileField(obj *d2graph.Object, f *d2ir.Field) { MapKey: fr.Context.Key, MapKeyEdgeIndex: fr.Context.EdgeIndex(), Scope: fr.Context.Scope, + ScopeAST: fr.Context.ScopeAST, } if fr.Context.ScopeMap != nil { scopeObjIDA := d2graphIDA(d2ir.BoardIDA(fr.Context.ScopeMap)) diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 77cf7d944..89948fbe4 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -179,7 +179,6 @@ func (a *Attributes) ToArrowhead() d2target.Arrowhead { return d2target.ToArrowhead(a.Shape.Value, filled) } -// TODO references at the root scope should have their Scope set to root graph AST type Reference struct { Key *d2ast.KeyPath `json:"key"` KeyPathIndex int `json:"key_path_index"` @@ -188,6 +187,7 @@ type Reference struct { MapKeyEdgeIndex int `json:"map_key_edge_index"` Scope *d2ast.Map `json:"-"` ScopeObj *Object `json:"-"` + ScopeAST *d2ast.Map `json:"-"` } func (r Reference) MapKeyEdgeDest() bool { diff --git a/d2ir/compile.go b/d2ir/compile.go index 3995efffe..ab087470f 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -44,13 +44,14 @@ func Compile(ast *d2ast.Map, opts *CompileOptions) (*Map, error) { m := &Map{} m.initRoot() m.parent.(*Field).References[0].Context.Scope = ast + m.parent.(*Field).References[0].Context.ScopeAST = ast c.pushImportStack(&d2ast.Import{ Path: []*d2ast.StringBox{d2ast.RawStringBox(ast.GetRange().Path, true)}, }) defer c.popImportStack() - c.compileMap(m, ast) + c.compileMap(m, ast, ast) c.compileClasses(m) if !c.err.Empty() { return nil, c.err @@ -105,7 +106,7 @@ func (c *compiler) overlay(base *Map, f *Field) { f.Composite = base } -func (c *compiler) compileMap(dst *Map, ast *d2ast.Map) { +func (c *compiler) compileMap(dst *Map, ast, scopeAST *d2ast.Map) { for _, n := range ast.Nodes { switch { case n.MapKey != nil: @@ -113,6 +114,7 @@ func (c *compiler) compileMap(dst *Map, ast *d2ast.Map) { Key: n.MapKey, Scope: ast, ScopeMap: dst, + ScopeAST: scopeAST, }) case n.Import != nil: impn, ok := c._import(n.Import) @@ -167,7 +169,7 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) a := &Array{ parent: f, } - c.compileArray(a, refctx.Key.Value.Array) + c.compileArray(a, refctx.Key.Value.Array, refctx.ScopeAST) f.Composite = a } else if refctx.Key.Value.Map != nil { if f.Map() == nil { @@ -175,6 +177,7 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) parent: f, } } + scopeAST := refctx.Key.Value.Map switch NodeBoardKind(f) { case BoardScenario: c.overlay(ParentBoard(f).Map(), f) @@ -190,8 +193,12 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) break } } + case BoardLayer: + default: + // If new board type, use that as the new scope AST, otherwise, carry on + scopeAST = refctx.ScopeAST } - c.compileMap(f.Map(), refctx.Key.Value.Map) + c.compileMap(f.Map(), refctx.Key.Value.Map, scopeAST) switch NodeBoardKind(f) { case BoardScenario, BoardStep: c.compileClasses(f.Map()) @@ -407,7 +414,7 @@ func (c *compiler) compileEdges(refctx *RefContext) { parent: e, } } - c.compileMap(e.Map_, refctx.Key.Value.Map) + c.compileMap(e.Map_, refctx.Key.Value.Map, refctx.ScopeAST) } else if refctx.Key.Value.ScalarBox().Unbox() != nil { e.Primary_ = &Scalar{ parent: e, @@ -418,7 +425,7 @@ func (c *compiler) compileEdges(refctx *RefContext) { } } -func (c *compiler) compileArray(dst *Array, a *d2ast.Array) { +func (c *compiler) compileArray(dst *Array, a *d2ast.Array, scopeAST *d2ast.Map) { for _, an := range a.Nodes { var irv Value switch v := an.Unbox().(type) { @@ -426,13 +433,13 @@ func (c *compiler) compileArray(dst *Array, a *d2ast.Array) { ira := &Array{ parent: dst, } - c.compileArray(ira, v) + c.compileArray(ira, v, scopeAST) irv = ira case *d2ast.Map: irm := &Map{ parent: dst, } - c.compileMap(irm, v) + c.compileMap(irm, v, scopeAST) irv = irm case d2ast.Scalar: irv = &Scalar{ diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 1255d144d..89b82081b 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -208,9 +208,9 @@ func (m *Map) CopyBase(newParent Node) *Map { m2 := m.Copy(newParent).(*Map) for i := range m2.Fields { - if _, ok := had[m2.Fields[i].Name]; !ok { - m2.Fields[i].Inherited = true - } + // if _, ok := had[m2.Fields[i].Name]; !ok { + m2.Fields[i].Inherited = true + // } } for i := range m2.Edges { m2.Edges[i].Inherited = true @@ -572,6 +572,7 @@ type RefContext struct { Key *d2ast.Key `json:"key"` Scope *d2ast.Map `json:"-"` ScopeMap *Map `json:"-"` + ScopeAST *d2ast.Map `json:"-"` } func (rc *RefContext) Copy() *RefContext { diff --git a/d2ir/import.go b/d2ir/import.go index aaad0d035..147130071 100644 --- a/d2ir/import.go +++ b/d2ir/import.go @@ -111,7 +111,7 @@ func (c *compiler) __import(imp *d2ast.Import) (*Map, bool) { ir.initRoot() ir.parent.(*Field).References[0].Context.Scope = ast - c.compileMap(ir, ast) + c.compileMap(ir, ast, ast) c.importCache[impPath] = ir diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 9cf7e8d4f..2171438c1 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -68,7 +68,7 @@ func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, // TODO: update graph in place when compiler can accept single modifications // TODO: go through all references to decide best spot to insert something -func Set(g *d2graph.Graph, key string, tag, value *string) (_ *d2graph.Graph, err error) { +func Set(g *d2graph.Graph, boardPath []string, key string, tag, value *string) (_ *d2graph.Graph, err error) { var valueHelp string if value == nil { valueHelp = fmt.Sprintf("%#v", value) @@ -81,11 +81,31 @@ func Set(g *d2graph.Graph, key string, tag, value *string) (_ *d2graph.Graph, er defer xdefer.Errorf(&err, "failed to set %#v to %#v", key, valueHelp) } - err = _set(g, g.AST, key, tag, value) + boardG := g + baseAST := g.AST + + if len(boardPath) > 0 { + // When compiling a nested board, we can read from boardG but only write to baseBoardG + boardG = GetBoardGraph(g, boardPath) + if boardG == nil { + return nil, fmt.Errorf("board %v not found", boardPath) + } + // TODO beter name + baseAST = boardG.BaseAST + } + + err = _set(boardG, baseAST, key, tag, value) if err != nil { return nil, err } + if len(boardPath) > 0 { + replaced := ReplaceBoardNode(g.AST, baseAST, boardPath) + if !replaced { + return nil, fmt.Errorf("board %v AST not found", boardPath) + } + } + return recompile(g.AST) } @@ -347,13 +367,39 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) } } - if obj.Label.MapKey != nil && obj.Map == nil && (!found || reserved || len(mk.Edges) > 0) { - obj.Map = &d2ast.Map{ + var objK *d2ast.Key + if baseAST != g.AST { + for i, ref := range obj.References { + if ref.ScopeAST == baseAST { + objK = obj.References[i].MapKey + break + } + } + if objK == nil { + appendMapKey(scope, mk) + return nil + } + } + var m *d2ast.Map + if objK != nil { + m = objK.Value.Map + } else { + m = obj.Map + } + + if obj.Label.MapKey != nil && m == nil && (!found || reserved || len(mk.Edges) > 0) { + m2 := &d2ast.Map{ Range: d2ast.MakeRange(",1:0:0-1:0:0"), } - obj.Label.MapKey.Primary = obj.Label.MapKey.Value.ScalarBox() - obj.Label.MapKey.Value = d2ast.MakeValueBox(obj.Map) - scope = obj.Map + if objK == nil { + obj.Map = m2 + objK = obj.Label.MapKey + } else { + objK.Value.Map = m2 + } + objK.Primary = objK.Value.ScalarBox() + objK.Value = d2ast.MakeValueBox(m2) + scope = m2 mk.Key.Path = mk.Key.Path[toSkip-1:] toSkip = 1 @@ -367,7 +413,6 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) return nil } } - ir, err := d2ir.Compile(g.AST, nil) if err != nil { return err diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index ceacc1448..7c1432e1d 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -648,6 +648,31 @@ steps: { d -> b } } +`, + }, + { + name: "steps-conflict", + + text: `a +d +steps: { + x: { + b + } +} +`, + key: `d`, + boardPath: []string{"root", "steps", "x"}, + + expKey: `d 2`, + exp: `a +d +steps: { + x: { + b + d 2 + } +} `, }, } @@ -686,11 +711,12 @@ func TestSet(t *testing.T) { t.Parallel() testCases := []struct { - name string - text string - key string - tag *string - value *string + boardPath []string + name string + text string + key string + tag *string + value *string expErr string exp string @@ -1664,6 +1690,126 @@ six expErr: `failed to set "x.icon" to "one two" "\"three\\nfour\\nfive\\nsix\\n\"": spaces are not allowed in blockstring tags`, }, + { + name: "layers-usable-ref-style", + + text: `a +layers: { + x: { + a + } +} +`, + key: `a.style.opacity`, + value: go2.Pointer(`0.2`), + boardPath: []string{"root", "layers", "x"}, + + exp: `a +layers: { + x: { + a: {style.opacity: 0.2} + } +} +`, + }, + { + name: "layers-unusable-ref-style", + + text: `a +layers: { + x: { + b + } +} +`, + key: `a.style.opacity`, + value: go2.Pointer(`0.2`), + boardPath: []string{"root", "layers", "x"}, + + exp: `a +layers: { + x: { + b + a.style.opacity: 0.2 + } +} +`, + }, + { + name: "scenarios-usable-ref-style", + + text: `a: outer +scenarios: { + x: { + a: inner + } +} +`, + key: `a.style.opacity`, + value: go2.Pointer(`0.2`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: outer +scenarios: { + x: { + a: inner {style.opacity: 0.2} + } +} +`, + }, + { + name: "scenarios-nested-usable-ref-style", + + text: `a: { + b: outer +} +scenarios: { + x: { + a: { + b: inner + } + } +} +`, + key: `a.b.style.opacity`, + value: go2.Pointer(`0.2`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: { + b: outer +} +scenarios: { + x: { + a: { + b: inner {style.opacity: 0.2} + } + } +} +`, + }, + { + name: "scenarios-unusable-ref-style", + + text: `a +scenarios: { + x: { + b + } +} +`, + key: `a.style.opacity`, + value: go2.Pointer(`0.2`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a +scenarios: { + x: { + b + a.style.opacity: 0.2 + } +} +`, + }, } for _, tc := range testCases { @@ -1674,7 +1820,7 @@ six et := editTest{ text: tc.text, testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) { - return d2oracle.Set(g, tc.key, tc.tag, tc.value) + return d2oracle.Set(g, tc.boardPath, tc.key, tc.tag, tc.value) }, exp: tc.exp, diff --git a/testdata/d2oracle/TestCreate/steps-conflict.exp.json b/testdata/d2oracle/TestCreate/steps-conflict.exp.json new file mode 100644 index 000000000..e3c7234c5 --- /dev/null +++ b/testdata/d2oracle/TestCreate/steps-conflict.exp.json @@ -0,0 +1,634 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-8:0:40", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-7:1:39", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-2:5:9", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-2:5:9", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:7:11-7:1:39", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-6:3:37", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-3:3:16", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-3:3:16", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:5:18-6:3:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "value": [ + { + "string": "d 2", + "raw_string": "d 2" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "steps": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "d" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "d 2" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:5:18-6:3:37", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "value": [ + { + "string": "d 2", + "raw_string": "d 2" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d", + "id_val": "d", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,1:0:2-1:1:3", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "d 2", + "id_val": "d 2", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "value": [ + { + "string": "d 2", + "raw_string": "d 2" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "d 2" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json new file mode 100644 index 000000000..3261649fb --- /dev/null +++ b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json @@ -0,0 +1,576 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-7:0:56", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-6:1:55", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:8:10-6:1:55", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-5:3:53", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:5:17-5:3:53", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:24:49", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:5:17-5:3:53", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:24:49", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json new file mode 100644 index 000000000..92c91335a --- /dev/null +++ b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json @@ -0,0 +1,477 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-6:0:53", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-5:1:52", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:8:10-5:1:52", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-4:3:50", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:5:17-4:3:50", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:27:46", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:7:26-3:27:46", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:26:45", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:21:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:13:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:14:33-3:21:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:5:17-4:3:50", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:27:46", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:7:26-3:27:46", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:26:45", + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:21:40", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:13:32", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:14:33-3:21:40", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json new file mode 100644 index 000000000..c42f2831e --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json @@ -0,0 +1,762 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-10:0:95", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-2:1:17", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:3:3-2:1:17", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:10:15", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:5:10-1:10:15", + "value": [ + { + "string": "outer", + "raw_string": "outer" + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-9:1:94", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-3:9:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-3:9:27", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:11:29-9:1:94", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-8:3:92", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-4:3:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-4:3:34", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:5:36-8:3:92", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-7:5:88", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:7:45-7:5:88", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:35:82", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:15:62-6:35:82", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:34:81", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:29:76", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:21:68", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:22:69-6:29:76", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "outer" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:5:36-8:3:92", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-7:5:88", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:7:45-7:5:88", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:35:82", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:15:62-6:35:82", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:34:81", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:29:76", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:21:68", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:22:69-6:29:76", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,1:2:7-1:3:8", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "inner" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json new file mode 100644 index 000000000..6191e2584 --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json @@ -0,0 +1,596 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-7:0:59", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-6:1:58", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-1:9:11", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-1:9:11", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:11:13-6:1:58", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-5:3:56", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-2:3:18", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:5:20-5:3:56", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:24:52", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:5:20-5:3:56", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:24:52", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json new file mode 100644 index 000000000..c429916a3 --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json @@ -0,0 +1,537 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-6:0:69", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:8:8", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:3:3-0:8:8", + "value": [ + { + "string": "outer", + "raw_string": "outer" + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-5:1:68", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-1:9:18", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-1:9:18", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:11:20-5:1:68", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-4:3:66", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-2:3:25", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-2:3:25", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:5:27-4:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:33:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:13:42-3:33:62", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:32:61", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:27:56", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:19:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:20:49-3:27:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "outer" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:5:27-4:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:33:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", + "value": [ + { + "string": "inner", + "raw_string": "inner" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:13:42-3:33:62", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:32:61", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:27:56", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:19:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:20:49-3:27:56", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "inner" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} From 05f1f6005ecf0b2689c59ce2211de4be0894c374 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 11:34:15 -0700 Subject: [PATCH 07/14] fix primary setting --- d2oracle/edit.go | 33 +- d2oracle/edit_test.go | 57 ++ .../scenarios-label-primary-missing.exp.json | 598 ++++++++++++++++++ .../TestSet/scenarios-label-primary.exp.json | 577 +++++++++++++++++ 4 files changed, 1258 insertions(+), 7 deletions(-) create mode 100644 testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json create mode 100644 testdata/d2oracle/TestSet/scenarios-label-primary.exp.json diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 2171438c1..4120240c9 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -353,13 +353,25 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) } obj = o - if obj.Map == nil { + var maybeNewScope *d2ast.Map + if baseAST != g.AST { + writeableRefs := getWriteableRefs(obj, baseAST) + for _, ref := range writeableRefs { + if ref.MapKey != nil && ref.MapKey.Value.Map != nil { + maybeNewScope = ref.MapKey.Value.Map + } + } + } else { + maybeNewScope = obj.Map + } + + if maybeNewScope == nil { // If we find a deeper obj.Map we need to skip this key too. toSkip++ continue } - scope = obj.Map + scope = maybeNewScope mk.Key.Path = mk.Key.Path[toSkip:] toSkip = 1 if len(mk.Key.Path) == 0 { @@ -369,11 +381,9 @@ func _set(g *d2graph.Graph, baseAST *d2ast.Map, key string, tag, value *string) var objK *d2ast.Key if baseAST != g.AST { - for i, ref := range obj.References { - if ref.ScopeAST == baseAST { - objK = obj.References[i].MapKey - break - } + writeableRefs := getWriteableRefs(obj, baseAST) + if len(writeableRefs) > 0 { + objK = writeableRefs[0].MapKey } if objK == nil { appendMapKey(scope, mk) @@ -2915,3 +2925,12 @@ func filterReservedPath(path []*d2ast.StringBox) (filtered []*d2ast.StringBox) { } return } + +func getWriteableRefs(obj *d2graph.Object, writeableAST *d2ast.Map) (out []d2graph.Reference) { + for i, ref := range obj.References { + if ref.ScopeAST == writeableAST { + out = append(out, obj.References[i]) + } + } + return +} diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 7c1432e1d..7fead42c1 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -1808,6 +1808,63 @@ scenarios: { a.style.opacity: 0.2 } } +`, + }, + { + name: "scenarios-label-primary", + + text: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + a: { + style.opacity: 0.3 + } + } +} +`, + key: `a`, + value: go2.Pointer(`b`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + a: b { + style.opacity: 0.3 + } + } +} +`, + }, + { + name: "scenarios-label-primary-missing", + + text: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + b + } +} +`, + key: `a`, + value: go2.Pointer(`b`), + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a: { + style.opacity: 0.2 +} +scenarios: { + x: { + b + a: b + } +} `, }, } diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json new file mode 100644 index 000000000..3fe022577 --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json @@ -0,0 +1,598 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-9:0:69", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-2:1:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:3:3-2:1:27", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:20:25", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:15:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:2:7-1:7:12", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:8:13-1:15:20", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-8:1:68", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:11:39-8:1:68", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-7:3:66", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json new file mode 100644 index 000000000..2a3f1d82f --- /dev/null +++ b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json @@ -0,0 +1,577 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-10:0:96", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-2:1:27", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:3:3-2:1:27", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:20:25", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:15:20", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:2:7-1:7:12", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:8:13-1:15:20", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,1:17:22-1:20:25", + "raw": "0.2", + "value": "1/5" + } + } + } + } + ] + } + } + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-9:1:95", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:11:39-9:1:95", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-8:3:93", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.2" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "opacity" + } + ] + } + } + ] + }, + "primary": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + }, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + }, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "raw": "0.3", + "value": "3/10" + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + }, + { + "key": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": { + "opacity": { + "value": "0.3" + } + }, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} From 975b27f2eb534f7477c2427bf725a05b715ac1c1 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 17:15:57 -0700 Subject: [PATCH 08/14] basic delete --- d2oracle/edit.go | 51 ++- d2oracle/edit_test.go | 65 ++- .../d2oracle/TestDelete/layers-basic.exp.json | 319 +++++++++++++++ .../TestDelete/scenarios-basic.exp.json | 386 ++++++++++++++++++ .../TestDelete/scenarios-inherited.exp.json | 4 + 5 files changed, 815 insertions(+), 10 deletions(-) create mode 100644 testdata/d2oracle/TestDelete/layers-basic.exp.json create mode 100644 testdata/d2oracle/TestDelete/scenarios-basic.exp.json create mode 100644 testdata/d2oracle/TestDelete/scenarios-inherited.exp.json diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 4120240c9..99b8d99f5 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -22,6 +22,12 @@ import ( "oss.terrastruct.com/d2/d2target" ) +type OutsideScopeError struct{} + +func (e OutsideScopeError) Error() string { + return "operation would modify AST outside of given scope" +} + func Create(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, newKey string, err error) { defer xdefer.Errorf(&err, "failed to create %#v", key) @@ -763,7 +769,7 @@ func appendMapKey(m *d2ast.Map, mk *d2ast.Key) { } } -func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { +func Delete(g *d2graph.Graph, boardPath []string, key string) (_ *d2graph.Graph, err error) { defer xdefer.Errorf(&err, "failed to delete %#v", key) mk, err := d2parser.ParseMapKey(key) @@ -779,6 +785,19 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { edgeTrimCommon(mk) } + boardG := g + baseAST := g.AST + + if len(boardPath) > 0 { + // When compiling a nested board, we can read from boardG but only write to baseBoardG + boardG = GetBoardGraph(g, boardPath) + if boardG == nil { + return nil, fmt.Errorf("board %v not found", boardPath) + } + // TODO beter name + baseAST = boardG.BaseAST + } + g2, err := deleteReserved(g, mk) if err != nil { return nil, err @@ -831,28 +850,44 @@ func Delete(g *d2graph.Graph, key string) (_ *d2graph.Graph, err error) { return recompile(g.AST) } - prevG, _ := recompile(g.AST) + prevG, _ := recompile(boardG.AST) - g, err = renameConflictsToParent(g, mk.Key) + boardG, err = renameConflictsToParent(boardG, mk.Key) if err != nil { return nil, err } - obj, ok := g.Root.HasChild(d2graph.Key(mk.Key)) + obj, ok := boardG.Root.HasChild(d2graph.Key(mk.Key)) if !ok { return g, nil } - g, err = deleteObject(g, mk.Key, obj) + if len(boardPath) > 0 { + // TODO null + writeableRefs := getWriteableRefs(obj, baseAST) + if len(writeableRefs) != len(obj.References) { + return nil, OutsideScopeError{} + } + } + + boardG, err = deleteObject(boardG, baseAST, mk.Key, obj) if err != nil { return nil, err } - if err := updateNear(prevG, g, &key, nil, false); err != nil { + if err := updateNear(prevG, boardG, &key, nil, false); err != nil { return nil, err } - return recompile(g.AST) + if len(boardPath) > 0 { + replaced := ReplaceBoardNode(g.AST, baseAST, boardPath) + if !replaced { + return nil, fmt.Errorf("board %v AST not found", boardPath) + } + return recompile(g.AST) + } + + return recompile(boardG.AST) } func bumpChildrenUnderscores(m *d2ast.Map) { @@ -1210,7 +1245,7 @@ func deleteObjField(g *d2graph.Graph, obj *d2graph.Object, field string) error { return nil } -func deleteObject(g *d2graph.Graph, key *d2ast.KeyPath, obj *d2graph.Object) (*d2graph.Graph, error) { +func deleteObject(g *d2graph.Graph, baseAST *d2ast.Map, key *d2ast.KeyPath, obj *d2graph.Object) (*d2graph.Graph, error) { var refEdges []*d2ast.Edge for _, ref := range obj.References { if ref.InEdge() { diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 7fead42c1..68c061e50 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -4872,7 +4872,8 @@ func TestDelete(t *testing.T) { t.Parallel() testCases := []struct { - name string + name string + boardPath []string text string key string @@ -6520,6 +6521,66 @@ cdpdxz cm `, }, + { + name: "layers-basic", + + text: `a +layers: { + x: { + b + c + } +} +`, + key: `c`, + boardPath: []string{"root", "layers", "x"}, + + exp: `a +layers: { + x: { + b + } +} +`, + }, + { + name: "scenarios-basic", + + text: `a +scenarios: { + x: { + b + c + } +} +`, + key: `c`, + boardPath: []string{"root", "scenarios", "x"}, + + exp: `a +scenarios: { + x: { + b + } +} +`, + }, + { + name: "scenarios-inherited", + + text: `a +scenarios: { + x: { + b + c + } +} +`, + key: `a`, + boardPath: []string{"root", "scenarios", "x"}, + + expErr: `failed to delete "a": operation would modify AST outside of given scope`, + }, } for _, tc := range testCases { @@ -6530,7 +6591,7 @@ cm et := editTest{ text: tc.text, testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) { - return d2oracle.Delete(g, tc.key) + return d2oracle.Delete(g, tc.boardPath, tc.key) }, exp: tc.exp, diff --git a/testdata/d2oracle/TestDelete/layers-basic.exp.json b/testdata/d2oracle/TestDelete/layers-basic.exp.json new file mode 100644 index 000000000..a2fa2900f --- /dev/null +++ b/testdata/d2oracle/TestDelete/layers-basic.exp.json @@ -0,0 +1,319 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-6:0:31", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-5:1:30", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:8:10-5:1:30", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-4:3:28", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:5:17-4:3:28", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:5:17-4:3:28", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json new file mode 100644 index 000000000..762c4efc2 --- /dev/null +++ b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json @@ -0,0 +1,386 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-6:0:34", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-5:1:33", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-1:9:11", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-1:9:11", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:11:13-5:1:33", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-4:3:31", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-2:3:18", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:5:20-4:3:31", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "scenarios": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:5:20-4:3:31", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json b/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json new file mode 100644 index 000000000..85a38a782 --- /dev/null +++ b/testdata/d2oracle/TestDelete/scenarios-inherited.exp.json @@ -0,0 +1,4 @@ +{ + "graph": null, + "err": "failed to delete \"a\": operation would modify AST outside of given scope" +} From 1a9d1ffefb9103b511f38031d7d89b250b23ba02 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 17:39:38 -0700 Subject: [PATCH 09/14] basic move --- d2oracle/edit.go | 76 ++- d2oracle/edit_test.go | 49 +- .../d2oracle/TestMove/layers-basic.exp.json | 450 ++++++++++++++++++ .../TestMove/scenarios-out-of-scope.exp.json | 4 + 4 files changed, 554 insertions(+), 25 deletions(-) create mode 100644 testdata/d2oracle/TestMove/layers-basic.exp.json create mode 100644 testdata/d2oracle/TestMove/scenarios-out-of-scope.exp.json diff --git a/d2oracle/edit.go b/d2oracle/edit.go index 99b8d99f5..5ca66601d 100644 --- a/d2oracle/edit.go +++ b/d2oracle/edit.go @@ -1086,7 +1086,8 @@ func renameConflictsToParent(g *d2graph.Graph, key *d2ast.KeyPath) (*d2graph.Gra } for _, k := range renameOrder { var err error - g, err = move(g, k, renames[k], false) + // TODO boardPath + g, err = move(g, nil, k, renames[k], false) if err != nil { return nil, err } @@ -1458,7 +1459,8 @@ func Rename(g *d2graph.Graph, key, newName string) (_ *d2graph.Graph, newKey str mk.Key.Path[len(mk.Key.Path)-1] = d2ast.MakeValueBox(d2ast.RawString(newName, true)).StringBox() } - g, err = move(g, key, d2format.Format(mk), false) + // TODO + g, err = move(g, nil, key, d2format.Format(mk), false) return g, newName, err } @@ -1472,16 +1474,30 @@ func trimReservedSuffix(path []*d2ast.StringBox) []*d2ast.StringBox { } // Does not handle edge keys, on account of edge keys can only be reserved, e.g. (a->b).style.color: red -func Move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (_ *d2graph.Graph, err error) { +func Move(g *d2graph.Graph, boardPath []string, key, newKey string, includeDescendants bool) (_ *d2graph.Graph, err error) { defer xdefer.Errorf(&err, "failed to move: %#v to %#v", key, newKey) - return move(g, key, newKey, includeDescendants) + return move(g, boardPath, key, newKey, includeDescendants) } -func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2graph.Graph, error) { +func move(g *d2graph.Graph, boardPath []string, key, newKey string, includeDescendants bool) (*d2graph.Graph, error) { if key == newKey { return g, nil } - newKey, _, err := generateUniqueKey(g, newKey, nil, nil) + + boardG := g + baseAST := g.AST + + if len(boardPath) > 0 { + // When compiling a nested board, we can read from boardG but only write to baseBoardG + boardG = GetBoardGraph(g, boardPath) + if boardG == nil { + return nil, fmt.Errorf("board %v not found", boardPath) + } + // TODO beter name + baseAST = boardG.BaseAST + } + + newKey, _, err := generateUniqueKey(boardG, newKey, nil, nil) if err != nil { return nil, err } @@ -1497,6 +1513,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra } edgeTrimCommon(mk) edgeTrimCommon(mk2) + if len(mk.Edges) > 0 && mk.EdgeKey == nil { if d2format.Format(mk.Key) != d2format.Format(mk2.Key) { // TODO just prevent moving edges at all @@ -1527,7 +1544,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return recompile(g.AST) } - prevG, _ := recompile(g.AST) + prevG, _ := recompile(boardG.AST) ak := d2graph.Key(mk.Key) ak2 := d2graph.Key(mk2.Key) @@ -1535,20 +1552,27 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra isCrossScope := strings.Join(ak[:len(ak)-1], ".") != strings.Join(ak2[:len(ak2)-1], ".") if isCrossScope && !includeDescendants { - g, err = renameConflictsToParent(g, mk.Key) + boardG, err = renameConflictsToParent(boardG, mk.Key) if err != nil { return nil, err } } - obj, ok := g.Root.HasChild(ak) + obj, ok := boardG.Root.HasChild(ak) if !ok { return nil, fmt.Errorf("key referenced by from does not exist") } - toParent := g.Root + if len(boardPath) > 0 { + writeableRefs := getWriteableRefs(obj, baseAST) + if len(writeableRefs) != len(obj.References) { + return nil, OutsideScopeError{} + } + } + + toParent := boardG.Root if isCrossScope && len(ak2) > 1 { - toParent, ok = g.Root.HasChild(ak2[:len(ak2)-1]) + toParent, ok = boardG.Root.HasChild(ak2[:len(ak2)-1]) if !ok { return nil, fmt.Errorf("key referenced by to parent does not exist") } @@ -1618,7 +1642,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra // 2. Ensure parent node Key has a map to accept moved node. // This map will be what MOVE will append the new key to - toScope := g.AST + toScope := boardG.AST if isCrossScope && len(ak2) > 1 && needsLandingMap { mostNestedParentRefs := getMostNestedRefs(toParent) mapExists := false @@ -1710,7 +1734,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra } absKey.Path = append(absKey.Path, ref.Key.Path...) if !includeDescendants { - hoistRefChildren(g, absKey, ref) + hoistRefChildren(boardG, absKey, ref) } deleteFromMap(ref.Scope, ref.MapKey) detachedMK := &d2ast.Key{Primary: ref.MapKey.Primary, Key: cloneKey(ref.MapKey.Key)} @@ -1752,7 +1776,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return nil, err } - newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) + newPath, err := pathFromScopeKey(boardG, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) if err != nil { return nil, err } @@ -1766,7 +1790,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return nil, err } - newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) + newPath, err := pathFromScopeKey(boardG, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) if err != nil { return nil, err } @@ -1778,7 +1802,7 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra return nil, err } - newPath, err := pathFromScopeKey(g, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) + newPath, err := pathFromScopeKey(boardG, &d2ast.Key{Key: d2ast.MakeKeyPath(append(resolvedParent.AbsIDArray(), resolvedScopeKey...))}, ak2) if err != nil { return nil, err } @@ -1876,11 +1900,11 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra detachedMK := &d2ast.Key{ Key: cloneKey(ref.Key), } - oldPath, err := pathFromScopeObj(g, mk, ref.ScopeObj) + oldPath, err := pathFromScopeObj(boardG, mk, ref.ScopeObj) if err != nil { return nil, err } - newPath, err := pathFromScopeObj(g, mk2, ref.ScopeObj) + newPath, err := pathFromScopeObj(boardG, mk2, ref.ScopeObj) if err != nil { return nil, err } @@ -1911,14 +1935,14 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra // When moving a node connected to an edge, we have to ensure parents continue to exist // e.g. the `c` out of `a.b.c -> ...` // `a.b` needs to exist - newPath, err := pathFromScopeObj(g, mk2, ref.ScopeObj) + newPath, err := pathFromScopeObj(boardG, mk2, ref.ScopeObj) if err != nil { return nil, err } if len(go2.Filter(ref.Key.Path, func(x *d2ast.StringBox) bool { return x.Unbox().ScalarString() != "_" })) > 1 { detachedK := cloneKey(ref.Key) detachedK.Path = detachedK.Path[:len(detachedK.Path)-1] - ensureNode(g, refEdges, ref.ScopeObj, ref.Scope, ref.MapKey, detachedK, false) + ensureNode(boardG, refEdges, ref.ScopeObj, ref.Scope, ref.MapKey, detachedK, false) } if includeDescendants { @@ -1929,11 +1953,19 @@ func move(g *d2graph.Graph, key, newKey string, includeDescendants bool) (*d2gra } } - if err := updateNear(prevG, g, &key, &newKey, includeDescendants); err != nil { + if err := updateNear(prevG, boardG, &key, &newKey, includeDescendants); err != nil { return nil, err } - return recompile(g.AST) + if len(boardPath) > 0 { + replaced := ReplaceBoardNode(g.AST, baseAST, boardPath) + if !replaced { + return nil, fmt.Errorf("board %v AST not found", boardPath) + } + return recompile(g.AST) + } + + return recompile(boardG.AST) } // filterReserved takes a Value and splits it into 2 diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 68c061e50..2128480db 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -2651,8 +2651,9 @@ func TestMove(t *testing.T) { t.Parallel() testCases := []struct { - skip bool - name string + skip bool + name string + boardPath []string text string key string @@ -4833,6 +4834,48 @@ a } `, }, + { + name: "layers-basic", + + text: `a +layers: { + x: { + b + c + } +} +`, + key: `c`, + newKey: `b.c`, + boardPath: []string{"root", "layers", "x"}, + + exp: `a +layers: { + x: { + b: { + c + } + } +} +`, + }, + { + name: "scenarios-out-of-scope", + + text: `a +scenarios: { + x: { + b + c + } +} +`, + key: `a`, + newKey: `b.a`, + boardPath: []string{"root", "scenarios", "x"}, + + expErr: `failed to move: "a" to "b.a": operation would modify AST outside of given scope`, + }, } for _, tc := range testCases { @@ -4848,7 +4891,7 @@ a testFunc: func(g *d2graph.Graph) (*d2graph.Graph, error) { objectsBefore := len(g.Objects) var err error - g, err = d2oracle.Move(g, tc.key, tc.newKey, tc.includeDescendants) + g, err = d2oracle.Move(g, tc.boardPath, tc.key, tc.newKey, tc.includeDescendants) if err == nil { objectsAfter := len(g.Objects) if objectsBefore != objectsAfter { diff --git a/testdata/d2oracle/TestMove/layers-basic.exp.json b/testdata/d2oracle/TestMove/layers-basic.exp.json new file mode 100644 index 000000000..dc8b931af --- /dev/null +++ b/testdata/d2oracle/TestMove/layers-basic.exp.json @@ -0,0 +1,450 @@ +{ + "graph": { + "name": "", + "isFolderOnly": false, + "ast": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-8:0:48", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-0:1:1", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-7:1:47", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-1:6:8", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-1:6:8", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:8:10-7:1:47", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-6:3:45", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-2:3:15", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-2:3:15", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:5:17-6:3:45", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-5:5:41", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:7:26-5:5:41", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "a", + "id_val": "a", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "a" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ], + "layers": [ + { + "name": "x", + "isFolderOnly": false, + "ast": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": ",1:0:0-2:0:0", + "nodes": [ + { + "map_key": { + "range": ",0:0:0-0:0:0", + "key": { + "range": ",0:0:0-0:0:0", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + }, + "baseAST": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:5:17-6:3:45", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-5:5:41", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:7:26-5:5:41", + "nodes": [ + { + "map_key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + ] + } + } + } + } + ] + }, + "root": { + "id": "", + "id_val": "", + "attributes": { + "label": { + "value": "" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + "edges": null, + "objects": [ + { + "id": "b", + "id_val": "b", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "b" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + }, + { + "id": "c", + "id_val": "c", + "references": [ + { + "key": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "path": [ + { + "unquoted_string": { + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "key_path_index": 0, + "map_key_edge_index": -1 + } + ], + "attributes": { + "label": { + "value": "c" + }, + "labelDimensions": { + "width": 0, + "height": 0 + }, + "style": {}, + "near_key": null, + "shape": { + "value": "rectangle" + }, + "direction": { + "value": "" + }, + "constraint": null + }, + "zIndex": 0 + } + ] + } + ] + }, + "err": "" +} diff --git a/testdata/d2oracle/TestMove/scenarios-out-of-scope.exp.json b/testdata/d2oracle/TestMove/scenarios-out-of-scope.exp.json new file mode 100644 index 000000000..8b6a3a125 --- /dev/null +++ b/testdata/d2oracle/TestMove/scenarios-out-of-scope.exp.json @@ -0,0 +1,4 @@ +{ + "graph": null, + "err": "failed to move: \"a\" to \"b.a\": operation would modify AST outside of given scope" +} From 9351a2e2cdd972299e6dc1cf508b5a13698192ca Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 18:27:20 -0700 Subject: [PATCH 10/14] cleanup --- d2ir/compile.go | 3 --- d2ir/d2ir.go | 22 ---------------------- d2ir/merge.go | 8 ++------ 3 files changed, 2 insertions(+), 31 deletions(-) diff --git a/d2ir/compile.go b/d2ir/compile.go index ab087470f..20a03b103 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -155,9 +155,6 @@ func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return } - if f.Inherited { - f.Inherited = false - } if refctx.Key.Primary.Unbox() != nil { f.Primary_ = &Scalar{ diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 89b82081b..711d61f2a 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -197,24 +197,7 @@ func (m *Map) CopyBase(newParent Node) *Map { scenarios := m.DeleteField("scenarios") steps := m.DeleteField("steps") - had := make(map[string]struct{}) - if parentM, ok := newParent.(*Map); ok { - for _, f := range parentM.Fields { - had[f.Name] = struct{}{} - } - } - // TODO pretty sure you don't need one for edges. - // Maybe if both boards had a (x -> y)[0]? - m2 := m.Copy(newParent).(*Map) - for i := range m2.Fields { - // if _, ok := had[m2.Fields[i].Name]; !ok { - m2.Fields[i].Inherited = true - // } - } - for i := range m2.Edges { - m2.Edges[i].Inherited = true - } if layers != nil { m.Fields = append(m.Fields, layers) } @@ -295,9 +278,6 @@ type Field struct { Composite Composite `json:"composite,omitempty"` References []*FieldReference `json:"references,omitempty"` - - // Whether it's from a parent board or imported - Inherited bool `json:"inherited"` } func (f *Field) Copy(newParent Node) Node { @@ -452,8 +432,6 @@ type Edge struct { Map_ *Map `json:"map,omitempty"` References []*EdgeReference `json:"references,omitempty"` - - Inherited bool `json:"inherited"` } func (e *Edge) Copy(newParent Node) Node { diff --git a/d2ir/merge.go b/d2ir/merge.go index 7cb4748aa..15ba2a9ec 100644 --- a/d2ir/merge.go +++ b/d2ir/merge.go @@ -4,9 +4,7 @@ func OverlayMap(base, overlay *Map) { for _, of := range overlay.Fields { bf := base.GetField(of.Name) if bf == nil { - f := of.Copy(base).(*Field) - f.Inherited = true - base.Fields = append(base.Fields, f) + base.Fields = append(base.Fields, of.Copy(base).(*Field)) continue } OverlayField(bf, of) @@ -15,9 +13,7 @@ func OverlayMap(base, overlay *Map) { for _, oe := range overlay.Edges { bea := base.GetEdges(oe.ID) if len(bea) == 0 { - e := oe.Copy(base).(*Edge) - e.Inherited = true - base.Edges = append(base.Edges, e) + base.Edges = append(base.Edges, oe.Copy(base).(*Edge)) continue } be := bea[0] From 16a879e05b349b84ae7f03ad063b9b7fedbf343e Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 18:27:45 -0700 Subject: [PATCH 11/14] cleanup --- d2ir/d2ir.go | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 711d61f2a..7234256f7 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -917,25 +917,6 @@ func (a *Array) AST() d2ast.Node { return astArray } -func (m *Map) BaseAST() d2ast.Node { - if m == nil { - return nil - } - astMap := &d2ast.Map{} - astMap.Range = d2ast.MakeRange(",0:0:0-1:0:0") - for _, f := range m.Fields { - if !f.Inherited { - astMap.Nodes = append(astMap.Nodes, d2ast.MakeMapNodeBox(f.AST().(d2ast.MapNode))) - } - } - for _, e := range m.Edges { - if !e.Inherited { - astMap.Nodes = append(astMap.Nodes, d2ast.MakeMapNodeBox(e.AST().(d2ast.MapNode))) - } - } - return astMap -} - func (m *Map) AST() d2ast.Node { if m == nil { return nil From a1df49c21e73793f1522a68a01248a73167da0db Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 18:55:48 -0700 Subject: [PATCH 12/14] cleanup --- d2graph/d2graph.go | 2 +- docs/examples/lib/2-d2oracle/d2oracle.go | 8 +- .../d2oracle/TestCreate/layers-basic.exp.json | 51 -------- .../TestCreate/layers-edge-duplicate.exp.json | 97 --------------- .../d2oracle/TestCreate/layers-edge.exp.json | 74 ------------ .../TestCreate/scenarios-basic.exp.json | 51 -------- .../scenarios-edge-inherited.exp.json | 74 ------------ .../TestCreate/scenarios-edge.exp.json | 74 ------------ .../d2oracle/TestCreate/steps-basic.exp.json | 51 -------- .../TestCreate/steps-conflict.exp.json | 51 -------- .../d2oracle/TestCreate/steps-edge.exp.json | 74 ------------ .../d2oracle/TestDelete/layers-basic.exp.json | 28 ----- .../TestDelete/scenarios-basic.exp.json | 28 ----- .../d2oracle/TestMove/layers-basic.exp.json | 57 --------- .../layers-unusable-ref-style.exp.json | 79 ------------ .../TestSet/layers-usable-ref-style.exp.json | 74 ------------ .../scenarios-label-primary-missing.exp.json | 61 ---------- .../TestSet/scenarios-label-primary.exp.json | 84 ------------- ...scenarios-nested-usable-ref-style.exp.json | 113 ------------------ .../scenarios-unusable-ref-style.exp.json | 79 ------------ .../scenarios-usable-ref-style.exp.json | 84 ------------- 21 files changed, 5 insertions(+), 1289 deletions(-) diff --git a/d2graph/d2graph.go b/d2graph/d2graph.go index 89948fbe4..d3afb199f 100644 --- a/d2graph/d2graph.go +++ b/d2graph/d2graph.go @@ -43,7 +43,7 @@ type Graph struct { IsFolderOnly bool `json:"isFolderOnly"` AST *d2ast.Map `json:"ast"` // BaseAST is the AST of the original graph without inherited fields and edges - BaseAST *d2ast.Map `json:"baseAST,omitempty"` + BaseAST *d2ast.Map `json:"-"` Root *Object `json:"root"` Edges []*Edge `json:"edges"` diff --git a/docs/examples/lib/2-d2oracle/d2oracle.go b/docs/examples/lib/2-d2oracle/d2oracle.go index cb30cfa5a..8f37024e2 100644 --- a/docs/examples/lib/2-d2oracle/d2oracle.go +++ b/docs/examples/lib/2-d2oracle/d2oracle.go @@ -21,14 +21,14 @@ func main() { }) // Create a shape with the ID, "meow" - graph, _, _ = d2oracle.Create(graph, "meow") + graph, _, _ = d2oracle.Create(graph, nil, "meow") // Style the shape green color := "green" - graph, _ = d2oracle.Set(graph, "meow.style.fill", nil, &color) + graph, _ = d2oracle.Set(graph, nil, "meow.style.fill", nil, &color) // Create a shape with the ID, "cat" - graph, _, _ = d2oracle.Create(graph, "cat") + graph, _, _ = d2oracle.Create(graph, nil, "cat") // Move the shape "meow" inside the container "cat" - graph, _ = d2oracle.Move(graph, "meow", "cat.meow", false) + graph, _ = d2oracle.Move(graph, nil, "meow", "cat.meow", false) // Prints formatted D2 script fmt.Print(d2format.Format(graph.AST)) } diff --git a/testdata/d2oracle/TestCreate/layers-basic.exp.json b/testdata/d2oracle/TestCreate/layers-basic.exp.json index c4e489b90..f8d267be3 100644 --- a/testdata/d2oracle/TestCreate/layers-basic.exp.json +++ b/testdata/d2oracle/TestCreate/layers-basic.exp.json @@ -258,57 +258,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:5:17-5:3:34", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json index 566b24360..078e5df02 100644 --- a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json @@ -491,103 +491,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:5:22-5:3:49", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/layers-edge.exp.json b/testdata/d2oracle/TestCreate/layers-edge.exp.json index 73ac59e37..d812756a0 100644 --- a/testdata/d2oracle/TestCreate/layers-edge.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge.exp.json @@ -325,80 +325,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:5:17-5:3:39", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json index 4d4833d74..ab31d79a1 100644 --- a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json @@ -348,57 +348,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:5:22-6:3:39", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json index 9e2880fc8..091affa29 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json @@ -468,80 +468,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:5:25-5:3:47", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json index 91bbc8a5d..5a8bc5b31 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json @@ -393,80 +393,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:5:22-6:3:44", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/steps-basic.exp.json b/testdata/d2oracle/TestCreate/steps-basic.exp.json index 18b0dc0e5..ed22ad91a 100644 --- a/testdata/d2oracle/TestCreate/steps-basic.exp.json +++ b/testdata/d2oracle/TestCreate/steps-basic.exp.json @@ -370,57 +370,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:5:18-6:3:35", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/steps-conflict.exp.json b/testdata/d2oracle/TestCreate/steps-conflict.exp.json index e3c7234c5..1bfd3dc6c 100644 --- a/testdata/d2oracle/TestCreate/steps-conflict.exp.json +++ b/testdata/d2oracle/TestCreate/steps-conflict.exp.json @@ -370,57 +370,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:5:18-6:3:37", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", - "value": [ - { - "string": "d 2", - "raw_string": "d 2" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestCreate/steps-edge.exp.json b/testdata/d2oracle/TestCreate/steps-edge.exp.json index b6721480f..b718cca29 100644 --- a/testdata/d2oracle/TestCreate/steps-edge.exp.json +++ b/testdata/d2oracle/TestCreate/steps-edge.exp.json @@ -415,80 +415,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:5:18-6:3:40", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", - "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", - "edges": [ - { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", - "src": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestDelete/layers-basic.exp.json b/testdata/d2oracle/TestDelete/layers-basic.exp.json index a2fa2900f..b255ecdde 100644 --- a/testdata/d2oracle/TestDelete/layers-basic.exp.json +++ b/testdata/d2oracle/TestDelete/layers-basic.exp.json @@ -213,34 +213,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:5:17-4:3:28", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", - "key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json index 762c4efc2..870c452a0 100644 --- a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json @@ -235,34 +235,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:5:20-4:3:31", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", - "key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestMove/layers-basic.exp.json b/testdata/d2oracle/TestMove/layers-basic.exp.json index dc8b931af..4d166d56b 100644 --- a/testdata/d2oracle/TestMove/layers-basic.exp.json +++ b/testdata/d2oracle/TestMove/layers-basic.exp.json @@ -270,63 +270,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:5:17-6:3:45", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-5:5:41", - "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:7:26-5:5:41", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", - "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json index 3261649fb..c6b4a4570 100644 --- a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json @@ -348,85 +348,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:5:17-5:3:53", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", - "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:24:49", - "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", - "raw": "0.2", - "value": "1/5" - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json index 92c91335a..4acba418d 100644 --- a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json @@ -321,80 +321,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:5:17-4:3:50", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:27:46", - "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:7:26-3:27:46", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:26:45", - "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:21:40", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:13:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:14:33-3:21:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", - "raw": "0.2", - "value": "1/5" - } - } - } - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json index 3fe022577..5760a1fd4 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json @@ -390,67 +390,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json index 2a3f1d82f..84de4b425 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json @@ -391,90 +391,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - }, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", - "raw": "0.3", - "value": "3/10" - } - } - } - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json index c42f2831e..d8941e11b 100644 --- a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json @@ -482,119 +482,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:5:36-8:3:92", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-7:5:88", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:7:45-7:5:88", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:35:82", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", - "value": [ - { - "string": "inner", - "raw_string": "inner" - } - ] - } - }, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:15:62-6:35:82", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:34:81", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:29:76", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:21:68", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:22:69-6:29:76", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", - "raw": "0.2", - "value": "1/5" - } - } - } - } - ] - } - } - } - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json index 6191e2584..35d7bc74d 100644 --- a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json @@ -348,85 +348,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:5:20-5:3:56", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:24:52", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", - "raw": "0.2", - "value": "1/5" - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", diff --git a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json index c429916a3..3f4ab6c7a 100644 --- a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json @@ -351,90 +351,6 @@ } ] }, - "baseAST": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:5:27-4:3:66", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:33:62", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", - "value": [ - { - "string": "inner", - "raw_string": "inner" - } - ] - } - }, - "value": { - "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:13:42-3:33:62", - "nodes": [ - { - "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:32:61", - "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:27:56", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:19:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:20:49-3:27:56", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", - "raw": "0.2", - "value": "1/5" - } - } - } - } - ] - } - } - } - } - ] - }, "root": { "id": "", "id_val": "", From 9fce1136197e67e051aabbe26c790b69dd4a1f90 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 18:58:04 -0700 Subject: [PATCH 13/14] tests --- d2oracle/edit_test.go | 40 +++++++++++++ .../d2oracle/TestCreate/layers-basic.exp.json | 38 ++++++------ .../TestCreate/layers-edge-duplicate.exp.json | 58 +++++++++---------- .../d2oracle/TestCreate/layers-edge.exp.json | 48 +++++++-------- .../TestCreate/scenarios-basic.exp.json | 38 ++++++------ .../scenarios-edge-inherited.exp.json | 48 +++++++-------- .../TestCreate/scenarios-edge.exp.json | 48 +++++++-------- .../d2oracle/TestCreate/steps-basic.exp.json | 38 ++++++------ .../TestCreate/steps-conflict.exp.json | 38 ++++++------ .../d2oracle/TestCreate/steps-edge.exp.json | 48 +++++++-------- .../d2oracle/TestDelete/layers-basic.exp.json | 28 ++++----- .../TestDelete/scenarios-basic.exp.json | 28 ++++----- .../d2oracle/TestMove/layers-basic.exp.json | 40 ++++++------- .../layers-unusable-ref-style.exp.json | 50 ++++++++-------- .../TestSet/layers-usable-ref-style.exp.json | 42 +++++++------- .../scenarios-label-primary-missing.exp.json | 42 +++++++------- .../TestSet/scenarios-label-primary.exp.json | 46 +++++++-------- ...scenarios-nested-usable-ref-style.exp.json | 58 +++++++++---------- .../scenarios-unusable-ref-style.exp.json | 50 ++++++++-------- .../scenarios-usable-ref-style.exp.json | 46 +++++++-------- 20 files changed, 456 insertions(+), 416 deletions(-) diff --git a/d2oracle/edit_test.go b/d2oracle/edit_test.go index 2128480db..472e07d0c 100644 --- a/d2oracle/edit_test.go +++ b/d2oracle/edit_test.go @@ -462,6 +462,7 @@ after name: "layers-basic", text: `a + layers: { x: { a @@ -473,6 +474,7 @@ layers: { expKey: `b`, exp: `a + layers: { x: { a @@ -485,6 +487,7 @@ layers: { name: "layers-edge", text: `a + layers: { x: { a @@ -496,6 +499,7 @@ layers: { expKey: `(a -> b)[0]`, exp: `a + layers: { x: { a @@ -508,6 +512,7 @@ layers: { name: "layers-edge-duplicate", text: `a -> b + layers: { x: { a -> b @@ -519,6 +524,7 @@ layers: { expKey: `(a -> b)[1]`, exp: `a -> b + layers: { x: { a -> b @@ -532,6 +538,7 @@ layers: { text: `a b + scenarios: { x: { a @@ -544,6 +551,7 @@ scenarios: { expKey: `c`, exp: `a b + scenarios: { x: { a @@ -557,6 +565,7 @@ scenarios: { text: `a b + scenarios: { x: { a @@ -569,6 +578,7 @@ scenarios: { expKey: `(a -> b)[0]`, exp: `a b + scenarios: { x: { a @@ -581,6 +591,7 @@ scenarios: { name: "scenarios-edge-inherited", text: `a -> b + scenarios: { x: { a @@ -592,6 +603,7 @@ scenarios: { expKey: `(a -> b)[1]`, exp: `a -> b + scenarios: { x: { a @@ -605,6 +617,7 @@ scenarios: { text: `a d + steps: { x: { b @@ -617,6 +630,7 @@ steps: { expKey: `c`, exp: `a d + steps: { x: { b @@ -630,6 +644,7 @@ steps: { text: `a d + steps: { x: { b @@ -642,6 +657,7 @@ steps: { expKey: `(d -> b)[0]`, exp: `a d + steps: { x: { b @@ -655,6 +671,7 @@ steps: { text: `a d + steps: { x: { b @@ -667,6 +684,7 @@ steps: { expKey: `d 2`, exp: `a d + steps: { x: { b @@ -1694,6 +1712,7 @@ six name: "layers-usable-ref-style", text: `a + layers: { x: { a @@ -1705,6 +1724,7 @@ layers: { boardPath: []string{"root", "layers", "x"}, exp: `a + layers: { x: { a: {style.opacity: 0.2} @@ -1716,6 +1736,7 @@ layers: { name: "layers-unusable-ref-style", text: `a + layers: { x: { b @@ -1727,6 +1748,7 @@ layers: { boardPath: []string{"root", "layers", "x"}, exp: `a + layers: { x: { b @@ -1739,6 +1761,7 @@ layers: { name: "scenarios-usable-ref-style", text: `a: outer + scenarios: { x: { a: inner @@ -1750,6 +1773,7 @@ scenarios: { boardPath: []string{"root", "scenarios", "x"}, exp: `a: outer + scenarios: { x: { a: inner {style.opacity: 0.2} @@ -1763,6 +1787,7 @@ scenarios: { text: `a: { b: outer } + scenarios: { x: { a: { @@ -1778,6 +1803,7 @@ scenarios: { exp: `a: { b: outer } + scenarios: { x: { a: { @@ -1791,6 +1817,7 @@ scenarios: { name: "scenarios-unusable-ref-style", text: `a + scenarios: { x: { b @@ -1802,6 +1829,7 @@ scenarios: { boardPath: []string{"root", "scenarios", "x"}, exp: `a + scenarios: { x: { b @@ -1816,6 +1844,7 @@ scenarios: { text: `a: { style.opacity: 0.2 } + scenarios: { x: { a: { @@ -1831,6 +1860,7 @@ scenarios: { exp: `a: { style.opacity: 0.2 } + scenarios: { x: { a: b { @@ -1846,6 +1876,7 @@ scenarios: { text: `a: { style.opacity: 0.2 } + scenarios: { x: { b @@ -1859,6 +1890,7 @@ scenarios: { exp: `a: { style.opacity: 0.2 } + scenarios: { x: { b @@ -4838,6 +4870,7 @@ a name: "layers-basic", text: `a + layers: { x: { b @@ -4850,6 +4883,7 @@ layers: { boardPath: []string{"root", "layers", "x"}, exp: `a + layers: { x: { b: { @@ -4863,6 +4897,7 @@ layers: { name: "scenarios-out-of-scope", text: `a + scenarios: { x: { b @@ -6568,6 +6603,7 @@ cm name: "layers-basic", text: `a + layers: { x: { b @@ -6579,6 +6615,7 @@ layers: { boardPath: []string{"root", "layers", "x"}, exp: `a + layers: { x: { b @@ -6590,6 +6627,7 @@ layers: { name: "scenarios-basic", text: `a + scenarios: { x: { b @@ -6601,6 +6639,7 @@ scenarios: { boardPath: []string{"root", "scenarios", "x"}, exp: `a + scenarios: { x: { b @@ -6612,6 +6651,7 @@ scenarios: { name: "scenarios-inherited", text: `a + scenarios: { x: { b diff --git a/testdata/d2oracle/TestCreate/layers-basic.exp.json b/testdata/d2oracle/TestCreate/layers-basic.exp.json index f8d267be3..202a1fdf8 100644 --- a/testdata/d2oracle/TestCreate/layers-basic.exp.json +++ b/testdata/d2oracle/TestCreate/layers-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-7:0:37", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,0:0:0-8:0:38", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-6:1:36", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:0:3-7:1:37", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,1:8:10-6:1:36", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:8:11-7:1:37", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-5:3:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:2:15-6:3:35", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,2:5:17-5:3:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:5:18-6:3:35", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "a", @@ -101,13 +101,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "value": [ { "string": "b", @@ -289,11 +289,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "a", @@ -334,11 +334,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-basic.d2,5:4:30-5:5:31", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json index 078e5df02..6ed250186 100644 --- a/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge-duplicate.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-7:0:52", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,0:0:0-8:0:53", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-6:1:51", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:0:8-7:1:52", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-1:6:13", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:0:8-2:6:14", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:0:7-1:6:13", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:0:8-2:6:14", "value": [ { "string": "layers", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,1:8:15-6:1:51", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:8:16-7:1:52", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-5:3:49", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:2:20-6:3:50", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-2:3:20", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:2:20-3:3:21", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:2:19-2:3:20", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:2:20-3:3:21", "value": [ { "string": "x", @@ -97,20 +97,20 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,2:5:22-5:3:49", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:5:23-6:3:50", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:10:35", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:10:35", "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:5:30", "value": [ { "string": "a", @@ -123,11 +123,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:34-4:10:35", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:34-4:10:35", "value": [ { "string": "b", @@ -147,16 +147,16 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:10:46", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:10:46", "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:5:41", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:5:41", "value": [ { "string": "a", @@ -169,11 +169,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:9:45-5:10:46", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:9:45-5:10:46", "value": [ { "string": "b", @@ -583,11 +583,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:4:28-3:5:29", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:29-4:5:30", "value": [ { "string": "a", @@ -603,11 +603,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:5:41", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:4:39-4:5:40", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:4:40-5:5:41", "value": [ { "string": "a", @@ -648,11 +648,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:34-4:10:35", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,3:9:33-3:10:34", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:34-4:10:35", "value": [ { "string": "b", @@ -668,11 +668,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:9:45-5:10:46", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,4:9:44-4:10:45", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge-duplicate.d2,5:9:45-5:10:46", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestCreate/layers-edge.exp.json b/testdata/d2oracle/TestCreate/layers-edge.exp.json index d812756a0..71fd6031a 100644 --- a/testdata/d2oracle/TestCreate/layers-edge.exp.json +++ b/testdata/d2oracle/TestCreate/layers-edge.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-7:0:42", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,0:0:0-8:0:43", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-6:1:41", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:0:3-7:1:42", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,1:8:10-6:1:41", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:8:11-7:1:42", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-5:3:39", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:2:15-6:3:40", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,2:5:17-5:3:39", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:5:18-6:3:40", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "value": [ { "string": "a", @@ -101,16 +101,16 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:10:36", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:10:36", "src": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:5:31", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:5:31", "value": [ { "string": "a", @@ -123,11 +123,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:9:35-5:10:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:9:35-5:10:36", "value": [ { "string": "b", @@ -387,11 +387,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:24-4:5:25", "value": [ { "string": "a", @@ -407,11 +407,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:5:31", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:4:30-5:5:31", "value": [ { "string": "a", @@ -452,11 +452,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:9:35-5:10:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,4:9:34-4:10:35", + "range": "d2/testdata/d2oracle/TestCreate/layers-edge.d2,5:9:35-5:10:36", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json index ab31d79a1..44f44d42a 100644 --- a/testdata/d2oracle/TestCreate/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-8:0:42", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,0:0:0-9:0:43", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-7:1:41", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:0:5-8:1:42", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-2:9:13", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:0:5-3:9:14", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:0:4-2:9:13", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:0:5-3:9:14", "value": [ { "string": "scenarios", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,2:11:15-7:1:41", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:11:16-8:1:42", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-6:3:39", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:2:20-7:3:40", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-3:3:20", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:2:20-4:3:21", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:2:19-3:3:20", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:2:20-4:3:21", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,3:5:22-6:3:39", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:5:23-7:3:40", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:29-5:5:30", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:29-5:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:29-5:5:30", "value": [ { "string": "a", @@ -124,13 +124,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "value": [ { "string": "c", @@ -399,11 +399,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:29-5:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:29-5:5:30", "value": [ { "string": "a", @@ -489,11 +489,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-basic.d2,6:4:35-6:5:36", "value": [ { "string": "c", diff --git a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json index 091affa29..7d4a47a62 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge-inherited.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-7:0:50", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,0:0:0-8:0:51", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-6:1:49", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:0:8-7:1:50", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-1:9:16", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:0:8-2:9:17", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:0:7-1:9:16", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:0:8-2:9:17", "value": [ { "string": "scenarios", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,1:11:18-6:1:49", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:11:19-7:1:50", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-5:3:47", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:2:23-6:3:48", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-2:3:23", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:2:23-3:3:24", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:2:22-2:3:23", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:2:23-3:3:24", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,2:5:25-5:3:47", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:5:26-6:3:48", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:32-4:5:33", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:32-4:5:33", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:32-4:5:33", "value": [ { "string": "a", @@ -124,16 +124,16 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:10:44", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:10:44", "src": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:5:39", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:5:39", "value": [ { "string": "a", @@ -146,11 +146,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:9:43-5:10:44", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:9:43-5:10:44", "value": [ { "string": "b", @@ -580,11 +580,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:32-4:5:33", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,3:4:31-3:5:32", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:32-4:5:33", "value": [ { "string": "a", @@ -600,11 +600,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:5:39", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:4:37-4:5:38", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:4:38-5:5:39", "value": [ { "string": "a", @@ -665,11 +665,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:9:43-5:10:44", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,4:9:42-4:10:43", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge-inherited.d2,5:9:43-5:10:44", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json index 5a8bc5b31..ed4cf7c75 100644 --- a/testdata/d2oracle/TestCreate/scenarios-edge.exp.json +++ b/testdata/d2oracle/TestCreate/scenarios-edge.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-8:0:47", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,0:0:0-9:0:48", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-7:1:46", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:0:5-8:1:47", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-2:9:13", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:0:5-3:9:14", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:0:4-2:9:13", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:0:5-3:9:14", "value": [ { "string": "scenarios", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,2:11:15-7:1:46", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:11:16-8:1:47", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-6:3:44", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:2:20-7:3:45", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-3:3:20", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:2:20-4:3:21", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:2:19-3:3:20", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:2:20-4:3:21", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,3:5:22-6:3:44", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:5:23-7:3:45", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:29-5:5:30", "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:29-5:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:29-5:5:30", "value": [ { "string": "a", @@ -124,16 +124,16 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:10:41", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:10:41", "src": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:5:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:5:36", "value": [ { "string": "a", @@ -146,11 +146,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:9:40-6:10:41", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:9:40-6:10:41", "value": [ { "string": "b", @@ -475,11 +475,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:29-5:5:30", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,4:4:28-4:5:29", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:29-5:5:30", "value": [ { "string": "a", @@ -495,11 +495,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:5:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:4:34-5:5:35", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:4:35-6:5:36", "value": [ { "string": "a", @@ -560,11 +560,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:9:40-6:10:41", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,5:9:39-5:10:40", + "range": "d2/testdata/d2oracle/TestCreate/scenarios-edge.d2,6:9:40-6:10:41", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestCreate/steps-basic.exp.json b/testdata/d2oracle/TestCreate/steps-basic.exp.json index ed22ad91a..1d1ef21ff 100644 --- a/testdata/d2oracle/TestCreate/steps-basic.exp.json +++ b/testdata/d2oracle/TestCreate/steps-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-8:0:38", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,0:0:0-9:0:39", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-7:1:37", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:0:5-8:1:38", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:0:5-3:5:10", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:0:5-3:5:10", "value": [ { "string": "steps", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,2:7:11-7:1:37", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:7:12-8:1:38", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-6:3:35", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:2:16-7:3:36", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:2:16-4:3:17", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:2:16-4:3:17", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,3:5:18-6:3:35", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:5:19-7:3:36", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -124,13 +124,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "value": [ { "string": "c", @@ -491,11 +491,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -536,11 +536,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-basic.d2,6:4:31-6:5:32", "value": [ { "string": "c", diff --git a/testdata/d2oracle/TestCreate/steps-conflict.exp.json b/testdata/d2oracle/TestCreate/steps-conflict.exp.json index 1bfd3dc6c..5f561da19 100644 --- a/testdata/d2oracle/TestCreate/steps-conflict.exp.json +++ b/testdata/d2oracle/TestCreate/steps-conflict.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-8:0:40", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,0:0:0-9:0:41", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-7:1:39", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:0:5-8:1:40", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:0:5-3:5:10", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:0:5-3:5:10", "value": [ { "string": "steps", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,2:7:11-7:1:39", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:7:12-8:1:40", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-6:3:37", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:2:16-7:3:38", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:2:16-4:3:17", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:2:16-4:3:17", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,3:5:18-6:3:37", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:5:19-7:3:38", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -124,13 +124,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "value": [ { "string": "d 2", @@ -491,11 +491,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -536,11 +536,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,5:4:30-5:7:33", + "range": "d2/testdata/d2oracle/TestCreate/steps-conflict.d2,6:4:31-6:7:34", "value": [ { "string": "d 2", diff --git a/testdata/d2oracle/TestCreate/steps-edge.exp.json b/testdata/d2oracle/TestCreate/steps-edge.exp.json index b718cca29..d97d8265a 100644 --- a/testdata/d2oracle/TestCreate/steps-edge.exp.json +++ b/testdata/d2oracle/TestCreate/steps-edge.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-8:0:43", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,0:0:0-9:0:44", "nodes": [ { "map_key": { @@ -53,13 +53,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-7:1:42", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:0:5-8:1:43", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:0:5-3:5:10", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:0:4-2:5:9", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:0:5-3:5:10", "value": [ { "string": "steps", @@ -73,17 +73,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,2:7:11-7:1:42", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:7:12-8:1:43", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-6:3:40", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:2:16-7:3:41", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:2:16-4:3:17", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:2:15-3:3:16", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:2:16-4:3:17", "value": [ { "string": "x", @@ -97,17 +97,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,3:5:18-6:3:40", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:5:19-7:3:41", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -124,16 +124,16 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:10:37", "edges": [ { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:10:37", "src": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:5:32", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:5:32", "value": [ { "string": "d", @@ -146,11 +146,11 @@ }, "src_arrow": "", "dst": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:9:36-6:10:37", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:9:36-6:10:37", "value": [ { "string": "b", @@ -542,11 +542,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:5:32", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:30-5:5:31", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:4:31-6:5:32", "value": [ { "string": "d", @@ -587,11 +587,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,4:4:24-4:5:25", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:4:25-5:5:26", "value": [ { "string": "b", @@ -607,11 +607,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:9:36-6:10:37", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,5:9:35-5:10:36", + "range": "d2/testdata/d2oracle/TestCreate/steps-edge.d2,6:9:36-6:10:37", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestDelete/layers-basic.exp.json b/testdata/d2oracle/TestDelete/layers-basic.exp.json index b255ecdde..9278c3367 100644 --- a/testdata/d2oracle/TestDelete/layers-basic.exp.json +++ b/testdata/d2oracle/TestDelete/layers-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-6:0:31", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,0:0:0-7:0:32", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-5:1:30", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:0:3-6:1:31", "key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,1:8:10-5:1:30", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:8:11-6:1:31", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-4:3:28", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:2:15-5:3:29", "key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,2:5:17-4:3:28", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:5:18-5:3:29", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "b", @@ -244,11 +244,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestDelete/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json index 870c452a0..987593d7c 100644 --- a/testdata/d2oracle/TestDelete/scenarios-basic.exp.json +++ b/testdata/d2oracle/TestDelete/scenarios-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-6:0:34", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,0:0:0-7:0:35", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-5:1:33", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:0:3-6:1:34", "key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-1:9:11", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:0:3-2:9:12", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:0:2-1:9:11", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:0:3-2:9:12", "value": [ { "string": "scenarios", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,1:11:13-5:1:33", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:11:14-6:1:34", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-4:3:31", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:2:18-5:3:32", "key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-2:3:18", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:2:18-3:3:19", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:2:17-2:3:18", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:2:18-3:3:19", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,2:5:20-4:3:31", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:5:21-5:3:32", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "value": [ { "string": "b", @@ -311,11 +311,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestDelete/scenarios-basic.d2,4:4:27-4:5:28", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestMove/layers-basic.exp.json b/testdata/d2oracle/TestMove/layers-basic.exp.json index 4d166d56b..bf5bea56b 100644 --- a/testdata/d2oracle/TestMove/layers-basic.exp.json +++ b/testdata/d2oracle/TestMove/layers-basic.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-8:0:48", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,0:0:0-9:0:49", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-7:1:47", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:0:3-8:1:48", "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,1:8:10-7:1:47", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:8:11-8:1:48", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-6:3:45", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:2:15-7:3:46", "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,2:5:17-6:3:45", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:5:18-7:3:46", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-5:5:41", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-6:5:42", "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "b", @@ -98,17 +98,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:7:26-5:5:41", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:7:27-6:5:42", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "value": [ { "string": "c", @@ -301,11 +301,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:4:24-4:5:25", "value": [ { "string": "b", @@ -346,11 +346,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,4:6:34-4:7:35", + "range": "d2/testdata/d2oracle/TestMove/layers-basic.d2,5:6:35-5:7:36", "value": [ { "string": "c", diff --git a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json index c6b4a4570..b6e8eafa6 100644 --- a/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-unusable-ref-style.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-7:0:56", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,0:0:0-8:0:57", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-6:1:55", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:0:3-7:1:56", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,1:8:10-6:1:55", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:8:11-7:1:56", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-5:3:53", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:2:15-6:3:54", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,2:5:17-5:3:53", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:5:18-6:3:54", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "value": [ { "string": "b", @@ -101,13 +101,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:24:49", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:24:50", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:19:45", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:5:31", "value": [ { "string": "a", @@ -118,7 +118,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:6:32-5:11:37", "value": [ { "string": "style", @@ -129,7 +129,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:12:38-5:19:45", "value": [ { "string": "opacity", @@ -143,7 +143,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:21:47-5:24:50", "raw": "0.2", "value": "1/5" } @@ -328,7 +328,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:21:46-4:24:49", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:21:47-5:24:50", "raw": "0.2", "value": "1/5" } @@ -379,11 +379,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:24-4:5:25", "value": [ { "string": "b", @@ -424,11 +424,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:19:44", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:19:45", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:4:29-4:5:30", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:4:30-5:5:31", "value": [ { "string": "a", @@ -439,7 +439,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:6:31-4:11:36", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:6:32-5:11:37", "value": [ { "string": "style", @@ -450,7 +450,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,4:12:37-4:19:44", + "range": "d2/testdata/d2oracle/TestSet/layers-unusable-ref-style.d2,5:12:38-5:19:45", "value": [ { "string": "opacity", diff --git a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json index 4acba418d..fc68d6cdf 100644 --- a/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/layers-usable-ref-style.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-6:0:53", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,0:0:0-7:0:54", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-5:1:52", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:0:3-6:1:53", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:0:3-2:6:9", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:0:2-1:6:8", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:0:3-2:6:9", "value": [ { "string": "layers", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,1:8:10-5:1:52", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:8:11-6:1:53", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-4:3:50", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:2:15-5:3:51", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:2:15-3:3:16", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:2:14-2:3:15", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:2:15-3:3:16", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,2:5:17-4:3:50", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:5:18-5:3:51", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:27:46", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:27:47", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:5:25", "value": [ { "string": "a", @@ -98,17 +98,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:7:26-3:27:46", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:7:27-4:27:47", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:26:45", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:8:28-4:26:46", "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:21:40", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:8:28-4:21:41", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:8:27-3:13:32", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:8:28-4:13:33", "value": [ { "string": "style", @@ -119,7 +119,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:14:33-3:21:40", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:14:34-4:21:41", "value": [ { "string": "opacity", @@ -133,7 +133,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:23:43-4:26:46", "raw": "0.2", "value": "1/5" } @@ -301,7 +301,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:23:42-3:26:45", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:23:43-4:26:46", "raw": "0.2", "value": "1/5" } @@ -352,11 +352,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:5:25", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,3:4:23-3:5:24", + "range": "d2/testdata/d2oracle/TestSet/layers-usable-ref-style.d2,4:4:24-4:5:25", "value": [ { "string": "a", diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json index 5760a1fd4..9dd6fd8f1 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary-missing.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-9:0:69", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,0:0:0-10:0:70", "nodes": [ { "map_key": { @@ -76,13 +76,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-8:1:68", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:0:29-9:1:69", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:0:29-4:9:38", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:0:28-3:9:37", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:0:29-4:9:38", "value": [ { "string": "scenarios", @@ -96,17 +96,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,3:11:39-8:1:68", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:11:40-9:1:69", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-7:3:66", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:2:44-8:3:67", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:2:44-5:3:45", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:2:43-4:3:44", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:2:44-5:3:45", "value": [ { "string": "x", @@ -120,17 +120,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,4:5:46-7:3:66", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:5:47-8:3:67", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "value": [ { "string": "b", @@ -147,13 +147,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:8:62", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:4:59-7:8:63", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:4:59-7:5:60", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:4:59-7:5:60", "value": [ { "string": "a", @@ -167,7 +167,7 @@ "primary": {}, "value": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:7:62-7:8:63", "value": [ { "string": "b", @@ -292,7 +292,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:7:61-6:8:62", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:7:62-7:8:63", "value": [ { "string": "b", @@ -441,11 +441,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:4:59-7:5:60", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:58-6:5:59", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,7:4:59-7:5:60", "value": [ { "string": "a", @@ -490,11 +490,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary-missing.d2,6:4:53-6:5:54", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json index 84de4b425..8399c247e 100644 --- a/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-label-primary.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-10:0:96", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,0:0:0-11:0:97", "nodes": [ { "map_key": { @@ -76,13 +76,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-9:1:95", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:0:29-10:1:96", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:0:29-4:9:38", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:0:28-3:9:37", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:0:29-4:9:38", "value": [ { "string": "scenarios", @@ -96,17 +96,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,3:11:39-9:1:95", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:11:40-10:1:96", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-8:3:93", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:2:44-9:3:94", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:2:44-5:3:45", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:2:43-4:3:44", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:2:44-5:3:45", "value": [ { "string": "x", @@ -120,17 +120,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,4:5:46-8:3:93", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:5:47-9:3:94", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-7:5:89", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:4:53-8:5:90", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:4:53-6:5:54", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:4:53-6:5:54", "value": [ { "string": "a", @@ -143,7 +143,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:7:56-6:8:57", "value": [ { "string": "b", @@ -154,17 +154,17 @@ }, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:9:57-7:5:89", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:9:58-8:5:90", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:24:83", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:6:66-7:24:84", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:19:78", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:6:66-7:19:79", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:6:65-6:11:70", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:6:66-7:11:71", "value": [ { "string": "style", @@ -175,7 +175,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:12:71-6:19:78", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:12:72-7:19:79", "value": [ { "string": "opacity", @@ -189,7 +189,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:21:81-7:24:84", "raw": "0.3", "value": "3/10" } @@ -315,7 +315,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:7:55-5:8:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:7:56-6:8:57", "value": [ { "string": "b", @@ -371,7 +371,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:21:80-6:24:83", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,7:21:81-7:24:84", "raw": "0.3", "value": "3/10" } @@ -442,11 +442,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:4:53-6:5:54", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,5:4:52-5:5:53", + "range": "d2/testdata/d2oracle/TestSet/scenarios-label-primary.d2,6:4:53-6:5:54", "value": [ { "string": "a", diff --git a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json index d8941e11b..10d0c34ab 100644 --- a/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-10:0:95", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,0:0:0-11:0:96", "nodes": [ { "map_key": { @@ -69,13 +69,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-9:1:94", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:0:19-10:1:95", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-3:9:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:0:19-4:9:28", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:0:18-3:9:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:0:19-4:9:28", "value": [ { "string": "scenarios", @@ -89,17 +89,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,3:11:29-9:1:94", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:11:30-10:1:95", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-8:3:92", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:2:34-9:3:93", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-4:3:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:2:34-5:3:35", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:2:33-4:3:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:2:34-5:3:35", "value": [ { "string": "x", @@ -113,17 +113,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,4:5:36-8:3:92", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:5:37-9:3:93", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-7:5:88", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:4:43-8:5:89", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:4:43-6:5:44", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:4:43-6:5:44", "value": [ { "string": "a", @@ -137,17 +137,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:7:45-7:5:88", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:7:46-8:5:89", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:35:82", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:6:54-7:35:83", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:6:54-7:7:55", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:6:54-7:7:55", "value": [ { "string": "b", @@ -160,7 +160,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:9:57-7:14:62", "value": [ { "string": "inner", @@ -171,17 +171,17 @@ }, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:15:62-6:35:82", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:15:63-7:35:83", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:34:81", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:16:64-7:34:82", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:29:76", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:16:64-7:29:77", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:16:63-6:21:68", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:16:64-7:21:69", "value": [ { "string": "style", @@ -192,7 +192,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:22:69-6:29:76", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:22:70-7:29:77", "value": [ { "string": "opacity", @@ -206,7 +206,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:31:79-7:34:82", "raw": "0.2", "value": "1/5" } @@ -401,7 +401,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:9:56-6:14:61", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:9:57-7:14:62", "value": [ { "string": "inner", @@ -457,7 +457,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:31:78-6:34:81", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:31:79-7:34:82", "raw": "0.2", "value": "1/5" } @@ -533,11 +533,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:4:43-6:5:44", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,5:4:42-5:5:43", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:4:43-6:5:44", "value": [ { "string": "a", @@ -598,11 +598,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:6:54-7:7:55", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,6:6:53-6:7:54", + "range": "d2/testdata/d2oracle/TestSet/scenarios-nested-usable-ref-style.d2,7:6:54-7:7:55", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json index 35d7bc74d..1b3c4bce4 100644 --- a/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-7:0:59", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,0:0:0-8:0:60", "nodes": [ { "map_key": { @@ -30,13 +30,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-6:1:58", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:0:3-7:1:59", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-1:9:11", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:0:3-2:9:12", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:0:2-1:9:11", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:0:3-2:9:12", "value": [ { "string": "scenarios", @@ -50,17 +50,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,1:11:13-6:1:58", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:11:14-7:1:59", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-5:3:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:2:18-6:3:57", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-2:3:18", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:2:18-3:3:19", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:2:17-2:3:18", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:2:18-3:3:19", "value": [ { "string": "x", @@ -74,17 +74,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,2:5:20-5:3:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:5:21-6:3:57", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "value": [ { "string": "b", @@ -101,13 +101,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:24:52", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:4:33-5:24:53", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:4:33-5:19:48", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:4:33-5:5:34", "value": [ { "string": "a", @@ -118,7 +118,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:6:35-5:11:40", "value": [ { "string": "style", @@ -129,7 +129,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:12:41-5:19:48", "value": [ { "string": "opacity", @@ -143,7 +143,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:21:50-5:24:53", "raw": "0.2", "value": "1/5" } @@ -306,7 +306,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:21:49-4:24:52", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:21:50-5:24:53", "raw": "0.2", "value": "1/5" } @@ -399,11 +399,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:19:47", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:4:33-5:19:48", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:32-4:5:33", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:4:33-5:5:34", "value": [ { "string": "a", @@ -414,7 +414,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:6:34-4:11:39", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:6:35-5:11:40", "value": [ { "string": "style", @@ -425,7 +425,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:12:40-4:19:47", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,5:12:41-5:19:48", "value": [ { "string": "opacity", @@ -470,11 +470,11 @@ "references": [ { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,3:4:26-3:5:27", + "range": "d2/testdata/d2oracle/TestSet/scenarios-unusable-ref-style.d2,4:4:27-4:5:28", "value": [ { "string": "b", diff --git a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json index 3f4ab6c7a..446504d3b 100644 --- a/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json +++ b/testdata/d2oracle/TestSet/scenarios-usable-ref-style.exp.json @@ -3,7 +3,7 @@ "name": "", "isFolderOnly": false, "ast": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-6:0:69", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,0:0:0-7:0:70", "nodes": [ { "map_key": { @@ -40,13 +40,13 @@ }, { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-5:1:68", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:0:10-6:1:69", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-1:9:18", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:0:10-2:9:19", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:0:9-1:9:18", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:0:10-2:9:19", "value": [ { "string": "scenarios", @@ -60,17 +60,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,1:11:20-5:1:68", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:11:21-6:1:69", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-4:3:66", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:2:25-5:3:67", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-2:3:25", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:2:25-3:3:26", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:2:24-2:3:25", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:2:25-3:3:26", "value": [ { "string": "x", @@ -84,17 +84,17 @@ "primary": {}, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,2:5:27-4:3:66", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:5:28-5:3:67", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:33:62", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:4:34-4:33:63", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:4:34-4:5:35", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:4:34-4:5:35", "value": [ { "string": "a", @@ -107,7 +107,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:7:37-4:12:42", "value": [ { "string": "inner", @@ -118,17 +118,17 @@ }, "value": { "map": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:13:42-3:33:62", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:13:43-4:33:63", "nodes": [ { "map_key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:32:61", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:14:44-4:32:62", "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:27:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:14:44-4:27:57", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:14:43-3:19:48", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:14:44-4:19:49", "value": [ { "string": "style", @@ -139,7 +139,7 @@ }, { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:20:49-3:27:56", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:20:50-4:27:57", "value": [ { "string": "opacity", @@ -153,7 +153,7 @@ "primary": {}, "value": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:29:59-4:32:62", "raw": "0.2", "value": "1/5" } @@ -275,7 +275,7 @@ }, "primary": { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:7:36-3:12:41", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:7:37-4:12:42", "value": [ { "string": "inner", @@ -331,7 +331,7 @@ }, "primary": { "number": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:29:58-3:32:61", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:29:59-4:32:62", "raw": "0.2", "value": "1/5" } @@ -402,11 +402,11 @@ }, { "key": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:4:34-4:5:35", "path": [ { "unquoted_string": { - "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,3:4:33-3:5:34", + "range": "d2/testdata/d2oracle/TestSet/scenarios-usable-ref-style.d2,4:4:34-4:5:35", "value": [ { "string": "a", From 2f836a6038f05f4374a1aef06b0b9ac7c24b70bb Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Tue, 20 Jun 2023 18:59:23 -0700 Subject: [PATCH 14/14] d2chaos --- d2chaos/d2chaos.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/d2chaos/d2chaos.go b/d2chaos/d2chaos.go index 910c99935..96f9cd906 100644 --- a/d2chaos/d2chaos.go +++ b/d2chaos/d2chaos.go @@ -73,7 +73,7 @@ func (gs *dslGenState) genNode(containerID string) (string, error) { nodeID = containerID + "." + nodeID } var err error - gs.g, nodeID, err = d2oracle.Create(gs.g, nodeID) + gs.g, nodeID, err = d2oracle.Create(gs.g, nil, nodeID) if err != nil { return "", err } @@ -105,7 +105,7 @@ func (gs *dslGenState) node() error { if complexIDs { maxLen = 256 } - gs.g, err = d2oracle.Set(gs.g, nodeID, nil, go2.Pointer(gs.randStr(maxLen, false))) + gs.g, err = d2oracle.Set(gs.g, nil, nodeID, nil, go2.Pointer(gs.randStr(maxLen, false))) if err != nil { return err } @@ -114,7 +114,7 @@ func (gs *dslGenState) node() error { if gs.roll(25, 75) == 1 { // 75% chance of adding a shape. randShape := gs.randShape() - gs.g, err = d2oracle.Set(gs.g, nodeID+".shape", nil, go2.Pointer(randShape)) + gs.g, err = d2oracle.Set(gs.g, nil, nodeID+".shape", nil, go2.Pointer(randShape)) if err != nil { return err } @@ -159,7 +159,7 @@ func (gs *dslGenState) edge() error { } key := fmt.Sprintf("%s %s%s %s", src, srcArrow, dstArrow, dst) - gs.g, key, err = d2oracle.Create(gs.g, key) + gs.g, key, err = d2oracle.Create(gs.g, nil, key) if err != nil { return err } @@ -168,7 +168,7 @@ func (gs *dslGenState) edge() error { if complexIDs { maxLen = 128 } - gs.g, err = d2oracle.Set(gs.g, key, nil, go2.Pointer(gs.randStr(maxLen, false))) + gs.g, err = d2oracle.Set(gs.g, nil, key, nil, go2.Pointer(gs.randStr(maxLen, false))) if err != nil { return err }