diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 3f9c99ad1..fdbe9c9c3 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -720,6 +720,19 @@ func (mk *Key) SetScalar(scalar ScalarBox) { } } +func (mk *Key) HasQueryGlob() bool { + if mk.Key.HasGlob() && len(mk.Edges) == 0 { + return true + } + if mk.EdgeIndex != nil && mk.EdgeIndex.Glob && mk.EdgeKey == nil { + return true + } + if mk.EdgeKey.HasGlob() { + return true + } + return false +} + type KeyPath struct { Range Range `json:"range"` Path []*StringBox `json:"path"` @@ -748,6 +761,9 @@ func (kp *KeyPath) Copy() *KeyPath { } func (kp *KeyPath) HasDoubleGlob() bool { + if kp == nil { + return false + } for _, el := range kp.Path { if el.UnquotedString != nil && el.ScalarString() == "**" { return true @@ -757,6 +773,9 @@ func (kp *KeyPath) HasDoubleGlob() bool { } func (kp *KeyPath) HasGlob() bool { + if kp == nil { + return false + } for _, el := range kp.Path { if el.UnquotedString != nil && len(el.UnquotedString.Pattern) > 0 { return true diff --git a/d2ir/compile.go b/d2ir/compile.go index f88a4abdf..a0783923e 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -22,6 +22,8 @@ type compiler struct { // importCache enables reuse of files imported multiple times. importCache map[string]*Map utf16 bool + + globStack []bool } type CompileOptions struct { @@ -429,6 +431,10 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { if !refctx.Key.Ampersand { return true } + if len(c.globStack) == 0 || !c.globStack[len(c.globStack)-1] { + c.errorf(refctx.Key, "glob filters cannot be used outside globs") + return false + } if len(refctx.Key.Edges) > 0 { return true } @@ -451,16 +457,12 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { } func (c *compiler) _ampersandFilter(f *Field, refctx *RefContext) bool { - f2 := ParentMap(f).Map().GetField(refctx.Key.Key.IDA()...) - if f2 == nil { - return false - } if refctx.Key.Value.ScalarBox().Unbox() == nil { - c.errorf(refctx.Key, "ampersand filters cannot be composites") + c.errorf(refctx.Key, "glob filters cannot be composites") return false } - if a, ok := f2.Composite.(*Array); ok { + if a, ok := f.Composite.(*Array); ok { for _, v := range a.Values { if s, ok := v.(*Scalar); ok { if refctx.Key.Value.ScalarBox().Unbox().ScalarString() == s.Value.ScalarString() { @@ -470,11 +472,11 @@ func (c *compiler) _ampersandFilter(f *Field, refctx *RefContext) bool { } } - if f2.Primary_ == nil { + if f.Primary_ == nil { return false } - if refctx.Key.Value.ScalarBox().Unbox().ScalarString() != f2.Primary_.Value.ScalarString() { + if refctx.Key.Value.ScalarBox().Unbox().ScalarString() != f.Primary_.Value.ScalarString() { return false } @@ -530,7 +532,9 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { // If new board type, use that as the new scope AST, otherwise, carry on scopeAST = refctx.ScopeAST } + c.globStack = append(c.globStack, refctx.Key.HasQueryGlob()) c.compileMap(f.Map(), refctx.Key.Value.Map, scopeAST) + c.globStack = c.globStack[:len(c.globStack)-1] switch NodeBoardKind(f) { case BoardScenario, BoardStep: c.overlayClasses(f.Map()) @@ -767,7 +771,9 @@ func (c *compiler) _compileEdges(refctx *RefContext) { parent: e, } } + c.globStack = append(c.globStack, refctx.Key.HasQueryGlob()) c.compileMap(e.Map_, refctx.Key.Value.Map, refctx.ScopeAST) + c.globStack = c.globStack[:len(c.globStack)-1] } else if refctx.Key.Value.ScalarBox().Unbox() != nil { e.Primary_ = &Scalar{ parent: e, diff --git a/d2ir/filter_test.go b/d2ir/filter_test.go index 54cfdba21..710ba0803 100644 --- a/d2ir/filter_test.go +++ b/d2ir/filter_test.go @@ -74,6 +74,28 @@ catapult: { assertQuery(t, m, 3, 0, nil, "catapult") }, }, + { + name: "edge", + run: func(t testing.TB) { + m, err := compile(t, `x -> y: { + source-arrowhead.shape: diamond + target-arrowhead.shape: diamond +} +x -> y + +(x -> *)[*]: { + &source-arrowhead.shape: diamond + &target-arrowhead.shape: diamond + label: diamond shape arrowheads +} +`) + assert.Success(t, err) + assertQuery(t, m, 7, 2, nil, "") + assertQuery(t, m, 5, 0, nil, "(x -> y)[0]") + assertQuery(t, m, 0, 0, "diamond shape arrowheads", "(x -> y)[0].label") + assertQuery(t, m, 0, 0, nil, "(x -> y)[1]") + }, + }, } runa(t, tca) @@ -97,6 +119,22 @@ catapult: { TestCompile/filters/errors/bad-syntax.d2:9:1: unexpected map termination character } in file map`) }, }, + { + name: "no-glob", + run: func(t testing.TB) { + _, err := compile(t, `jacob.style: { + fill: red + multiple: true +} + +jasmine.style: { + &fill: red + multiple: false +} +`) + assert.ErrorString(t, err, `TestCompile/filters/errors/no-glob.d2:7:3: glob filters cannot be used outside globs`) + }, + }, { name: "composite", run: func(t testing.TB) { @@ -111,7 +149,7 @@ TestCompile/filters/errors/bad-syntax.d2:9:1: unexpected map termination charact } } `) - assert.ErrorString(t, err, `TestCompile/filters/errors/composite.d2:6:2: ampersand filters cannot be composites`) + assert.ErrorString(t, err, `TestCompile/filters/errors/composite.d2:6:2: glob filters cannot be composites`) }, }, } diff --git a/testdata/d2ir/TestCompile/filters/edge.exp.json b/testdata/d2ir/TestCompile/filters/edge.exp.json new file mode 100644 index 000000000..7e65c4f85 --- /dev/null +++ b/testdata/d2ir/TestCompile/filters/edge.exp.json @@ -0,0 +1,2696 @@ +{ + "fields": [ + { + "name": "x", + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,0:0:0-3:1:77", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,0:8:8-3:1:77", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:32:42", + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:32:75", + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,6:0:86-10:1:203", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/filters/edge.d2,6:8:94-6:11:97", + "int": null, + "glob": true + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,6:13:99-10:1:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:32:201", + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,6:0:86-10:1:203", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/filters/edge.d2,6:8:94-6:11:97", + "int": null, + "glob": true + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,6:13:99-10:1:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:32:201", + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "y", + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,0:0:0-3:1:77", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,0:8:8-3:1:77", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:32:42", + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:32:75", + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 0, + "glob": false + }, + "map": { + "fields": [ + { + "name": "source-arrowhead", + "composite": { + "fields": [ + { + "name": "shape", + "primary": { + "value": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:32:42", + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:32:42", + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + } + ] + }, + { + "name": "target-arrowhead", + "composite": { + "fields": [ + { + "name": "shape", + "primary": { + "value": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:32:75", + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:32:75", + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + } + ] + }, + { + "name": "label", + "primary": { + "value": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:32:201", + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,0:0:0-3:1:77", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,0:8:8-3:1:77", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:32:42", + "key": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:23:33", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:1:11-1:17:27", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:18:28-1:23:33", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,1:25:35-1:32:42", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:32:75", + "key": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:23:66", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:1:44-2:17:60", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:18:61-2:23:66", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,2:25:68-2:32:75", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + } + ] + } + } + } + } + }, + { + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,6:0:86-10:1:203", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/filters/edge.d2,6:8:94-6:11:97", + "int": null, + "glob": true + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,6:13:99-10:1:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:32:201", + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "x" + ], + "src_arrow": false, + "dst_path": [ + "y" + ], + "dst_arrow": true, + "index": 1, + "glob": false + }, + "map": { + "fields": null, + "edges": null + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,4:0:78-4:6:84", + "src": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:0:78-4:1:79", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,4:5:83-4:6:84", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "context": { + "edge": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/filters/edge.d2,6:0:86-10:1:203", + "edges": [ + { + "range": "TestCompile/filters/edge.d2,6:1:87-6:7:93", + "src": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:1:87-6:2:88", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,6:6:92-6:7:93", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/filters/edge.d2,6:8:94-6:11:97", + "int": null, + "glob": true + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/edge.d2,6:13:99-10:1:203", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/edge.d2,7:1:102-7:33:134", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:24:125", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:2:103-7:18:119", + "value": [ + { + "string": "source-arrowhead", + "raw_string": "source-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:19:120-7:24:125", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,7:26:127-7:33:134", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,8:1:136-8:33:168", + "ampersand": true, + "key": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:24:159", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:2:137-8:18:153", + "value": [ + { + "string": "target-arrowhead", + "raw_string": "target-arrowhead" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:19:154-8:24:159", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,8:26:161-8:33:168", + "value": [ + { + "string": "diamond", + "raw_string": "diamond" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:32:201", + "key": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:1:170-9:6:175", + "value": [ + { + "string": "label", + "raw_string": "label" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/edge.d2,9:8:177-9:32:201", + "value": [ + { + "string": "diamond shape arrowheads", + "raw_string": "diamond shape arrowheads" + } + ] + } + } + } + } + ] + } + } + } + } + } + ] + } + ] +} diff --git a/testdata/d2ir/TestCompile/filters/errors/no-glob.exp.json b/testdata/d2ir/TestCompile/filters/errors/no-glob.exp.json new file mode 100644 index 000000000..549e146b6 --- /dev/null +++ b/testdata/d2ir/TestCompile/filters/errors/no-glob.exp.json @@ -0,0 +1,750 @@ +{ + "fields": [ + { + "name": "jacob", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/filters/errors/no-glob.d2,1:7:22-1:10:25", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:10:25", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:7:22-1:10:25", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + }, + { + "name": "multiple", + "primary": { + "value": { + "range": "TestCompile/filters/errors/no-glob.d2,2:11:37-2:15:41", + "value": true + } + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:15:41", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/filters/errors/no-glob.d2,2:11:37-2:15:41", + "value": true + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:6:6-0:11:11", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:6:6-0:11:11", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-3:1:43", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:6:6-0:11:11", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/errors/no-glob.d2,0:13:13-3:1:43", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:10:25", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:7:22-1:10:25", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:15:41", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/filters/errors/no-glob.d2,2:11:37-2:15:41", + "value": true + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:6:6-0:11:11", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-3:1:43", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:0:0-0:5:5", + "value": [ + { + "string": "jacob", + "raw_string": "jacob" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,0:6:6-0:11:11", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/errors/no-glob.d2,0:13:13-3:1:43", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:10:25", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:1:16-1:5:20", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,1:7:22-1:10:25", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:15:41", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,2:1:27-2:9:35", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/filters/errors/no-glob.d2,2:11:37-2:15:41", + "value": true + } + } + } + } + ] + } + } + } + } + } + ] + }, + { + "name": "jasmine", + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": null, + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:8:53-5:13:58", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:13:58", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:7:52", + "value": [ + { + "string": "jasmine", + "raw_string": "jasmine" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:8:53-5:13:58", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-8:1:94", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:13:58", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:7:52", + "value": [ + { + "string": "jasmine", + "raw_string": "jasmine" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:8:53-5:13:58", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/errors/no-glob.d2,5:15:60-8:1:94", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,6:2:64-6:12:74", + "ampersand": true, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,6:3:65-6:7:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,6:3:65-6:7:69", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,6:9:71-6:12:74", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:17:92", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:10:85", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:10:85", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/filters/errors/no-glob.d2,7:12:87-7:17:92", + "value": false + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:7:52", + "value": [ + { + "string": "jasmine", + "raw_string": "jasmine" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:13:58", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:7:52", + "value": [ + { + "string": "jasmine", + "raw_string": "jasmine" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:8:53-5:13:58", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-8:1:94", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:13:58", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:0:45-5:7:52", + "value": [ + { + "string": "jasmine", + "raw_string": "jasmine" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,5:8:53-5:13:58", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/filters/errors/no-glob.d2,5:15:60-8:1:94", + "nodes": [ + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,6:2:64-6:12:74", + "ampersand": true, + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,6:3:65-6:7:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,6:3:65-6:7:69", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,6:9:71-6:12:74", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + }, + { + "map_key": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:17:92", + "key": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:10:85", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/errors/no-glob.d2,7:2:77-7:10:85", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/filters/errors/no-glob.d2,7:12:87-7:17:92", + "value": false + } + } + } + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +}