From 21d2c444137bf43d3cba45b67df77da38e70ae58 Mon Sep 17 00:00:00 2001 From: Alexander Wang Date: Mon, 19 Jun 2023 20:06:26 -0700 Subject: [PATCH] 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": "" +}