diff --git a/d2ast/d2ast.go b/d2ast/d2ast.go index 629612c22..83ee1b54b 100644 --- a/d2ast/d2ast.go +++ b/d2ast/d2ast.go @@ -740,6 +740,13 @@ func (kp *KeyPath) IDA() (ida []string) { return ida } +func (kp *KeyPath) Copy() *KeyPath { + kp2 := *kp + kp2.Path = nil + kp2.Path = append(kp2.Path, kp.Path...) + return &kp2 +} + type Edge struct { Range Range `json:"range"` diff --git a/d2ir/compile.go b/d2ir/compile.go index c68330542..962e1ec40 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -396,27 +396,15 @@ func (c *compiler) compileKey(refctx *RefContext) { } func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) { - us, ok := kp.Path[0].Unbox().(*d2ast.UnquotedString) - if ok && us.Pattern != nil { - for _, f := range dst.Fields { - if matchPattern(f.Name, us.Pattern) { - if len(kp.Path) == 1 { - c._compileField(f, refctx) - } else { - // TODO: recurse - } - } - } - return - } - - f, err := dst.EnsureField(kp, refctx) + fa, err := dst.EnsureField(kp, refctx) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return } - c._compileField(f, refctx) + for _, f := range fa { + c._compileField(f, refctx) + } } func (c *compiler) _compileField(f *Field, refctx *RefContext) { @@ -424,7 +412,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { // For vars, if we delete the field, it may just resolve to an outer scope var of the same name // Instead we keep it around, so that resolveSubstitutions can find it if !IsVar(ParentMap(f)) { - dst.DeleteField(f.Name) + ParentMap(f).DeleteField(f.Name) return } } @@ -621,12 +609,17 @@ func (c *compiler) compileLink(refctx *RefContext) { } func (c *compiler) compileEdges(refctx *RefContext) { - if refctx.Key.Key != nil { - f, err := refctx.ScopeMap.EnsureField(refctx.Key.Key, refctx) - if err != nil { - c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) - return - } + if refctx.Key.Key == nil { + c._compileEdges(refctx) + return + } + + fa, err := refctx.ScopeMap.EnsureField(refctx.Key.Key, refctx) + if err != nil { + c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) + return + } + for _, f := range fa { if _, ok := f.Composite.(*Array); ok { c.errorf(refctx.Key.Key, "cannot index into array") return @@ -636,9 +629,13 @@ func (c *compiler) compileEdges(refctx *RefContext) { parent: f, } } - refctx.ScopeMap = f.Map() + refctx2 := *refctx + refctx2.ScopeMap = f.Map() + c._compileEdges(&refctx2) } +} +func (c *compiler) _compileEdges(refctx *RefContext) { eida := NewEdgeIDs(refctx.Key) for i, eid := range eida { if refctx.Key != nil && refctx.Key.Value.Null != nil { @@ -649,19 +646,20 @@ func (c *compiler) compileEdges(refctx *RefContext) { refctx = refctx.Copy() refctx.Edge = refctx.Key.Edges[i] - var e *Edge + var ea []*Edge if eid.Index != nil { - ea := refctx.ScopeMap.GetEdges(eid) + ea = refctx.ScopeMap.GetEdges(eid) if len(ea) == 0 { c.errorf(refctx.Edge, "indexed edge does not exist") continue } - e = ea[0] - e.References = append(e.References, &EdgeReference{ - Context: refctx, - }) - refctx.ScopeMap.appendFieldReferences(0, refctx.Edge.Src, refctx) - refctx.ScopeMap.appendFieldReferences(0, refctx.Edge.Dst, refctx) + for _, e := range ea { + e.References = append(e.References, &EdgeReference{ + Context: refctx, + }) + refctx.ScopeMap.appendFieldReferences(0, refctx.Edge.Src, refctx) + refctx.ScopeMap.appendFieldReferences(0, refctx.Edge.Dst, refctx) + } } else { _, err := refctx.ScopeMap.EnsureField(refctx.Edge.Src, refctx) if err != nil { @@ -674,41 +672,43 @@ func (c *compiler) compileEdges(refctx *RefContext) { continue } - e, err = refctx.ScopeMap.CreateEdge(eid, refctx) + ea, err = refctx.ScopeMap.CreateEdge(eid, refctx) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) continue } } - if refctx.Key.EdgeKey != nil { - if e.Map_ == nil { - e.Map_ = &Map{ - parent: e, - } - } - c.compileField(e.Map_, refctx.Key.EdgeKey, refctx) - } else { - if refctx.Key.Primary.Unbox() != nil { - e.Primary_ = &Scalar{ - parent: e, - Value: refctx.Key.Primary.Unbox(), - } - } - if refctx.Key.Value.Array != nil { - c.errorf(refctx.Key.Value.Unbox(), "edges cannot be assigned arrays") - continue - } else if refctx.Key.Value.Map != nil { + for _, e := range ea { + if refctx.Key.EdgeKey != nil { if e.Map_ == nil { e.Map_ = &Map{ parent: e, } + c.compileField(e.Map_, refctx.Key.EdgeKey, refctx) } - c.compileMap(e.Map_, refctx.Key.Value.Map, refctx.ScopeAST) - } else if refctx.Key.Value.ScalarBox().Unbox() != nil { - e.Primary_ = &Scalar{ - parent: e, - Value: refctx.Key.Value.ScalarBox().Unbox(), + } else { + if refctx.Key.Primary.Unbox() != nil { + e.Primary_ = &Scalar{ + parent: e, + Value: refctx.Key.Primary.Unbox(), + } + } + if refctx.Key.Value.Array != nil { + c.errorf(refctx.Key.Value.Unbox(), "edges cannot be assigned arrays") + continue + } else if refctx.Key.Value.Map != nil { + if e.Map_ == nil { + e.Map_ = &Map{ + parent: e, + } + } + c.compileMap(e.Map_, refctx.Key.Value.Map, refctx.ScopeAST) + } else if refctx.Key.Value.ScalarBox().Unbox() != nil { + e.Primary_ = &Scalar{ + parent: e, + Value: refctx.Key.Value.ScalarBox().Unbox(), + } } } } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index 1160021f4..28d1c6d8e 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -651,7 +651,7 @@ func (m *Map) getField(ida []string) *Field { return nil } -func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext) (*Field, error) { +func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext) ([]*Field, error) { i := 0 for kp.Path[i].Unbox().ScalarString() == "_" { m = ParentMap(m) @@ -663,29 +663,46 @@ func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext) (*Field, error) } i++ } - return m.ensureField(i, kp, refctx) + + var fa []*Field + err := m.ensureField(i, kp, refctx, &fa) + return fa, err } -func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field, error) { +func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, fa *[]*Field) error { + us, ok := kp.Path[i].Unbox().(*d2ast.UnquotedString) + if ok && us.Pattern != nil { + for _, f := range m.Fields { + if matchPattern(f.Name, us.Pattern) { + if i == len(kp.Path)-1 { + *fa = append(*fa, f) + } else if f.Map() != nil { + f.Map().ensureField(i+1, kp, refctx, fa) + } + } + } + return nil + } + head := kp.Path[i].Unbox().ScalarString() if _, ok := d2graph.ReservedKeywords[strings.ToLower(head)]; ok { head = strings.ToLower(head) if _, ok := d2graph.CompositeReservedKeywords[head]; !ok && i < len(kp.Path)-1 { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head)) + return d2parser.Errorf(kp.Path[i].Unbox(), fmt.Sprintf(`"%s" must be the last part of the key`, head)) } } if head == "_" { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) + return d2parser.Errorf(kp.Path[i].Unbox(), `parent "_" can only be used in the beginning of paths, e.g. "_.x"`) } if head == "classes" && NodeBoardKind(m) == "" { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } if findBoardKeyword(head) != -1 && NodeBoardKind(m) == "" { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) + return d2parser.Errorf(kp.Path[i].Unbox(), "%s is only allowed at a board root", head) } for _, f := range m.Fields { @@ -703,17 +720,18 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field, } if i+1 == len(kp.Path) { - return f, nil + *fa = append(*fa, f) + return nil } if _, ok := f.Composite.(*Array); ok { - return nil, d2parser.Errorf(kp.Path[i].Unbox(), "cannot index into array") + return d2parser.Errorf(kp.Path[i].Unbox(), "cannot index into array") } if f.Map() == nil { f.Composite = &Map{ parent: f, } } - return f.Map().ensureField(i+1, kp, refctx) + return f.Map().ensureField(i+1, kp, refctx, fa) } f := &Field{ @@ -730,12 +748,13 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext) (*Field, } m.Fields = append(m.Fields, f) if i+1 == len(kp.Path) { - return f, nil + *fa = append(*fa, f) + return nil } f.Composite = &Map{ parent: f, } - return f.Map().ensureField(i+1, kp, refctx) + return f.Map().ensureField(i+1, kp, refctx, fa) } func (m *Map) DeleteEdge(eid *EdgeID) *Edge { @@ -825,57 +844,128 @@ func (m *Map) GetEdges(eid *EdgeID) []*Edge { return ea } -func (m *Map) CreateEdge(eid *EdgeID, refctx *RefContext) (*Edge, error) { +func (m *Map) CreateEdge(eid *EdgeID, refctx *RefContext) ([]*Edge, error) { + var ea []*Edge + return ea, m.createEdge(eid, refctx, &ea) +} + +func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, ea *[]*Edge) error { if ParentEdge(m) != nil { - return nil, d2parser.Errorf(refctx.Edge, "cannot create edge inside edge") + return d2parser.Errorf(refctx.Edge, "cannot create edge inside edge") } eid, m, common, err := eid.resolve(m) if err != nil { - return nil, d2parser.Errorf(refctx.Edge, err.Error()) + return d2parser.Errorf(refctx.Edge, err.Error()) } if len(common) > 0 { - f, err := m.EnsureField(d2ast.MakeKeyPath(common), nil) + commonEnd := len(refctx.Edge.Src.Path) - len(eid.SrcPath) + commonStart := commonEnd - len(common) + commonKP := refctx.Edge.Src.Copy() + commonKP.Path = commonKP.Path[commonStart:commonEnd] + fa, err := m.EnsureField(commonKP, nil) if err != nil { - return nil, err + return err } - if _, ok := f.Composite.(*Array); ok { - return nil, d2parser.Errorf(refctx.Edge.Src, "cannot index into array") - } - if f.Map() == nil { - f.Composite = &Map{ - parent: f, + for _, f := range fa { + if _, ok := f.Composite.(*Array); ok { + return d2parser.Errorf(refctx.Edge.Src, "cannot index into array") + } + if f.Map() == nil { + f.Composite = &Map{ + parent: f, + } + } + err = f.Map().createEdge(eid, refctx, ea) + if err != nil { + return err } } - return f.Map().CreateEdge(eid, refctx) + return nil } ij := findProhibitedEdgeKeyword(eid.SrcPath...) if ij != -1 { - return nil, d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "reserved keywords are prohibited in edges") + return d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "reserved keywords are prohibited in edges") } ij = findBoardKeyword(eid.SrcPath...) if ij == len(eid.SrcPath)-1 { - return nil, d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") + return d2parser.Errorf(refctx.Edge.Src.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") } - src := m.GetField(eid.SrcPath...) - if NodeBoardKind(src) != "" { - return nil, d2parser.Errorf(refctx.Edge.Src, "cannot create edges between boards") + + srcStart := len(refctx.Edge.Src.Path) - len(eid.SrcPath) + if srcStart < 0 { + srcStart = 0 } + srcKP := refctx.Edge.Src.Copy() + srcKP.Path = srcKP.Path[srcStart:] ij = findProhibitedEdgeKeyword(eid.DstPath...) if ij != -1 { - return nil, d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "reserved keywords are prohibited in edges") + return d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "reserved keywords are prohibited in edges") } ij = findBoardKeyword(eid.DstPath...) if ij == len(eid.DstPath)-1 { - return nil, d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") + return d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") + } + + dstStart := len(refctx.Edge.Dst.Path) - len(eid.DstPath) + if dstStart < 0 { + dstStart = 0 + } + dstKP := refctx.Edge.Dst.Copy() + dstKP.Path = dstKP.Path[dstStart:] + + underscoresCountSrc := 0 + underscoresCountDst := 0 + for _, el := range refctx.Edge.Src.Path { + if el.ScalarString() == "_" { + underscoresCountSrc++ + } + } + for _, el := range refctx.Edge.Dst.Path { + if el.ScalarString() == "_" { + underscoresCountDst++ + } + } + for i := 0; i < underscoresCountDst; i++ { + srcKP.Path = append([]*d2ast.StringBox{d2ast.RawStringBox(eid.SrcPath[i], true)}, srcKP.Path...) + } + for i := 0; i < underscoresCountSrc; i++ { + dstKP.Path = append([]*d2ast.StringBox{d2ast.RawStringBox(eid.DstPath[i], true)}, dstKP.Path...) + } + + srcFA, err := m.EnsureField(srcKP, refctx) + if err != nil { + return err + } + dstFA, err := m.EnsureField(dstKP, refctx) + if err != nil { + return err + } + + for _, src := range srcFA { + for _, dst := range dstFA { + eid2 := eid.Copy() + eid2.SrcPath = RelIDA(m, src) + eid2.DstPath = RelIDA(m, dst) + e, err := m.createEdge2(eid2, refctx, src, dst) + if err != nil { + return err + } + *ea = append(*ea, e) + } + } + return nil +} + +func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, src, dst *Field) (*Edge, error) { + if NodeBoardKind(src) != "" { + return nil, d2parser.Errorf(refctx.Edge.Src, "cannot create edges between boards") } - dst := m.GetField(eid.DstPath...) if NodeBoardKind(dst) != "" { return nil, d2parser.Errorf(refctx.Edge.Dst, "cannot create edges between boards") } - if ParentBoard(src) != ParentBoard(dst) { return nil, d2parser.Errorf(refctx.Edge, "cannot create edges between boards") } @@ -1159,6 +1249,26 @@ func IDA(n Node) (ida []string) { } } +// RelIDA returns the absolute path to n relative to p. +func RelIDA(p, n Node) (ida []string) { + for { + f, ok := n.(*Field) + if ok { + ida = append(ida, f.Name) + if f.Root() { + reverseIDA(ida) + return ida + } + } + f = ParentField(n) + if f == nil || f.Root() || f == p || f.Composite == p { + reverseIDA(ida) + return ida + } + n = f + } +} + func reverseIDA(ida []string) { for i := 0; i < len(ida)/2; i++ { tmp := ida[i] diff --git a/d2ir/pattern_test.go b/d2ir/pattern_test.go index b1709080d..e264e5e02 100644 --- a/d2ir/pattern_test.go +++ b/d2ir/pattern_test.go @@ -10,6 +10,19 @@ func testCompilePatterns(t *testing.T) { t.Parallel() tca := []testCase{ + { + name: "escaped", + run: func(t testing.TB) { + m, err := compile(t, `animal: meow +action: yes +a\*: globbed`) + assert.Success(t, err) + assertQuery(t, m, 3, 0, nil, "") + assertQuery(t, m, 0, 0, "meow", "animal") + assertQuery(t, m, 0, 0, "yes", "action") + assertQuery(t, m, 0, 0, "globbed", `a\*`) + }, + }, { name: "prefix", run: func(t testing.TB) { @@ -71,16 +84,67 @@ t*ink*r*t*inke*: globbed`) }, }, { - name: "escaped", + name: "nested/prefix-suffix/3", run: func(t testing.TB) { - m, err := compile(t, `animal: meow -action: yes -a\*: globbed`) + m, err := compile(t, `animate.constant.tinkertinker: meow +astronaut.constant.thinkerthinker: yes +a*n*t*.constant.t*ink*r*t*inke*: globbed`) assert.Success(t, err) - assertQuery(t, m, 3, 0, nil, "") - assertQuery(t, m, 0, 0, "meow", "animal") - assertQuery(t, m, 0, 0, "yes", "action") - assertQuery(t, m, 0, 0, "globbed", `a\*`) + assertQuery(t, m, 6, 0, nil, "") + assertQuery(t, m, 0, 0, "globbed", "animate.constant.tinkertinker") + assertQuery(t, m, 0, 0, "globbed", "astronaut.constant.thinkerthinker") + }, + }, + { + name: "edge/1", + run: func(t testing.TB) { + m, err := compile(t, `animate +animal +an* -> an*`) + assert.Success(t, err) + assertQuery(t, m, 2, 4, nil, "") + assertQuery(t, m, 0, 0, nil, "(animate -> animal)[0]") + assertQuery(t, m, 0, 0, nil, "(animal -> animal)[0]") + }, + }, + { + name: "edge/2", + run: func(t testing.TB) { + m, err := compile(t, `shared.animate +shared.animal +sh*.(an* -> an*)`) + assert.Success(t, err) + assertQuery(t, m, 3, 4, nil, "") + assertQuery(t, m, 2, 4, nil, "shared") + assertQuery(t, m, 0, 0, nil, "shared.(animate -> animal)[0]") + assertQuery(t, m, 0, 0, nil, "shared.(animal -> animal)[0]") + }, + }, + { + name: "edge/3", + run: func(t testing.TB) { + m, err := compile(t, `shared.animate +shared.animal +sh*.an* -> sh*.an*`) + assert.Success(t, err) + assertQuery(t, m, 3, 4, nil, "") + assertQuery(t, m, 2, 4, nil, "shared") + assertQuery(t, m, 0, 0, nil, "shared.(animate -> animal)[0]") + assertQuery(t, m, 0, 0, nil, "shared.(animal -> animal)[0]") + }, + }, + { + name: "double-glob", + run: func(t testing.TB) { + m, err := compile(t, `shared.animate +shared.animal +**.style.fill: red`) + assert.Success(t, err) + assertQuery(t, m, 9, 0, nil, "") + assertQuery(t, m, 8, 0, nil, "shared") + assertQuery(t, m, 2, 0, nil, "shared.style") + assertQuery(t, m, 2, 0, nil, "shared.animate") + assertQuery(t, m, 2, 0, nil, "shared.animal") }, }, } diff --git a/d2parser/parse.go b/d2parser/parse.go index d7a540897..6f792d374 100644 --- a/d2parser/parse.go +++ b/d2parser/parse.go @@ -1030,9 +1030,15 @@ func (p *parser) parseUnquotedString(inKey bool) (s *d2ast.UnquotedString) { var sb strings.Builder var rawb strings.Builder + lastPatternIndex := 0 defer func() { sv := strings.TrimRightFunc(sb.String(), unicode.IsSpace) rawv := strings.TrimRightFunc(rawb.String(), unicode.IsSpace) + if s.Pattern != nil { + if lastPatternIndex < len(sv) { + s.Pattern = append(s.Pattern, sv[lastPatternIndex:]) + } + } if sv == "" { if len(s.Value) > 0 { return @@ -1046,15 +1052,6 @@ func (p *parser) parseUnquotedString(inKey bool) (s *d2ast.UnquotedString) { s.Value = append(s.Value, d2ast.InterpolationBox{String: &sv, StringRaw: &rawv}) }() - lastPatternIndex := 0 - defer func() { - if s.Pattern != nil { - if lastPatternIndex < sb.Len() { - s.Pattern = append(s.Pattern, sb.String()[lastPatternIndex:]) - } - } - }() - _s, eof := p.peekn(4) p.rewind() if !eof { diff --git a/testdata/d2ir/TestCompile/edges/chain.exp.json b/testdata/d2ir/TestCompile/edges/chain.exp.json index ea4624895..3708c3f1e 100644 --- a/testdata/d2ir/TestCompile/edges/chain.exp.json +++ b/testdata/d2ir/TestCompile/edges/chain.exp.json @@ -186,6 +186,190 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -376,6 +560,374 @@ } } }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, { "string": { "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", @@ -749,6 +1301,374 @@ } } }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, { "string": { "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", @@ -1121,6 +2041,190 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:16:16", + "edges": [ + { + "range": "TestCompile/edges/chain.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:5:5-0:11:11", + "src": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + { + "range": "TestCompile/edges/chain.d2,0:10:10-0:16:16", + "src": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:10:10-0:11:11", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/chain.d2,0:15:15-0:16:16", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } diff --git a/testdata/d2ir/TestCompile/edges/nested.exp.json b/testdata/d2ir/TestCompile/edges/nested.exp.json index 06d098b77..e49102cd2 100644 --- a/testdata/d2ir/TestCompile/edges/nested.exp.json +++ b/testdata/d2ir/TestCompile/edges/nested.exp.json @@ -171,6 +171,171 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "edges": [ + { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } @@ -342,6 +507,171 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "edges": [ + { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -516,6 +846,171 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "edges": [ + { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } @@ -687,6 +1182,171 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "edges": [ + { + "range": "TestCompile/edges/nested.d2,0:0:0-0:10:10", + "src": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:3:3", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:2:2-0:3:3", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:7:7-0:8:8", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/nested.d2,0:9:9-0:10:10", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } diff --git a/testdata/d2ir/TestCompile/edges/root.exp.json b/testdata/d2ir/TestCompile/edges/root.exp.json index a94dd5651..3938e435b 100644 --- a/testdata/d2ir/TestCompile/edges/root.exp.json +++ b/testdata/d2ir/TestCompile/edges/root.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/edges/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } diff --git a/testdata/d2ir/TestCompile/edges/underscore.exp.json b/testdata/d2ir/TestCompile/edges/underscore.exp.json index 878a4cff4..f97efdddb 100644 --- a/testdata/d2ir/TestCompile/edges/underscore.exp.json +++ b/testdata/d2ir/TestCompile/edges/underscore.exp.json @@ -138,6 +138,148 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:14:14", + "edges": [ + { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } @@ -258,6 +400,147 @@ } } } + }, + { + "string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": ",0:0:0-0:0:0", + "value": [ + { + "string": "p" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:14:14", + "edges": [ + { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -406,6 +689,138 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:14:14", + "edges": [ + { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:13:13", + "src": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:8:8", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:5:5-0:6:6", + "value": [ + { + "string": "_", + "raw_string": "_" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/edges/underscore.d2,0:12:12-0:13:13", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } diff --git a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json index 7a7f1e434..754264164 100644 --- a/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json +++ b/testdata/d2ir/TestCompile/layers/errs/4/good_edge.exp.json @@ -450,6 +450,402 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "edges": [ + { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:24:24", + "src": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:10:10", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:0:0-0:6:6", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:7:7-0:8:8", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:9:9-0:10:10", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:24:24", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:14:14-0:20:20", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:21:21-0:22:22", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/layers/errs/4/good_edge.d2,0:23:23-0:24:24", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] } diff --git a/testdata/d2ir/TestCompile/layers/root.exp.json b/testdata/d2ir/TestCompile/layers/root.exp.json index 27e7e95c6..6c8ca2fa4 100644 --- a/testdata/d2ir/TestCompile/layers/root.exp.json +++ b/testdata/d2ir/TestCompile/layers/root.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/layers/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/layers/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, diff --git a/testdata/d2ir/TestCompile/patterns/double-glob.exp.json b/testdata/d2ir/TestCompile/patterns/double-glob.exp.json new file mode 100644 index 000000000..e50aa0ff6 --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/double-glob.exp.json @@ -0,0 +1,573 @@ +{ + "fields": [ + { + "name": "shared", + "composite": { + "fields": [ + { + "name": "animate", + "references": [ + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "animal", + "references": [ + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "TestCompile/patterns/double-glob.d2,2:15:44-2:18:47", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:13:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:2:31", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:18:47", + "key": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:13:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:2:31", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:15:44-2:18:47", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:13:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:2:31", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:18:47", + "key": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:13:42", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:0:29-2:2:31", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:3:32-2:8:37", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:9:38-2:13:42", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,2:15:44-2:18:47", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/double-glob.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/patterns/edge/1.exp.json b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json new file mode 100644 index 000000000..dff85c37a --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/edge/1.exp.json @@ -0,0 +1,582 @@ +{ + "fields": [ + { + "name": "animate", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "key": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "animal", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "key": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,1:0:8-1:6:14", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "edges": [ + { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "edges": [ + { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "edges": [ + { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "edges": [ + { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:10:25", + "src": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:0:15-2:3:18", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/1.d2,2:7:22-2:10:25", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ] +} diff --git a/testdata/d2ir/TestCompile/patterns/edge/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json new file mode 100644 index 000000000..b5d8b16a5 --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/edge/2.exp.json @@ -0,0 +1,862 @@ +{ + "fields": [ + { + "name": "shared", + "composite": { + "fields": [ + { + "name": "animate", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "animal", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:16:45", + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + } + ] + }, + "edges": [ + { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:16:45", + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + } + ] + }, + "edges": [ + { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:16:45", + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + } + ] + }, + "edges": [ + { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:16:45", + "key": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + } + ] + }, + "edges": [ + { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:15:44", + "src": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:5:34-2:8:37", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,2:12:41-2:15:44", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/2.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/patterns/edge/3.exp.json b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json new file mode 100644 index 000000000..7f8948ac4 --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/edge/3.exp.json @@ -0,0 +1,1022 @@ +{ + "fields": [ + { + "name": "shared", + "composite": { + "fields": [ + { + "name": "animate", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "name": "animal", + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "edges": [ + { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animate" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "edges": [ + { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animate" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "edges": [ + { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + }, + { + "edge_id": { + "src_path": [ + "animal" + ], + "src_arrow": false, + "dst_path": [ + "animal" + ], + "dst_arrow": true, + "index": 0 + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "edges": [ + { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:18:47", + "src": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:7:36", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:0:29-2:3:32", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:4:33-2:7:36", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:18:47", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:11:40-2:14:43", + "value": [ + { + "string": "sh*", + "raw_string": "sh*" + } + ], + "pattern": [ + "sh", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,2:15:44-2:18:47", + "value": [ + { + "string": "an*", + "raw_string": "an*" + } + ], + "pattern": [ + "an", + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "key": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:14:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:0:0-0:6:6", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,0:7:7-0:14:14", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + }, + { + "string": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "key": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:13:28", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:0:15-1:6:21", + "value": [ + { + "string": "shared", + "raw_string": "shared" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge/3.d2,1:7:22-1:13:28", + "value": [ + { + "string": "animal", + "raw_string": "animal" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json b/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json new file mode 100644 index 000000000..9b5259d95 --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/nested/prefix-suffix/3.exp.json @@ -0,0 +1,997 @@ +{ + "fields": [ + { + "name": "animate", + "composite": { + "fields": [ + { + "name": "constant", + "composite": { + "fields": [ + { + "name": "tinkertinker", + "primary": { + "value": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", + "value": [ + { + "string": "globbed", + "raw_string": "globbed" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:35:35", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:31:31-0:35:35", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:35:35", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:31:31-0:35:35", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:31:106", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:6:81", + "value": [ + { + "string": "a*n*t*", + "raw_string": "a*n*t*" + } + ], + "pattern": [ + "a", + "*", + "n", + "*", + "t", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:16:91-2:31:106", + "value": [ + { + "string": "t*ink*r*t*inke*", + "raw_string": "t*ink*r*t*inke*" + } + ], + "pattern": [ + "t", + "*", + "ink", + "*", + "r", + "*", + "t", + "*", + "inke", + "*" + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:40:115", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:31:106", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:6:81", + "value": [ + { + "string": "a*n*t*", + "raw_string": "a*n*t*" + } + ], + "pattern": [ + "a", + "*", + "n", + "*", + "t", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:16:91-2:31:106", + "value": [ + { + "string": "t*ink*r*t*inke*", + "raw_string": "t*ink*r*t*inke*" + } + ], + "pattern": [ + "t", + "*", + "ink", + "*", + "r", + "*", + "t", + "*", + "inke", + "*" + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", + "value": [ + { + "string": "globbed", + "raw_string": "globbed" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:35:35", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:29:29", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:0:0-0:7:7", + "value": [ + { + "string": "animate", + "raw_string": "animate" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:8:8-0:16:16", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:17:17-0:29:29", + "value": [ + { + "string": "tinkertinker", + "raw_string": "tinkertinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,0:31:31-0:35:35", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + } + } + } + } + } + ] + }, + { + "name": "astronaut", + "composite": { + "fields": [ + { + "name": "constant", + "composite": { + "fields": [ + { + "name": "thinkerthinker", + "primary": { + "value": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", + "value": [ + { + "string": "globbed", + "raw_string": "globbed" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:38:74", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:35:71-1:38:74", + "value": [ + { + "string": "yes", + "raw_string": "yes" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:38:74", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:35:71-1:38:74", + "value": [ + { + "string": "yes", + "raw_string": "yes" + } + ] + } + } + } + } + }, + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:31:106", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:6:81", + "value": [ + { + "string": "a*n*t*", + "raw_string": "a*n*t*" + } + ], + "pattern": [ + "a", + "*", + "n", + "*", + "t", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:16:91-2:31:106", + "value": [ + { + "string": "t*ink*r*t*inke*", + "raw_string": "t*ink*r*t*inke*" + } + ], + "pattern": [ + "t", + "*", + "ink", + "*", + "r", + "*", + "t", + "*", + "inke", + "*" + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:40:115", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:31:106", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:0:75-2:6:81", + "value": [ + { + "string": "a*n*t*", + "raw_string": "a*n*t*" + } + ], + "pattern": [ + "a", + "*", + "n", + "*", + "t", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:7:82-2:15:90", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:16:91-2:31:106", + "value": [ + { + "string": "t*ink*r*t*inke*", + "raw_string": "t*ink*r*t*inke*" + } + ], + "pattern": [ + "t", + "*", + "ink", + "*", + "r", + "*", + "t", + "*", + "inke", + "*" + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,2:33:108-2:40:115", + "value": [ + { + "string": "globbed", + "raw_string": "globbed" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:38:74", + "key": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:33:69", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:0:36-1:9:45", + "value": [ + { + "string": "astronaut", + "raw_string": "astronaut" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:10:46-1:18:54", + "value": [ + { + "string": "constant", + "raw_string": "constant" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:19:55-1:33:69", + "value": [ + { + "string": "thinkerthinker", + "raw_string": "thinkerthinker" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/nested/prefix-suffix/3.d2,1:35:71-1:38:74", + "value": [ + { + "string": "yes", + "raw_string": "yes" + } + ] + } + } + } + } + } + ] + } + ], + "edges": null +} diff --git a/testdata/d2ir/TestCompile/scenarios/edge.exp.json b/testdata/d2ir/TestCompile/scenarios/edge.exp.json index 37f6f502a..7bfb0dce9 100644 --- a/testdata/d2ir/TestCompile/scenarios/edge.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/edge.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -351,6 +571,116 @@ } } }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, { "string": { "range": "TestCompile/scenarios/edge.d2,3:5:32-3:6:33", @@ -614,6 +944,116 @@ } } }, + { + "string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:0:0-0:1:1", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/edge.d2,0:5:5-0:6:6", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } + }, { "string": { "range": "TestCompile/scenarios/edge.d2,3:10:37-3:11:38", diff --git a/testdata/d2ir/TestCompile/scenarios/root.exp.json b/testdata/d2ir/TestCompile/scenarios/root.exp.json index 591518abf..31100d590 100644 --- a/testdata/d2ir/TestCompile/scenarios/root.exp.json +++ b/testdata/d2ir/TestCompile/scenarios/root.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -350,6 +570,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -465,6 +795,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1103,6 +1543,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1218,6 +1768,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/scenarios/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, diff --git a/testdata/d2ir/TestCompile/steps/recursive.exp.json b/testdata/d2ir/TestCompile/steps/recursive.exp.json index 3e09926d4..f92eec4b9 100644 --- a/testdata/d2ir/TestCompile/steps/recursive.exp.json +++ b/testdata/d2ir/TestCompile/steps/recursive.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -350,6 +570,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -465,6 +795,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1103,6 +1543,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1218,6 +1768,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1707,6 +2367,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1822,6 +2592,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/recursive.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, diff --git a/testdata/d2ir/TestCompile/steps/root.exp.json b/testdata/d2ir/TestCompile/steps/root.exp.json index ec142d977..51f9d002c 100644 --- a/testdata/d2ir/TestCompile/steps/root.exp.json +++ b/testdata/d2ir/TestCompile/steps/root.exp.json @@ -112,6 +112,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -227,6 +337,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -350,6 +570,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -465,6 +795,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1103,6 +1543,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] }, @@ -1218,6 +1768,116 @@ "value": {} } } + }, + { + "string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "edges": [ + { + "range": "TestCompile/steps/root.d2,0:0:0-0:6:6", + "src": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:0:0-0:1:1", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/steps/root.d2,0:5:5-0:6:6", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + } } ] },