This commit is contained in:
Alexander Wang 2023-06-19 20:06:26 -07:00
parent b2cb2d15ac
commit 21d2c44413
No known key found for this signature in database
GPG key ID: D89FA31966BDBECE
13 changed files with 3809 additions and 27 deletions

View file

@ -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))

View file

@ -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 {

View file

@ -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{

View file

@ -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 {

View file

@ -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

View file

@ -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

View file

@ -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,

634
testdata/d2oracle/TestCreate/steps-conflict.exp.json generated vendored Normal file
View file

@ -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": "<nil>"
}

View file

@ -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": "<nil>"
}

View file

@ -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": "<nil>"
}

View file

@ -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": "<nil>"
}

View file

@ -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": "<nil>"
}

View file

@ -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": "<nil>"
}