diff --git a/ci/release/changelogs/next.md b/ci/release/changelogs/next.md index d843ee6644..7c0b7d8ade 100644 --- a/ci/release/changelogs/next.md +++ b/ci/release/changelogs/next.md @@ -14,6 +14,7 @@ - Dagre is 7–9× faster - ELK is 40–53× faster - LaTeX is 21.6× faster on a four-formula diagram +- performance: remove superlinear compiler and layout bottlenecks in large globs, repeated imports, nested diagrams, compound Dagre graphs, bend-heavy ELK layouts, and style-only scenario/step boards - d2ascii: - sql_table and uml class shapes are supported [#2623](https://github.com/d2lang/d2/pull/2623) - newlines are handled [#2626](https://github.com/d2lang/d2/pull/2626) diff --git a/d2cli/main.go b/d2cli/main.go index a4417ec9b6..f40badcda4 100644 --- a/d2cli/main.go +++ b/d2cli/main.go @@ -522,6 +522,7 @@ func compile(ctx context.Context, ms *xmain.State, plugins []d2plugin.Plugin, fs Layout: layout, RouterResolver: RouterResolver(ctx, ms, plugins), FS: fs, + LayoutReuse: true, } if os.Getenv("D2_LSP_MODE") == "1" { diff --git a/d2ir/compile.go b/d2ir/compile.go index e9593266c5..061b5530da 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -36,7 +36,12 @@ type compiler struct { // importStack is used to detect cyclic imports. importStack []string seenImports map[string]struct{} - utf16Pos bool + // parsedImports and importTemplates are immutable per-compilation caches. + // Callers always receive deep copies so importer substitutions, references, + // and glob state cannot leak between import sites. + parsedImports map[string]*d2ast.Map + importTemplates map[string]*Map + utf16Pos bool // Stack of globs that must be recomputed at each new object in and below the current scope. globContextStack [][]*globContext @@ -45,6 +50,17 @@ type compiler struct { // Used to check whether ampersands are allowed in the current map. mapRefContextStack []*RefContext lazyGlobBeingApplied bool + + // Lazy field globs are evaluated against newly created fields through a + // deterministic worklist. This avoids rescanning the entire IR after each + // insertion while retaining source-order rule application. + lazyGlobTarget *Field + lazyGlobWorklist []*Field + lazyGlobQueued map[*Field]struct{} + applyingLazyWorklist bool + lazySettledVersions map[*Map]uint64 + lazyPostTargets []*Field + lazyPostQueued map[*Field]struct{} } type CompileOptions struct { @@ -65,8 +81,10 @@ func Compile(ast *d2ast.Map, opts *CompileOptions) (*Map, []string, error) { err: &d2parser.ParseError{}, fs: opts.FS, - seenImports: make(map[string]struct{}), - utf16Pos: opts.UTF16Pos, + seenImports: make(map[string]struct{}), + parsedImports: make(map[string]*d2ast.Map), + importTemplates: make(map[string]*Map), + utf16Pos: opts.UTF16Pos, } m := &Map{} m.initRoot() @@ -89,12 +107,12 @@ func Compile(ast *d2ast.Map, opts *CompileOptions) (*Map, []string, error) { } func (c *compiler) overlayClasses(m *Map) { - classes := m.GetField(d2ast.FlatUnquotedString("classes")) + classes := m.getFieldIndexed(d2ast.FlatUnquotedString("classes")) if classes == nil || classes.Map() == nil { return } - layersField := m.GetField(d2ast.FlatUnquotedString("layers")) + layersField := m.getFieldIndexed(d2ast.FlatUnquotedString("layers")) if layersField == nil { return } @@ -108,16 +126,16 @@ func (c *compiler) overlayClasses(m *Map) { continue } l := lf.Map() - lClasses := l.GetField(d2ast.FlatUnquotedString("classes")) + lClasses := l.getFieldIndexed(d2ast.FlatUnquotedString("classes")) if lClasses == nil { lClasses = classes.Copy(l).(*Field) - l.Fields = append(l.Fields, lClasses) + l.appendField(lClasses) } else if lClasses.Map() != nil { base := classes.Copy(l).(*Field) - OverlayMap(base.Map(), lClasses.Map()) + overlayMapIndexed(base.Map(), lClasses.Map()) l.DeleteField("classes") - l.Fields = append(l.Fields, base) + l.appendField(base) } c.overlayClasses(l) @@ -153,7 +171,7 @@ func (c *compiler) compileSubstitutions(m *Map, varsStack []*Map) { } else if f.Map() != nil { if f.Name != nil && f.Name.ScalarString() == "vars" && f.Name.IsUnquoted() { c.compileSubstitutions(f.Map(), varsStack) - c.validateConfigs(f.Map().GetField(d2ast.FlatUnquotedString("d2-config"))) + c.validateConfigs(f.Map().getFieldIndexed(d2ast.FlatUnquotedString("d2-config"))) } else { c.compileSubstitutions(f.Map(), varsStack) } @@ -270,12 +288,12 @@ func (c *compiler) resolveSubstitutions(varsStack []*Map, node Node) (removedFie case *Field: m := ParentMap(n) if resolvedField.Map() != nil { - ExpandSubstitution(m, resolvedField.Map(), n) + expandSubstitutionIndexed(m, resolvedField.Map(), n) } // Remove the placeholder field for i, f2 := range m.Fields { if n == f2 { - m.Fields = append(m.Fields[:i], m.Fields[i+1:]...) + m.removeField(i) removedField = true break } @@ -399,7 +417,7 @@ func (c *compiler) resolveSubstitution(vars *Map, node Node, substitution *d2ast parent := ParentField(node) for i, p := range substitution.Path { - f := vars.GetField(p.Unbox()) + f := vars.getFieldIndexed(p.Unbox()) if f == nil { return nil } @@ -441,7 +459,7 @@ func (c *compiler) overlay(base *Map, f *Field) { // Certain fields should never carry forward. // If you give your scenario a label, you don't want all steps in a scenario to be labeled the same. base.DeleteField("label") - OverlayMap(base, f.Map()) + overlayMapIndexed(base, f.Map()) f.Composite = base } @@ -582,10 +600,10 @@ func (c *compiler) compileMap(dst *Map, ast, scopeAST *d2ast.Map) { }, }}, } - dst.Fields = append(dst.Fields, f) + dst.appendField(f) case n.Import != nil: // Spread import - impn, ok := c._import(n.Import) + impn, ok := c._import(n.Import, dst) if !ok { continue } @@ -605,21 +623,21 @@ func (c *compiler) compileMap(dst *Map, ast, scopeAST *d2ast.Map) { c.ensureGlobContext(gctx2.refctx) } - scenariosField := impn.Map().GetField(d2ast.FlatUnquotedString("scenarios")) + scenariosField := impn.Map().getFieldIndexed(d2ast.FlatUnquotedString("scenarios")) if scenariosField != nil && scenariosField.Map() != nil { for _, sf := range scenariosField.Map().Fields { c.overlay(dst, sf) } } - stepsField := impn.Map().GetField(d2ast.FlatUnquotedString("steps")) + stepsField := impn.Map().getFieldIndexed(d2ast.FlatUnquotedString("steps")) if stepsField != nil && stepsField.Map() != nil { for _, sf := range stepsField.Map().Fields { c.overlay(dst, sf) } } - OverlayMap(dst, impn.Map()) + overlayMapIndexed(dst, impn.Map()) impDir := n.Import.Dir() c.extendLinks(dst, ParentField(dst), impDir) @@ -664,6 +682,7 @@ func (c *compiler) ensureGlobContext(refctx *RefContext) *globContext { } func (c *compiler) compileKey(refctx *RefContext) { + postTargetStart := len(c.lazyPostTargets) if refctx.Key.HasGlob() { // These printlns are for debugging infinite loops. // println("og", refctx.Edge, refctx.Key, refctx.Scope, refctx.ScopeMap, refctx.ScopeAST) @@ -681,14 +700,20 @@ func (c *compiler) compileKey(refctx *RefContext) { }() c.ensureGlobContext(refctx) } - oldFields := refctx.ScopeMap.FieldCountRecursive() - oldEdges := refctx.ScopeMap.EdgeCountRecursive() + oldVersion := refctx.ScopeMap.structureVersion if len(refctx.Key.Edges) == 0 { c.compileField(refctx.ScopeMap, refctx.Key.Key, refctx) } else { c.compileEdges(refctx) } - if oldFields != refctx.ScopeMap.FieldCountRecursive() || oldEdges != refctx.ScopeMap.EdgeCountRecursive() { + root := RootMap(refctx.ScopeMap) + settled := c.lazySettledVersions != nil && c.lazySettledVersions[root] == root.structureVersion + if oldVersion != refctx.ScopeMap.structureVersion && !c.applyingLazyWorklist && len(c.lazyPostTargets) > postTargetStart { + targets := c.takeLazyPostTargets(postTargetStart) + c.applyLazyGlobs(targets) + settled = true + } + if oldVersion != refctx.ScopeMap.structureVersion && !c.applyingLazyWorklist && !settled { for _, gctx2 := range c.globContexts() { // println(d2format.Format(gctx2.refctx.Key), d2format.Format(refctx.Key)) old := c.lazyGlobBeingApplied @@ -699,12 +724,126 @@ func (c *compiler) compileKey(refctx *RefContext) { } } +func (c *compiler) takeLazyPostTargets(start int) []*Field { + targets := append([]*Field(nil), c.lazyPostTargets[start:]...) + c.lazyPostTargets = c.lazyPostTargets[:start] + for _, target := range targets { + delete(c.lazyPostQueued, target) + } + if len(c.lazyPostQueued) == 0 { + c.lazyPostQueued = nil + } + return targets +} + +func (c *compiler) enqueueLazyPostTargets(fields ...*Field) { + if c.lazyPostQueued == nil { + c.lazyPostQueued = make(map[*Field]struct{}) + } + for _, f := range fields { + if f == nil { + continue + } + if _, exists := c.lazyPostQueued[f]; exists { + continue + } + c.lazyPostQueued[f] = struct{}{} + c.lazyPostTargets = append(c.lazyPostTargets, f) + } +} + +func (c *compiler) enqueueLazyGlobFields(fields ...*Field) { + if len(fields) == 0 { + return + } + if c.lazyGlobQueued == nil { + c.lazyGlobQueued = make(map[*Field]struct{}) + } + for _, f := range fields { + if f == nil { + continue + } + if _, queued := c.lazyGlobQueued[f]; queued { + continue + } + c.lazyGlobQueued[f] = struct{}{} + c.lazyGlobWorklist = append(c.lazyGlobWorklist, f) + } +} + +func (c *compiler) applyLazyGlobs(created []*Field) { + if len(created) == 0 { + for _, gctx := range c.globContexts() { + old := c.lazyGlobBeingApplied + c.lazyGlobBeingApplied = true + c.compileKey(gctx.refctx) + c.lazyGlobBeingApplied = old + } + return + } + + if c.applyingLazyWorklist { + c.enqueueLazyGlobFields(created...) + return + } + root := RootMap(ParentMap(created[0])) + + c.applyingLazyWorklist = true + defer func() { + if c.lazySettledVersions == nil { + c.lazySettledVersions = make(map[*Map]uint64) + } + c.lazySettledVersions[root] = root.structureVersion + c.applyingLazyWorklist = false + c.lazyGlobTarget = nil + c.lazyGlobWorklist = nil + c.lazyGlobQueued = nil + }() + c.enqueueLazyGlobFields(created...) + + for len(c.lazyGlobWorklist) > 0 { + target := c.lazyGlobWorklist[0] + c.lazyGlobWorklist = c.lazyGlobWorklist[1:] + + var edgeGlobs []*globContext + for _, gctx := range c.globContexts() { + if len(gctx.refctx.Key.Edges) > 0 { + edgeGlobs = append(edgeGlobs, gctx) + continue + } + c.lazyGlobTarget = target + old := c.lazyGlobBeingApplied + c.lazyGlobBeingApplied = true + c.compileKey(gctx.refctx) + c.lazyGlobBeingApplied = old + } + c.lazyGlobTarget = nil + + // Edge globs can depend on edges emitted by earlier glob rules. Preserve + // the old fixed-point behavior, but only for edge rules; field rules have + // already been applied to the precise changed fields above. + root := RootMap(target.parent.(*Map)) + for len(edgeGlobs) > 0 { + before := root.structureVersion + for _, gctx := range edgeGlobs { + old := c.lazyGlobBeingApplied + c.lazyGlobBeingApplied = true + c.compileKey(gctx.refctx) + c.lazyGlobBeingApplied = old + } + if before == root.structureVersion { + break + } + } + } +} + func (c *compiler) compileField(dst *Map, kp *d2ast.KeyPath, refctx *RefContext) { if refctx.Key.Ampersand || refctx.Key.NotAmpersand { return } - fa, err := dst.EnsureField(kp, refctx, true, c) + fa, err := dst.ensureFieldIndexed(kp, refctx, true, c) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return @@ -751,7 +890,7 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { } rootMap := RootMap(refctx.ScopeMap) - node := rootMap.GetField(nodePath...) + node := rootMap.getFieldIndexed(nodePath...) if node == nil || node.Map() == nil { return false } @@ -778,7 +917,7 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { ScopeAST: refctx.ScopeAST, } - fa, err := node.Map().EnsureField(propKeyPath, propRefCtx, false, c) + fa, err := node.Map().ensureFieldIndexed(propKeyPath, propRefCtx, false, c) if err != nil || len(fa) == 0 { return false } @@ -791,7 +930,7 @@ func (c *compiler) ampersandFilter(refctx *RefContext) bool { return false } - fa, err := refctx.ScopeMap.EnsureField(refctx.Key.Key, refctx, false, c) + fa, err := refctx.ScopeMap.ensureFieldIndexed(refctx.Key.Key, refctx, false, c) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return false @@ -1145,7 +1284,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { } } else if refctx.Key.Value.Import != nil { // Non-spread import - n, ok := c._import(refctx.Key.Value.Import) + n, ok := c._import(refctx.Key.Value.Import, f) if !ok { return } @@ -1161,7 +1300,9 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { f.Primary_ = n.Primary_.Copy(f).(*Scalar) } if n.Composite != nil { + beforeFields, beforeEdges := structureCounts(f.Map()) f.Composite = n.Composite.Copy(f).(Composite) + markStructureCountDelta(ParentMap(f), beforeFields, beforeEdges, f.Map()) } case *Map: f.Composite = &Map{ @@ -1183,7 +1324,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { } } } - OverlayMap(f.Map(), n) + overlayMapIndexed(f.Map(), n) impDir := refctx.Key.Value.Import.Dir() c.extendLinks(f.Map(), f, impDir) switch NodeBoardKind(f) { @@ -1191,7 +1332,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { c.overlayClasses(f.Map()) } } - OverlayField(f, originalF) + overlayFieldIndexed(f, originalF) if existingEdges != nil && f.Map() != nil { for _, edge := range existingEdges { exists := false @@ -1202,7 +1343,7 @@ func (c *compiler) _compileField(f *Field, refctx *RefContext) { } } if !exists { - f.Map().Edges = append(f.Map().Edges, edge) + f.Map().appendEdge(edge) } } } @@ -1368,7 +1509,7 @@ func (c *compiler) compileEdges(refctx *RefContext) { return } - fa, err := refctx.ScopeMap.EnsureField(refctx.Key.Key, refctx, true, c) + fa, err := refctx.ScopeMap.ensureFieldIndexed(refctx.Key.Key, refctx, true, c) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) return @@ -1402,7 +1543,7 @@ func (c *compiler) _compileEdges(refctx *RefContext) { var ea []*Edge if eid.Index != nil || eid.Glob { - ea = refctx.ScopeMap.GetEdges(eid, refctx, c) + ea = refctx.ScopeMap.getEdgesForCompile(eid, refctx, c) if len(ea) == 0 { if !eid.Glob { c.errorf(refctx.Edge, "indexed edge does not exist") @@ -1481,8 +1622,8 @@ func (c *compiler) _compileEdges(refctx *RefContext) { } rootMap := RootMap(refctx.ScopeMap) - srcObj := rootMap.GetField(srcPath...) - dstObj := rootMap.GetField(dstPath...) + srcObj := rootMap.getFieldIndexed(srcPath...) + dstObj := rootMap.getFieldIndexed(dstPath...) // Unsuspend source node and all its ancestors if srcObj != nil { @@ -1507,7 +1648,7 @@ func (c *compiler) _compileEdges(refctx *RefContext) { } } - e.References = append(e.References, &EdgeReference{ + e.appendReference(&EdgeReference{ Context_: refctx, DueToGlob_: len(c.globRefContextStack) > 0, DueToLazyGlob_: c.lazyGlobBeingApplied, @@ -1517,7 +1658,7 @@ func (c *compiler) _compileEdges(refctx *RefContext) { } } else { var err error - ea, err = refctx.ScopeMap.CreateEdge(eid, refctx, c) + ea, err = refctx.ScopeMap.createEdgeForCompile(eid, refctx, c) if err != nil { c.err.Errors = append(c.err.Errors, err.(d2ast.Error)) continue @@ -1590,7 +1731,7 @@ func (c *compiler) compileArray(dst *Array, a *d2ast.Array, scopeAST *d2ast.Map) Value: v, } case *d2ast.Import: - n, ok := c._import(v) + n, ok := c._import(v, dst) if !ok { continue } diff --git a/d2ir/d2ir.go b/d2ir/d2ir.go index b7e31bb37c..987d381fc4 100644 --- a/d2ir/d2ir.go +++ b/d2ir/d2ir.go @@ -5,7 +5,9 @@ package d2ir import ( "errors" "fmt" + "strconv" "strings" + "unicode" "github.com/d2lang/util-go/go2" @@ -152,6 +154,7 @@ func (s *Scalar) Copy(newParent Node) Node { s = &tmp s.parent = newParent + s.Value = cloneASTScalar(s.Value) return s } @@ -172,6 +175,213 @@ type Map struct { Edges []*Edge `json:"edges"` globs []*globContext + + // Fields and Edges retain source order. These indexes are derived lookup + // accelerators only; they never determine iteration order. + fieldIndex map[fieldIndexKey]*Field + fieldIndexSize int + edgeIndex map[string][]*Edge + edgeIndexSize int + + // structureVersion changes whenever a field or edge is added or removed in + // this map or any descendant. Lazy globs use it instead of recursively + // recounting the whole IR around every compiled key. + structureVersion uint64 +} + +type fieldIndexKey struct { + folded string + unquotedReserved bool +} + +func foldString(s string) string { + ascii := true + lower := false + for i := 0; i < len(s); i++ { + if s[i] >= 0x80 { + ascii = false + break + } + if s[i] >= 'a' && s[i] <= 'z' { + lower = true + } + } + if ascii { + if !lower { + return s + } + folded := []byte(s) + for i := range folded { + if folded[i] >= 'a' && folded[i] <= 'z' { + folded[i] -= 'a' - 'A' + } + } + return string(folded) + } + + var b strings.Builder + b.Grow(len(s)) + for _, r := range s { + min := r + for next := unicode.SimpleFold(r); next != r; next = unicode.SimpleFold(next) { + if next < min { + min = next + } + } + b.WriteRune(min) + } + return b.String() +} + +func makeFieldIndexKey(s d2ast.String) fieldIndexKey { + name := s.ScalarString() + _, reserved := d2ast.ReservedKeywords[strings.ToLower(name)] + return fieldIndexKey{ + folded: foldString(name), + unquotedReserved: reserved && s.IsUnquoted(), + } +} + +func (m *Map) ensureFieldIndex() { + if m.fieldIndex != nil && m.fieldIndexSize == len(m.Fields) { + return + } + m.fieldIndex = make(map[fieldIndexKey]*Field, len(m.Fields)) + for _, f := range m.Fields { + if f == nil || f.Name == nil { + continue + } + key := makeFieldIndexKey(f.Name) + if _, exists := m.fieldIndex[key]; !exists { + m.fieldIndex[key] = f + } + } + m.fieldIndexSize = len(m.Fields) +} + +func (m *Map) lookupField(name d2ast.String) *Field { + if m == nil || name == nil { + return nil + } + m.ensureFieldIndex() + return m.fieldIndex[makeFieldIndexKey(name)] +} + +func appendEdgePathKey(b *strings.Builder, path []d2ast.String) { + b.WriteString(strconv.Itoa(len(path))) + b.WriteByte(':') + for _, part := range path { + folded := foldString(part.ScalarString()) + b.WriteString(strconv.Itoa(len(folded))) + b.WriteByte(':') + b.WriteString(folded) + } +} + +func makeEdgeIndexKey(eid *EdgeID) string { + var b strings.Builder + appendEdgePathKey(&b, eid.SrcPath) + if eid.SrcArrow { + b.WriteByte('<') + } else { + b.WriteByte('-') + } + appendEdgePathKey(&b, eid.DstPath) + if eid.DstArrow { + b.WriteByte('>') + } else { + b.WriteByte('-') + } + return b.String() +} + +func (m *Map) ensureEdgeIndex() { + if m.edgeIndex != nil && m.edgeIndexSize == len(m.Edges) { + return + } + m.edgeIndex = make(map[string][]*Edge, len(m.Edges)) + for _, e := range m.Edges { + if e == nil || e.ID == nil { + continue + } + key := makeEdgeIndexKey(e.ID) + m.edgeIndex[key] = append(m.edgeIndex[key], e) + } + m.edgeIndexSize = len(m.Edges) +} + +func (m *Map) markStructureChanged() { + for current := m; current != nil; current = ParentMap(current) { + current.structureVersion++ + } +} + +func (m *Map) appendField(f *Field) { + oldLen := len(m.Fields) + m.Fields = append(m.Fields, f) + if m.fieldIndex != nil && m.fieldIndexSize == oldLen && f != nil && f.Name != nil { + key := makeFieldIndexKey(f.Name) + if _, exists := m.fieldIndex[key]; !exists { + m.fieldIndex[key] = f + } + m.fieldIndexSize++ + } else { + m.fieldIndex = nil + m.fieldIndexSize = 0 + } + m.markStructureChanged() +} + +func (m *Map) insertField(index int, f *Field) { + oldLen := len(m.Fields) + m.Fields = append(m.Fields, nil) + copy(m.Fields[index+1:], m.Fields[index:]) + m.Fields[index] = f + if m.fieldIndex != nil && m.fieldIndexSize == oldLen && f != nil && f.Name != nil { + key := makeFieldIndexKey(f.Name) + if _, exists := m.fieldIndex[key]; !exists { + m.fieldIndex[key] = f + } + m.fieldIndexSize++ + } else { + m.fieldIndex = nil + m.fieldIndexSize = 0 + } + m.markStructureChanged() +} + +func (m *Map) removeField(index int) *Field { + f := m.Fields[index] + copy(m.Fields[index:], m.Fields[index+1:]) + m.Fields = m.Fields[:len(m.Fields)-1] + m.fieldIndex = nil + m.fieldIndexSize = 0 + m.markStructureChanged() + return f +} + +func (m *Map) appendEdge(e *Edge) { + oldLen := len(m.Edges) + m.Edges = append(m.Edges, e) + if m.edgeIndex != nil && m.edgeIndexSize == oldLen && e != nil && e.ID != nil { + key := makeEdgeIndexKey(e.ID) + m.edgeIndex[key] = append(m.edgeIndex[key], e) + m.edgeIndexSize++ + } else { + m.edgeIndex = nil + m.edgeIndexSize = 0 + } + m.markStructureChanged() +} + +func (m *Map) removeEdge(index int) *Edge { + e := m.Edges[index] + copy(m.Edges[index:], m.Edges[index+1:]) + m.Edges = m.Edges[:len(m.Edges)-1] + m.edgeIndex = nil + m.edgeIndexSize = 0 + m.markStructureChanged() + return e } func (m *Map) initRoot() { @@ -202,6 +412,11 @@ func (m *Map) SetImportAST(node d2ast.Node) { func (m *Map) Copy(newParent Node) Node { tmp := *m m = &tmp + m.fieldIndex = nil + m.fieldIndexSize = 0 + m.edgeIndex = nil + m.edgeIndexSize = 0 + m.structureVersion = 0 m.parent = newParent pfields := m.Fields @@ -225,21 +440,65 @@ func (m *Map) CopyBase(newParent Node) *Map { return (&Map{}).Copy(newParent).(*Map) } - layers := m.DeleteField("layers") - scenarios := m.DeleteField("scenarios") - steps := m.DeleteField("steps") - - m2 := m.Copy(newParent).(*Map) - if layers != nil { - m.Fields = append(m.Fields, layers) + // The historical delete-and-restore implementation also canonicalized board + // fields to layers, scenarios, steps at the end of the source map. Preserve + // that observable ordering without reporting a structural mutation: the + // field set is unchanged, and compile generations are for glob membership. + baseFields := make([]*Field, 0, len(m.Fields)) + var layers, scenarios, steps *Field + for _, field := range m.Fields { + if field.Name != nil { + switch { + case layers == nil && strings.EqualFold(field.Name.ScalarString(), "layers"): + layers = field + continue + case scenarios == nil && strings.EqualFold(field.Name.ScalarString(), "scenarios"): + scenarios = field + continue + case steps == nil && strings.EqualFold(field.Name.ScalarString(), "steps"): + steps = field + continue + } + } + baseFields = append(baseFields, field) } - if scenarios != nil { - m.Fields = append(m.Fields, scenarios) + for _, board := range []*Field{layers, scenarios, steps} { + if board != nil { + m.deleteEdgesForFieldReferences(board) + } } - if steps != nil { - m.Fields = append(m.Fields, steps) + base := *m + base.Fields = baseFields + copy := base.Copy(newParent).(*Map) + m.Fields = append(m.Fields[:0], baseFields...) + for _, board := range []*Field{layers, scenarios, steps} { + if board != nil { + m.Fields = append(m.Fields, board) + } + } + m.fieldIndex = nil + m.fieldIndexSize = 0 + return copy +} + +func (m *Map) deleteEdgesForFieldReferences(f *Field) { + for _, fr := range f.References { + currM := m + for currM != nil { + for _, edge := range currM.Edges { + for _, er := range edge.References { + if er.Context_ == fr.Context_ { + currM.DeleteEdge(edge.ID) + break + } + } + } + if NodeBoardKind(currM) != "" { + break + } + currM = ParentMap(currM) + } } - return m2 } // Root reports whether the Map is the root of the D2 tree. @@ -412,6 +671,10 @@ func (eid *EdgeID) Copy() *EdgeID { eid.SrcPath = append([]d2ast.String(nil), eid.SrcPath...) eid.DstPath = append([]d2ast.String(nil), eid.DstPath...) + if eid.Index != nil { + index := *eid.Index + eid.Index = &index + } return eid } @@ -515,6 +778,9 @@ func (e *Edge) Copy(newParent Node) Node { e = &tmp e.parent = newParent + if e.ID != nil { + e.ID = e.ID.Copy() + } e.References = append([]*EdgeReference(nil), e.References...) if e.Primary_ != nil { e.Primary_ = e.Primary_.Copy(e).(*Scalar) @@ -573,6 +839,26 @@ type FieldReference struct { DueToLazyGlob_ bool `json:"due_to_lazy_glob"` } +// appendReference records a source reference once. Lazy glob rules are +// reevaluated as the IR grows, but replaying the same rule against the same +// field does not create a new source location. Keeping one reference per +// (context, key-path element) prevents glob evaluation order from inflating +// reference lists quadratically while preserving every distinct source. +func (f *Field) appendReference(ref *FieldReference) { + if ref.DueToLazyGlob_ { + for _, existing := range f.References { + if sameReferenceContext(existing.Context_, ref.Context_) && + existing.KeyPath == ref.KeyPath && + existing.String == ref.String && + existing.DueToGlob_ == ref.DueToGlob_ && + existing.DueToLazyGlob_ == ref.DueToLazyGlob_ { + return + } + } + } + f.References = append(f.References, ref) +} + // Primary returns true if the Value in Context.Key.Value corresponds to the Field // represented by String. func (fr *FieldReference) Primary() bool { @@ -615,6 +901,25 @@ type EdgeReference struct { DueToLazyGlob_ bool `json:"due_to_lazy_glob"` } +func (e *Edge) appendReference(ref *EdgeReference) { + if ref.DueToLazyGlob_ { + for _, existing := range e.References { + if sameReferenceContext(existing.Context_, ref.Context_) && + existing.DueToGlob_ == ref.DueToGlob_ && + existing.DueToLazyGlob_ == ref.DueToLazyGlob_ { + return + } + } + } + e.References = append(e.References, ref) +} + +func sameReferenceContext(a, b *RefContext) bool { + return a == b || a != nil && b != nil && + a.Key == b.Key && a.Edge == b.Edge && + a.Scope == b.Scope && a.ScopeMap == b.ScopeMap && a.ScopeAST == b.ScopeAST +} + func (er *EdgeReference) AST() d2ast.Node { return er.Context_.Edge } @@ -786,10 +1091,13 @@ func (m *Map) GetField(ida ...d2ast.String) *Field { return nil } } - return m.getField(ida) + return m.getFieldLinear(ida) } -func (m *Map) getField(ida []d2ast.String) *Field { +// getFieldLinear keeps the exported lookup safe for maps assembled or mutated +// directly through the public Fields slice. Compiler-owned lookups use the +// derived index below while the IR is being built single-threadedly. +func (m *Map) getFieldLinear(ida []d2ast.String) *Field { if len(ida) == 0 { return nil } @@ -802,29 +1110,54 @@ func (m *Map) getField(ida []d2ast.String) *Field { } for _, f := range m.Fields { - if f.Name == nil { + if f == nil || f.Name == nil || !strings.EqualFold(f.Name.ScalarString(), s.ScalarString()) { continue } - if !strings.EqualFold(f.Name.ScalarString(), s.ScalarString()) { + if _, reserved := d2ast.ReservedKeywords[strings.ToLower(s.ScalarString())]; reserved && + f.Name.IsUnquoted() != s.IsUnquoted() { continue } - if _, isReserved := d2ast.ReservedKeywords[strings.ToLower(s.ScalarString())]; isReserved { - if f.Name.IsUnquoted() != s.IsUnquoted() { - continue - } - } if len(rest) == 0 { return f } if f.Map() != nil { - return f.Map().getField(rest) + return f.Map().getFieldLinear(rest) } + continue } return nil } +func (m *Map) getFieldIndexed(ida ...d2ast.String) *Field { + for len(ida) > 0 && ida[0].ScalarString() == "_" && ida[0].IsUnquoted() { + m = ParentMap(m) + if m == nil { + return nil + } + } + if len(ida) == 0 { + return nil + } + f := m.lookupField(ida[0]) + if f == nil || len(ida) == 1 { + return f + } + if f.Map() == nil { + return nil + } + return f.Map().getFieldIndexed(ida[1:]...) +} + // EnsureField is a bit of a misnomer. It's more of a Query/Ensure combination function at this point. func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext, create bool, c *compiler) ([]*Field, error) { + return m.ensureFieldMode(kp, refctx, create, c, false) +} + +func (m *Map) ensureFieldIndexed(kp *d2ast.KeyPath, refctx *RefContext, create bool, c *compiler) ([]*Field, error) { + return m.ensureFieldMode(kp, refctx, create, c, true) +} + +func (m *Map) ensureFieldMode(kp *d2ast.KeyPath, refctx *RefContext, create bool, c *compiler, indexed bool) ([]*Field, error) { i := 0 for kp.Path[i].Unbox().ScalarString() == "_" && kp.Path[i].Unbox().IsUnquoted() { m = ParentMap(m) @@ -843,19 +1176,25 @@ func (m *Map) EnsureField(kp *d2ast.KeyPath, refctx *RefContext, create bool, c } var fa []*Field - err := m.ensureField(i, kp, refctx, create, gctx, c, &fa) + var created []*Field + err := m.ensureField(i, kp, refctx, create, gctx, c, indexed, &fa, &created) + if c != nil && c.applyingLazyWorklist && len(c.globRefContextStack) > 0 { + if len(created) > 0 { + c.enqueueLazyGlobFields(fa...) + } + } if len(fa) > 0 && c != nil && len(c.globRefContextStack) == 0 { - for _, gctx2 := range c.globContexts() { - old := c.lazyGlobBeingApplied - c.lazyGlobBeingApplied = true - c.compileKey(gctx2.refctx) - c.lazyGlobBeingApplied = old + if len(created) > 0 { + c.enqueueLazyPostTargets(fa...) + c.applyLazyGlobs(fa) + } else { + c.applyLazyGlobs(nil) } } return fa, err } -func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create bool, gctx *globContext, c *compiler, fa *[]*Field) error { +func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create bool, gctx *globContext, c *compiler, indexed bool, fa, created *[]*Field) error { filter := func(f *Field, passthrough bool) bool { if gctx != nil { var ks string @@ -893,8 +1232,16 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b us, ok := kp.Path[i].Unbox().(*d2ast.UnquotedString) if ok && us.Pattern != nil { - fa2, ok := m.multiGlob(us.Pattern) - if ok { + var fa2 []*Field + var multi bool + if c != nil && c.lazyGlobTarget != nil && gctx != nil && + (d2ast.IsDoubleGlob(us.Pattern) || d2ast.IsTripleGlob(us.Pattern)) { + fa2 = m.multiGlobMatchesToward(c.lazyGlobTarget, us.Pattern) + multi = true + } else { + fa2, multi = m.multiGlob(us.Pattern) + } + if multi { if i == len(kp.Path)-1 { faAppend(fa2...) } else { @@ -907,7 +1254,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b parent: f, } } - err := f.Map().ensureField(i+1, kp, refctx, create, gctx, c, fa) + err := f.Map().ensureField(i+1, kp, refctx, create, gctx, c, indexed, fa, created) if err != nil { return err } @@ -915,7 +1262,15 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b } return nil } - for _, f := range m.Fields { + fields := m.Fields + if c != nil && c.lazyGlobTarget != nil && gctx != nil { + if candidate := m.directChildToward(c.lazyGlobTarget); candidate != nil { + fields = []*Field{candidate} + } else { + fields = nil + } + } + for _, f := range fields { if f.Name == nil { continue } @@ -931,7 +1286,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b parent: f, } } - err := f.Map().ensureField(i+1, kp, refctx, create, gctx, c, fa) + err := f.Map().ensureField(i+1, kp, refctx, create, gctx, c, indexed, fa, created) if err != nil { return err } @@ -963,19 +1318,16 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b return d2parser.Errorf(kp.Path[i].Unbox(), "%s must be declared at a board root scope", headString) } - for _, f := range m.Fields { - if !(f.Name != nil && strings.EqualFold(f.Name.ScalarString(), head.ScalarString())) { - continue - } - if _, isReserved := d2ast.ReservedKeywords[strings.ToLower(f.Name.ScalarString())]; isReserved { - if f.Name.IsUnquoted() != head.IsUnquoted() { - continue - } - } - + var existing *Field + if indexed { + existing = m.lookupField(head) + } else { + existing = m.getFieldLinear([]d2ast.String{head}) + } + if f := existing; f != nil { // Don't add references for fake common KeyPath from trimCommon in CreateEdge. if refctx != nil { - f.References = append(f.References, &FieldReference{ + f.appendReference(&FieldReference{ String: kp.Path[i].Unbox(), KeyPath: kp, Context_: refctx, @@ -999,7 +1351,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b parent: f, } } - return f.Map().ensureField(i+1, kp, refctx, create, gctx, c, fa) + return f.Map().ensureField(i+1, kp, refctx, create, gctx, c, indexed, fa, created) } if !create { @@ -1032,7 +1384,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b }() // Don't add references for fake common KeyPath from trimCommon in CreateEdge. if refctx != nil { - f.References = append(f.References, &FieldReference{ + f.appendReference(&FieldReference{ String: kp.Path[i].Unbox(), KeyPath: kp, Context_: refctx, @@ -1043,7 +1395,8 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b if !filter(f, true) { return nil } - m.Fields = append(m.Fields, f) + m.appendField(f) + *created = append(*created, f) if i+1 == len(kp.Path) { faAppend(f) return nil @@ -1053,7 +1406,7 @@ func (m *Map) ensureField(i int, kp *d2ast.KeyPath, refctx *RefContext, create b parent: f, } } - return f.Map().ensureField(i+1, kp, refctx, create, gctx, c, fa) + return f.Map().ensureField(i+1, kp, refctx, create, gctx, c, indexed, fa, created) } func (m *Map) DeleteEdge(eid *EdgeID) *Edge { @@ -1079,8 +1432,7 @@ func (m *Map) DeleteEdge(eid *EdgeID) *Edge { for i, e := range resolvedM.Edges { if e.ID.Match(resolvedEID) { - resolvedM.Edges = append(resolvedM.Edges[:i], resolvedM.Edges[i+1:]...) - return e + return resolvedM.removeEdge(i) } } return nil @@ -1099,24 +1451,8 @@ func (m *Map) DeleteField(ida ...string) *Field { continue } if len(rest) == 0 { - for _, fr := range f.References { - currM := m - for currM != nil { - for _, e := range currM.Edges { - for _, er := range e.References { - if er.Context_ == fr.Context_ { - currM.DeleteEdge(e.ID) - break - } - } - } - if NodeBoardKind(currM) != "" { - break - } - currM = ParentMap(currM) - } - } - m.Fields = append(m.Fields[:i], m.Fields[i+1:]...) + m.deleteEdgesForFieldReferences(f) + m.removeField(i) // If a field was deleted from a keyword-holder keyword and that holder is empty, // then that holder becomes meaningless and should be deleted too @@ -1126,7 +1462,7 @@ func (m *Map) DeleteField(ida ...string) *Field { keywordHolderParentMap := ParentMap(parent) for i, f := range keywordHolderParentMap.Fields { if f.Name.ScalarString() == keywordHolder && f.Name.IsUnquoted() { - keywordHolderParentMap.Fields = append(keywordHolderParentMap.Fields[:i], keywordHolderParentMap.Fields[i+1:]...) + keywordHolderParentMap.removeField(i) break } } @@ -1143,13 +1479,7 @@ func (m *Map) DeleteField(ida ...string) *Field { func (m *Map) GetEdges(eid *EdgeID, refctx *RefContext, c *compiler) []*Edge { if refctx != nil { - var gctx *globContext - if refctx.Key.HasGlob() && c != nil { - gctx = c.ensureGlobContext(refctx) - } - var ea []*Edge - m.getEdges(eid, refctx, gctx, &ea) - return ea + return m.getEdgesMode(eid, refctx, c, false) } eid, m, common, err := eid.resolve(m) @@ -1176,7 +1506,44 @@ func (m *Map) GetEdges(eid *EdgeID, refctx *RefContext, c *compiler) []*Edge { return ea } -func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[]*Edge) error { +func (m *Map) getEdgesForCompile(eid *EdgeID, refctx *RefContext, c *compiler) []*Edge { + return m.getEdgesMode(eid, refctx, c, true) +} + +func (m *Map) getEdgesMode(eid *EdgeID, refctx *RefContext, c *compiler, indexed bool) []*Edge { + var gctx *globContext + if refctx.Key.HasGlob() && c != nil { + gctx = c.ensureGlobContext(refctx) + } + var ea []*Edge + m.getEdges(eid, refctx, gctx, indexed, &ea) + return ea +} + +func (m *Map) getEdgesIndexed(eid *EdgeID) []*Edge { + eid, m, common, err := eid.resolve(m) + if err != nil { + return nil + } + if len(common) > 0 { + f := m.getFieldIndexed(common...) + if f == nil || f.Map() == nil { + return nil + } + return f.Map().getEdgesIndexed(eid) + } + + m.ensureEdgeIndex() + var edges []*Edge + for _, edge := range m.edgeIndex[makeEdgeIndexKey(eid)] { + if edge.ID.Match(eid) { + edges = append(edges, edge) + } + } + return edges +} + +func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, indexed bool, ea *[]*Edge) error { eid, m, common, err := eid.resolve(m) if err != nil { return err @@ -1194,7 +1561,7 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ } } } - fa, err := m.EnsureField(commonKP, nil, false, nil) + fa, err := m.ensureFieldMode(commonKP, nil, false, nil, indexed) if err != nil { return nil } @@ -1207,7 +1574,7 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ parent: f, } } - err = f.Map().getEdges(eid, refctx, gctx, ea) + err = f.Map().getEdges(eid, refctx, gctx, indexed, ea) if err != nil { return err } @@ -1215,11 +1582,11 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ return nil } - srcFA, err := refctx.ScopeMap.EnsureField(refctx.Edge.Src, nil, false, nil) + srcFA, err := refctx.ScopeMap.ensureFieldMode(refctx.Edge.Src, nil, false, nil, indexed) if err != nil { return err } - dstFA, err := refctx.ScopeMap.EnsureField(refctx.Edge.Dst, nil, false, nil) + dstFA, err := refctx.ScopeMap.ensureFieldMode(refctx.Edge.Dst, nil, false, nil, indexed) if err != nil { return err } @@ -1230,7 +1597,12 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ eid2.SrcPath = RelIDA(m, src) eid2.DstPath = RelIDA(m, dst) - ea2 := m.GetEdges(eid2, nil, nil) + var ea2 []*Edge + if indexed { + ea2 = m.getEdgesIndexed(eid2) + } else { + ea2 = m.GetEdges(eid2, nil, nil) + } for _, e := range ea2 { if gctx != nil { var ks string @@ -1252,12 +1624,20 @@ func (m *Map) getEdges(eid *EdgeID, refctx *RefContext, gctx *globContext, ea *[ } func (m *Map) CreateEdge(eid *EdgeID, refctx *RefContext, c *compiler) ([]*Edge, error) { + return m.createEdgeMode(eid, refctx, c, false) +} + +func (m *Map) createEdgeForCompile(eid *EdgeID, refctx *RefContext, c *compiler) ([]*Edge, error) { + return m.createEdgeMode(eid, refctx, c, true) +} + +func (m *Map) createEdgeMode(eid *EdgeID, refctx *RefContext, c *compiler, indexed bool) ([]*Edge, error) { var ea []*Edge var gctx *globContext if refctx != nil && refctx.Key.HasGlob() && c != nil { gctx = c.ensureGlobContext(refctx) } - err := m.createEdge(eid, refctx, gctx, c, &ea) + err := m.createEdge(eid, refctx, gctx, c, indexed, &ea) if len(ea) > 0 && c != nil && len(c.globRefContextStack) == 0 { for _, gctx2 := range c.globContexts() { old := c.lazyGlobBeingApplied @@ -1269,7 +1649,7 @@ func (m *Map) CreateEdge(eid *EdgeID, refctx *RefContext, c *compiler) ([]*Edge, return ea, err } -func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c *compiler, ea *[]*Edge) error { +func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c *compiler, indexed bool, ea *[]*Edge) error { if ParentEdge(m) != nil { return d2parser.Errorf(refctx.Edge, "cannot create edge inside edge") } @@ -1290,7 +1670,7 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * } } } - fa, err := m.EnsureField(commonKP, nil, true, c) + fa, err := m.ensureFieldMode(commonKP, nil, true, c, indexed) if err != nil { return err } @@ -1303,7 +1683,7 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * parent: f, } } - err = f.Map().createEdge(eid, refctx, gctx, c, ea) + err = f.Map().createEdge(eid, refctx, gctx, c, indexed, ea) if err != nil { return err } @@ -1329,11 +1709,11 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * return d2parser.Errorf(refctx.Edge.Dst.Path[ij].Unbox(), "edge with board keyword alone doesn't make sense") } - srcFA, err := refctx.ScopeMap.EnsureField(refctx.Edge.Src, refctx, true, c) + srcFA, err := refctx.ScopeMap.ensureFieldMode(refctx.Edge.Src, refctx, true, c, indexed) if err != nil { return err } - dstFA, err := refctx.ScopeMap.EnsureField(refctx.Edge.Dst, refctx, true, c) + dstFA, err := refctx.ScopeMap.ensureFieldMode(refctx.Edge.Dst, refctx, true, c, indexed) if err != nil { return err } @@ -1368,7 +1748,7 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * eid2.SrcPath = RelIDA(m, src) eid2.DstPath = RelIDA(m, dst) - es, err := m.createEdge2(eid2, refctx, gctx, c, src, dst) + es, err := m.createEdge2(eid2, refctx, gctx, c, indexed, src, dst) if err != nil { return err } @@ -1380,7 +1760,7 @@ func (m *Map) createEdge(eid *EdgeID, refctx *RefContext, gctx *globContext, c * return nil } -func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c *compiler, src, dst *Field) ([]*Edge, error) { +func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c *compiler, indexed bool, src, dst *Field) ([]*Edge, error) { if NodeBoardKind(src) != "" { return nil, d2parser.Errorf(refctx.Edge.Src, "cannot create edges between boards") } @@ -1407,7 +1787,7 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c } } } - fa, err := m.EnsureField(commonKP, nil, true, c) + fa, err := m.ensureFieldMode(commonKP, nil, true, c, indexed) if err != nil { return nil, err } @@ -1421,7 +1801,7 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c parent: f, } } - edges2, err := f.Map().createEdge2(eid, refctx, gctx, c, src, dst) + edges2, err := f.Map().createEdge2(eid, refctx, gctx, c, indexed, src, dst) if err != nil { return nil, err } @@ -1432,7 +1812,12 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c eid.Index = nil eid.Glob = true - ea := m.GetEdges(eid, nil, nil) + var ea []*Edge + if indexed { + ea = m.getEdgesIndexed(eid) + } else { + ea = m.GetEdges(eid, nil, nil) + } index := len(ea) eid.Index = &index eid.Glob = false @@ -1463,7 +1848,7 @@ func (m *Map) createEdge2(eid *EdgeID, refctx *RefContext, gctx *globContext, c gctx.appliedEdges[ks] = struct{}{} } - m.Edges = append(m.Edges, e) + m.appendEdge(e) return []*Edge{e}, nil } @@ -1577,7 +1962,7 @@ func (m *Map) appendFieldReferences(i int, kp *d2ast.KeyPath, refctx *RefContext return } - f.References = append(f.References, &FieldReference{ + f.appendReference(&FieldReference{ String: sb.Unbox(), KeyPath: kp, Context_: refctx, diff --git a/d2ir/import.go b/d2ir/import.go index 69a55ec45e..72e99bb691 100644 --- a/d2ir/import.go +++ b/d2ir/import.go @@ -53,14 +53,14 @@ func formatCyclicChain(cyclicChain []string) string { } // Returns either *Map or *Field. -func (c *compiler) _import(imp *d2ast.Import) (Node, bool) { - ir, ok := c.__import(imp) +func (c *compiler) _import(imp *d2ast.Import, importer Node) (Node, bool) { + ir, ok := c.__import(imp, importTemplateSafeAt(importer)) if !ok { return nil, false } nilScopeMap(ir) if len(imp.IDA()) > 0 { - f := ir.GetField(imp.IDA()...) + f := ir.getFieldIndexed(imp.IDA()...) if f == nil { c.errorf(imp, "import key %q doesn't exist inside import", imp.IDA()) return nil, false @@ -70,7 +70,7 @@ func (c *compiler) _import(imp *d2ast.Import) (Node, bool) { return ir, true } -func (c *compiler) __import(imp *d2ast.Import) (*Map, bool) { +func (c *compiler) __import(imp *d2ast.Import, templateSafe bool) (*Map, bool) { impPath, ok := c.pushImportStack(imp) if !ok { return nil, false @@ -84,24 +84,20 @@ func (c *compiler) __import(imp *d2ast.Import) (*Map, bool) { } } - var f fs.File - var err error - if c.fs == nil { - f, err = os.Open(impPath) - } else { - f, err = c.fs.Open(impPath) - } - if err != nil { - c.errorf(imp, "failed to import %q: %v", impPath, err) - return nil, false + cacheable := templateSafe && len(c.globContexts()) == 0 && len(c.mapRefContextStack) == 0 + if cacheable { + if template := c.importTemplates[impPath]; template != nil { + c.seenImports[impPath] = struct{}{} + return cloneImportMap(template), true + } } - defer f.Close() - ast, err := d2parser.Parse(impPath, f, &d2parser.ParseOptions{ - UTF16Pos: c.utf16Pos, - ParseError: c.err, - }) - if err != nil { + errCount := len(c.err.Errors) + ast, openErr, ok := c.loadImportAST(impPath, c.err) + if !ok { + if openErr != nil { + c.errorf(imp, "failed to import %q: %v", impPath, openErr) + } return nil, false } @@ -120,10 +116,37 @@ func (c *compiler) __import(imp *d2ast.Import) (*Map, bool) { c.err.Errors = savedErrors c.seenImports[impPath] = struct{}{} + if cacheable && len(c.err.Errors) == errCount { + c.importTemplates[impPath] = cloneImportMap(ir) + } return ir, true } +// Imported IR templates are context independent for ordinary maps. Board +// imports are different: scenario and step inheritance is established while +// the import is attached to its destination board. Keep the parsed-AST cache +// there, but compile a fresh IR instance so board order and inheritance retain +// their source semantics. +func importTemplateSafeAt(n Node) bool { + for n != nil { + if kind := NodeBoardKind(n); kind != "" { + root := false + switch n := n.(type) { + case *Field: + root = n.Root() + case *Map: + root = n.Root() + } + if !root { + return false + } + } + n = n.Parent() + } + return true +} + func (c *compiler) peekImport(imp *d2ast.Import) (*Map, bool) { impPath := imp.PathWithPre() if impPath == "" && imp.Range != (d2ast.Range{}) { @@ -140,6 +163,27 @@ func (c *compiler) peekImport(imp *d2ast.Import) (*Map, bool) { } } + // Use a separate parse error to avoid polluting the main one + localErr := &d2parser.ParseError{} + ast, _, ok := c.loadImportAST(impPath, localErr) + if !ok { + return nil, false + } + + ir := &Map{} + ir.initRoot() + ir.parent.(*Field).References[0].Context_.Scope = ast + + c.compileMap(ir, ast, ast) + + return ir, true +} + +func (c *compiler) loadImportAST(impPath string, parseErr *d2parser.ParseError) (*d2ast.Map, error, bool) { + if ast := c.parsedImports[impPath]; ast != nil { + return cloneASTMap(ast), nil, true + } + var f fs.File var err error if c.fs == nil { @@ -148,27 +192,19 @@ func (c *compiler) peekImport(imp *d2ast.Import) (*Map, bool) { f, err = c.fs.Open(impPath) } if err != nil { - return nil, false + return nil, err, false } defer f.Close() - // Use a separate parse error to avoid polluting the main one - localErr := &d2parser.ParseError{} ast, err := d2parser.Parse(impPath, f, &d2parser.ParseOptions{ UTF16Pos: c.utf16Pos, - ParseError: localErr, + ParseError: parseErr, }) if err != nil { - return nil, false + return nil, nil, false } - - ir := &Map{} - ir.initRoot() - ir.parent.(*Field).References[0].Context_.Scope = ast - - c.compileMap(ir, ast, ast) - - return ir, true + c.parsedImports[impPath] = ast + return cloneASTMap(ast), nil, true } func nilScopeMap(n Node) { diff --git a/d2ir/import_cache.go b/d2ir/import_cache.go new file mode 100644 index 0000000000..56a8388de7 --- /dev/null +++ b/d2ir/import_cache.go @@ -0,0 +1,352 @@ +package d2ir + +import ( + "math/big" + + "github.com/d2lang/d2/d2ast" +) + +// The parser AST is mutable: substitution resolution coalesces strings in +// place. Import caches therefore retain an immutable parsed tree and compile a +// deep clone for each importer context. +func cloneASTMap(src *d2ast.Map) *d2ast.Map { + if src == nil { + return nil + } + dst := &d2ast.Map{Range: src.Range, Nodes: make([]d2ast.MapNodeBox, 0, len(src.Nodes))} + for _, box := range src.Nodes { + switch n := box.Unbox().(type) { + case *d2ast.Comment: + copy := *n + dst.Nodes = append(dst.Nodes, d2ast.MakeMapNodeBox(©)) + case *d2ast.BlockComment: + copy := *n + dst.Nodes = append(dst.Nodes, d2ast.MakeMapNodeBox(©)) + case *d2ast.Substitution: + dst.Nodes = append(dst.Nodes, d2ast.MakeMapNodeBox(cloneASTSubstitution(n))) + case *d2ast.Import: + dst.Nodes = append(dst.Nodes, d2ast.MakeMapNodeBox(cloneASTImport(n))) + case *d2ast.Key: + dst.Nodes = append(dst.Nodes, d2ast.MakeMapNodeBox(cloneASTKey(n))) + } + } + return dst +} + +func cloneASTArray(src *d2ast.Array) *d2ast.Array { + if src == nil { + return nil + } + dst := &d2ast.Array{Range: src.Range, Nodes: make([]d2ast.ArrayNodeBox, 0, len(src.Nodes))} + for _, box := range src.Nodes { + switch n := box.Unbox().(type) { + case *d2ast.Comment: + copy := *n + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(©)) + case *d2ast.BlockComment: + copy := *n + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(©)) + case *d2ast.Substitution: + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(cloneASTSubstitution(n))) + case *d2ast.Import: + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(cloneASTImport(n))) + case *d2ast.Array: + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(cloneASTArray(n))) + case *d2ast.Map: + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(cloneASTMap(n))) + case d2ast.Scalar: + dst.Nodes = append(dst.Nodes, d2ast.MakeArrayNodeBox(cloneASTScalar(n).(d2ast.ArrayNode))) + } + } + return dst +} + +func cloneASTKey(src *d2ast.Key) *d2ast.Key { + if src == nil { + return nil + } + dst := &d2ast.Key{ + Range: src.Range, + Ampersand: src.Ampersand, + NotAmpersand: src.NotAmpersand, + Key: cloneASTKeyPath(src.Key), + EdgeKey: cloneASTKeyPath(src.EdgeKey), + Primary: cloneASTScalarBox(src.Primary), + Value: cloneASTValueBox(src.Value), + } + if src.EdgeIndex != nil { + index := *src.EdgeIndex + if src.EdgeIndex.Int != nil { + value := *src.EdgeIndex.Int + index.Int = &value + } + dst.EdgeIndex = &index + } + dst.Edges = make([]*d2ast.Edge, len(src.Edges)) + for i, edge := range src.Edges { + dst.Edges[i] = &d2ast.Edge{ + Range: edge.Range, + Src: cloneASTKeyPath(edge.Src), + SrcArrow: edge.SrcArrow, + Dst: cloneASTKeyPath(edge.Dst), + DstArrow: edge.DstArrow, + } + } + return dst +} + +func cloneASTKeyPath(src *d2ast.KeyPath) *d2ast.KeyPath { + if src == nil { + return nil + } + dst := &d2ast.KeyPath{Range: src.Range, Path: make([]*d2ast.StringBox, len(src.Path))} + for i, part := range src.Path { + dst.Path[i] = cloneASTStringBox(part) + } + return dst +} + +func cloneASTStringBox(src *d2ast.StringBox) *d2ast.StringBox { + if src == nil || src.Unbox() == nil { + return nil + } + return d2ast.MakeValueBox(cloneASTScalar(src.Unbox())).StringBox() +} + +func cloneASTSubstitution(src *d2ast.Substitution) *d2ast.Substitution { + if src == nil { + return nil + } + dst := &d2ast.Substitution{Range: src.Range, Spread: src.Spread, Path: make([]*d2ast.StringBox, len(src.Path))} + for i, part := range src.Path { + dst.Path[i] = cloneASTStringBox(part) + } + return dst +} + +func cloneASTImport(src *d2ast.Import) *d2ast.Import { + if src == nil { + return nil + } + dst := &d2ast.Import{Range: src.Range, Spread: src.Spread, Pre: src.Pre, Path: make([]*d2ast.StringBox, len(src.Path))} + for i, part := range src.Path { + dst.Path[i] = cloneASTStringBox(part) + } + return dst +} + +func cloneASTScalarBox(src d2ast.ScalarBox) d2ast.ScalarBox { + if src.Unbox() == nil { + return d2ast.ScalarBox{} + } + return d2ast.MakeValueBox(cloneASTScalar(src.Unbox())).ScalarBox() +} + +func cloneASTValueBox(src d2ast.ValueBox) d2ast.ValueBox { + switch value := src.Unbox().(type) { + case nil: + return d2ast.ValueBox{} + case *d2ast.Map: + return d2ast.MakeValueBox(cloneASTMap(value)) + case *d2ast.Array: + return d2ast.MakeValueBox(cloneASTArray(value)) + case *d2ast.Import: + return d2ast.MakeValueBox(cloneASTImport(value)) + case d2ast.Scalar: + return d2ast.MakeValueBox(cloneASTScalar(value)) + default: + panic("unhandled AST value") + } +} + +func cloneASTScalar(src d2ast.Scalar) d2ast.Scalar { + if src == nil { + return nil + } + switch value := src.(type) { + case *d2ast.Null: + copy := *value + return © + case *d2ast.Suspension: + copy := *value + return © + case *d2ast.Boolean: + copy := *value + return © + case *d2ast.Number: + copy := *value + if value.Value != nil { + copy.Value = new(big.Rat).Set(value.Value) + } + return © + case *d2ast.UnquotedString: + copy := *value + copy.Pattern = append([]string(nil), value.Pattern...) + copy.Value = cloneASTInterpolation(value.Value) + return © + case *d2ast.DoubleQuotedString: + copy := *value + copy.Value = cloneASTInterpolation(value.Value) + return © + case *d2ast.SingleQuotedString: + copy := *value + return © + case *d2ast.BlockString: + copy := *value + return © + default: + panic("unhandled AST scalar") + } +} + +func cloneASTInterpolation(src []d2ast.InterpolationBox) []d2ast.InterpolationBox { + dst := make([]d2ast.InterpolationBox, len(src)) + for i, box := range src { + if box.String != nil { + value := *box.String + dst[i].String = &value + } + if box.StringRaw != nil { + value := *box.StringRaw + dst[i].StringRaw = &value + } + dst[i].Substitution = cloneASTSubstitution(box.Substitution) + } + return dst +} + +// cloneImportMap deep-copies mutable IR and remaps reference/glob contexts to +// the copy. The ordinary Map.Copy intentionally shares source contexts; import +// templates need stronger isolation because nilScopeMap and substitutions +// mutate them after each import. +func cloneImportMap(src *Map) *Map { + dst := src.Copy(nil).(*Map) + mapCopies := make(map[*Map]*Map) + collectMapCopies(src, dst, mapCopies) + contextCopies := make(map[*RefContext]*RefContext) + cloneContext := func(src *RefContext) *RefContext { + if src == nil { + return nil + } + if dst := contextCopies[src]; dst != nil { + return dst + } + dst := *src + if mapped := mapCopies[src.ScopeMap]; mapped != nil { + dst.ScopeMap = mapped + } + contextCopies[src] = &dst + return &dst + } + + cloneNodeReferences(src, dst, cloneContext) + cloneGlobContexts(src, dst, mapCopies, cloneContext) + return dst +} + +func collectMapCopies(src, dst Node, copies map[*Map]*Map) { + switch src := src.(type) { + case *Map: + dst := dst.(*Map) + copies[src] = dst + for i := range src.Fields { + collectMapCopies(src.Fields[i], dst.Fields[i], copies) + } + for i := range src.Edges { + collectMapCopies(src.Edges[i], dst.Edges[i], copies) + } + case *Field: + dst := dst.(*Field) + if src.Composite != nil { + collectMapCopies(src.Composite, dst.Composite, copies) + } + case *Edge: + dst := dst.(*Edge) + if src.Map_ != nil { + collectMapCopies(src.Map_, dst.Map_, copies) + } + case *Array: + dst := dst.(*Array) + for i := range src.Values { + collectMapCopies(src.Values[i], dst.Values[i], copies) + } + } +} + +func cloneNodeReferences(src, dst Node, cloneContext func(*RefContext) *RefContext) { + switch src := src.(type) { + case *Map: + dst := dst.(*Map) + for i := range src.Fields { + cloneNodeReferences(src.Fields[i], dst.Fields[i], cloneContext) + } + for i := range src.Edges { + cloneNodeReferences(src.Edges[i], dst.Edges[i], cloneContext) + } + case *Field: + dst := dst.(*Field) + dst.References = make([]*FieldReference, len(src.References)) + for i, ref := range src.References { + copy := *ref + copy.Context_ = cloneContext(ref.Context_) + dst.References[i] = © + } + if src.Composite != nil { + cloneNodeReferences(src.Composite, dst.Composite, cloneContext) + } + case *Edge: + dst := dst.(*Edge) + dst.References = make([]*EdgeReference, len(src.References)) + for i, ref := range src.References { + copy := *ref + copy.Context_ = cloneContext(ref.Context_) + dst.References[i] = © + } + if src.Map_ != nil { + cloneNodeReferences(src.Map_, dst.Map_, cloneContext) + } + case *Array: + dst := dst.(*Array) + for i := range src.Values { + cloneNodeReferences(src.Values[i], dst.Values[i], cloneContext) + } + } +} + +func cloneGlobContexts(src, dst Node, mapCopies map[*Map]*Map, cloneContext func(*RefContext) *RefContext) { + globCopies := make(map[*globContext]*globContext) + var cloneGlob func(*globContext) *globContext + cloneGlob = func(src *globContext) *globContext { + if src == nil { + return nil + } + if dst := globCopies[src]; dst != nil { + return dst + } + dst := *src + globCopies[src] = &dst + dst.refctx = cloneContext(src.refctx) + dst.appliedFields = cloneStringSet(src.appliedFields) + dst.appliedEdges = cloneStringSet(src.appliedEdges) + dst.root = cloneGlob(src.root) + return &dst + } + + for srcMap, dstMap := range mapCopies { + dstMap.globs = make([]*globContext, len(srcMap.globs)) + for i, glob := range srcMap.globs { + dstMap.globs[i] = cloneGlob(glob) + } + } +} + +func cloneStringSet(src map[string]struct{}) map[string]struct{} { + if src == nil { + return nil + } + dst := make(map[string]struct{}, len(src)) + for key := range src { + dst[key] = struct{}{} + } + return dst +} diff --git a/d2ir/index_test.go b/d2ir/index_test.go new file mode 100644 index 0000000000..ff222160a1 --- /dev/null +++ b/d2ir/index_test.go @@ -0,0 +1,389 @@ +package d2ir + +import ( + "strings" + "sync" + "testing" + + "github.com/d2lang/util-go/mapfs" + + "github.com/d2lang/d2/d2ast" + "github.com/d2lang/d2/d2parser" +) + +func TestMapFieldIndexPreservesLookupSemantics(t *testing.T) { + unquoted := &Field{Name: d2ast.FlatUnquotedString("style")} + quoted := &Field{Name: d2ast.FlatDoubleQuotedString("style")} + kelvin := &Field{Name: d2ast.FlatUnquotedString("\u212Aelvin")} + m := &Map{Fields: []*Field{unquoted, quoted, kelvin}} + + if got := m.getFieldIndexed(d2ast.FlatUnquotedString("STYLE")); got != unquoted { + t.Fatalf("unquoted reserved lookup = %p, want %p", got, unquoted) + } + if got := m.getFieldIndexed(d2ast.FlatDoubleQuotedString("STYLE")); got != quoted { + t.Fatalf("quoted reserved lookup = %p, want %p", got, quoted) + } + if got := m.getFieldIndexed(d2ast.FlatUnquotedString("kelvin")); got != kelvin { + t.Fatalf("Unicode case-folded lookup = %p, want %p", got, kelvin) + } + + // Fields remains public for consumers that construct IR directly. A length + // change must invalidate a previously built derived index automatically. + added := &Field{Name: d2ast.FlatUnquotedString("added")} + m.Fields = append(m.Fields, added) + if got := m.getFieldIndexed(d2ast.FlatUnquotedString("ADDED")); got != added { + t.Fatalf("lookup after direct append = %p, want %p", got, added) + } +} + +func TestPublicMapLookupsRemainSafeAfterDirectMutation(t *testing.T) { + child := &Field{Name: d2ast.FlatUnquotedString("child")} + containerMap := &Map{Fields: []*Field{child}} + container := &Field{Name: d2ast.FlatUnquotedString("same"), Composite: containerMap} + containerMap.parent = container + empty := &Field{Name: d2ast.FlatUnquotedString("same")} + m := &Map{Fields: []*Field{empty, container}} + empty.parent, container.parent, child.parent = m, m, containerMap + + // Prime the compiler-only index, then mutate the public slice without an + // internal invalidation hook. Exported lookups must still scan live state. + _ = m.getFieldIndexed(d2ast.FlatUnquotedString("same")) + if got := m.GetField(d2ast.FlatUnquotedString("same"), d2ast.FlatUnquotedString("child")); got != child { + t.Fatalf("duplicate nested lookup = %p, want %p", got, child) + } + replacement := &Field{parent: m, Name: d2ast.FlatUnquotedString("replacement")} + m.Fields[0] = replacement + if got := m.GetField(d2ast.FlatUnquotedString("replacement")); got != replacement { + t.Fatalf("lookup after same-length replacement = %p, want %p", got, replacement) + } + replacement.Name = d2ast.FlatUnquotedString("renamed") + if got := m.GetField(d2ast.FlatUnquotedString("renamed")); got != replacement { + t.Fatalf("lookup after direct rename = %p, want %p", got, replacement) + } + renamedKey, err := d2parser.ParseKey("renamed") + if err != nil { + t.Fatal(err) + } + if got, err := m.EnsureField(renamedKey, nil, true, nil); err != nil || len(got) != 1 || got[0] != replacement { + t.Fatalf("EnsureField after direct rename = %#v, %v; want replacement", got, err) + } + + edge := &Edge{parent: m, ID: &EdgeID{ + SrcPath: []d2ast.String{d2ast.FlatUnquotedString("a")}, + DstPath: []d2ast.String{d2ast.FlatUnquotedString("b")}, + }} + m.Edges = []*Edge{edge} + _ = m.getEdgesIndexed(edge.ID) + edge.ID.SrcPath[0] = d2ast.FlatUnquotedString("changed") + query := edge.ID.Copy() + if got := m.GetEdges(query, nil, nil); len(got) != 1 || got[0] != edge { + t.Fatalf("edge lookup after direct ID mutation = %#v, want edge", got) + } + + var wg sync.WaitGroup + for i := 0; i < 8; i++ { + wg.Add(1) + go func() { + defer wg.Done() + for j := 0; j < 100; j++ { + _ = m.GetField(d2ast.FlatUnquotedString("renamed")) + _, _ = m.EnsureField(renamedKey, nil, false, nil) + _ = m.GetEdges(query, nil, nil) + } + }() + } + wg.Wait() +} + +func compileIndexTestSource(t *testing.T, source string) *Map { + t.Helper() + ast, err := d2parser.Parse("index-test.d2", strings.NewReader(source), nil) + if err != nil { + t.Fatal(err) + } + root, _, err := Compile(ast, nil) + if err != nil { + t.Fatal(err) + } + return root +} + +func TestOverlayMapUsesLivePublicFieldAndEdgeState(t *testing.T) { + base := compileIndexTestSource(t, "a: base field\nb\na -> b: base edge\n") + overlay := compileIndexTestSource(t, "c: overlay field\nb\nc -> b: overlay edge\n") + + field := base.GetField(d2ast.FlatUnquotedString("a")) + if field == nil || len(base.Edges) != 1 { + t.Fatal("base fixture did not compile as expected") + } + edge := base.Edges[0] + _ = base.getFieldIndexed(d2ast.FlatUnquotedString("a")) + _ = base.getEdgesIndexed(edge.ID) + field.Name = d2ast.FlatUnquotedString("c") + edge.ID.SrcPath[0] = d2ast.FlatUnquotedString("c") + + OverlayMap(base, overlay) + if got := len(base.Fields); got != 2 { + t.Fatalf("field count after overlay = %d, want 2", got) + } + if got := field.Primary(); got == nil || got.Value.ScalarString() != "overlay field" { + t.Fatalf("renamed field primary after overlay = %#v, want overlay field", got) + } + if got := len(base.Edges); got != 1 { + t.Fatalf("edge count after overlay = %d, want 1", got) + } + if got := edge.Primary(); got == nil || got.Value.ScalarString() != "overlay edge" { + t.Fatalf("mutated edge primary after overlay = %#v, want overlay edge", got) + } +} + +func TestExpandSubstitutionUsesLivePublicFieldState(t *testing.T) { + base := compileIndexTestSource(t, "placeholder\nold: base\n") + resolved := compileIndexTestSource(t, "new: resolved\n") + placeholder := base.GetField(d2ast.FlatUnquotedString("placeholder")) + field := base.GetField(d2ast.FlatUnquotedString("old")) + if placeholder == nil || field == nil { + t.Fatal("substitution fixture did not compile as expected") + } + _ = base.getFieldIndexed(d2ast.FlatUnquotedString("old")) + field.Name = d2ast.FlatUnquotedString("new") + + ExpandSubstitution(base, resolved, placeholder) + if got := len(base.Fields); got != 2 { + t.Fatalf("field count after substitution expansion = %d, want 2", got) + } + if got := field.Primary(); got == nil || got.Value.ScalarString() != "resolved" { + t.Fatalf("renamed field primary after substitution = %#v, want resolved", got) + } +} + +func TestCreateEdgeUsesLivePublicFieldAndEdgeState(t *testing.T) { + root := compileIndexTestSource(t, "a\nb\na -> b\n") + field := root.GetField(d2ast.FlatUnquotedString("a")) + if field == nil || len(root.Edges) != 1 { + t.Fatal("edge fixture did not compile as expected") + } + existing := root.Edges[0] + _ = root.getFieldIndexed(d2ast.FlatUnquotedString("a")) + _ = root.getEdgesIndexed(existing.ID) + field.Name = d2ast.FlatUnquotedString("c") + existing.ID.SrcPath[0] = d2ast.FlatUnquotedString("c") + + key, err := d2parser.ParseMapKey("c -> b") + if err != nil { + t.Fatal(err) + } + refctx := &RefContext{Key: key, Edge: key.Edges[0], ScopeMap: root} + c := &compiler{globContextStack: [][]*globContext{{}}} + created, err := root.CreateEdge(NewEdgeIDs(key)[0], refctx, c) + if err != nil { + t.Fatal(err) + } + if got := len(root.Fields); got != 2 { + t.Fatalf("field count after CreateEdge = %d, want 2", got) + } + if len(created) != 1 || created[0].ID.Index == nil || *created[0].ID.Index != 1 { + t.Fatalf("created edge = %#v, want one edge with index 1", created) + } + if got := len(root.Edges); got != 2 { + t.Fatalf("edge count after CreateEdge = %d, want 2", got) + } +} + +func TestNestedCompileKeyRetainsOuterLazyPostTargets(t *testing.T) { + root := compileIndexTestSource(t, `*: { + &foo: yes + style.fill: red +} +x: { + foo + foo: yes +} +`) + fill := root.GetField( + d2ast.FlatUnquotedString("x"), + d2ast.FlatUnquotedString("style"), + d2ast.FlatUnquotedString("fill"), + ) + if fill == nil || fill.Primary() == nil || fill.Primary().Value.ScalarString() != "red" { + t.Fatalf("x.style.fill = %#v, want red", fill) + } +} + +func TestCloneImportMapDoesNotShareEdgeIDs(t *testing.T) { + index := 1 + template := &Map{} + template.initRoot() + edge := &Edge{parent: template, ID: &EdgeID{ + SrcPath: []d2ast.String{d2ast.FlatUnquotedString("a")}, + DstPath: []d2ast.String{d2ast.FlatUnquotedString("b")}, + Index: &index, + }} + template.Edges = []*Edge{edge} + + first := cloneImportMap(template) + second := cloneImportMap(template) + first.Edges[0].ID.SrcPath[0] = d2ast.FlatUnquotedString("changed") + *first.Edges[0].ID.Index = 9 + if got := template.Edges[0].ID.SrcPath[0].ScalarString(); got != "a" { + t.Fatalf("template source = %q, want a", got) + } + if got := second.Edges[0].ID.SrcPath[0].ScalarString(); got != "a" { + t.Fatalf("second clone source = %q, want a", got) + } + if got := *second.Edges[0].ID.Index; got != 1 { + t.Fatalf("second clone index = %d, want 1", got) + } +} + +func TestLeadingGlobReplaysAfterSelectedFieldImport(t *testing.T) { + filesystem, err := mapfs.New(map[string]string{ + "index.d2": "**: default\nx\nx: @nested\n", + "nested.d2": "a: { b }\n", + }) + if err != nil { + t.Fatal(err) + } + defer filesystem.Close() + ast, err := d2parser.Parse("index.d2", strings.NewReader("**: default\nx\nx: @nested\n"), nil) + if err != nil { + t.Fatal(err) + } + root, _, err := Compile(ast, &CompileOptions{FS: filesystem}) + if err != nil { + t.Fatal(err) + } + for _, path := range [][]d2ast.String{ + {d2ast.FlatUnquotedString("x")}, + {d2ast.FlatUnquotedString("x"), d2ast.FlatUnquotedString("a")}, + {d2ast.FlatUnquotedString("x"), d2ast.FlatUnquotedString("a"), d2ast.FlatUnquotedString("b")}, + } { + field := root.GetField(path...) + if field == nil || field.Primary() == nil || field.Primary().Value.ScalarString() != "default" { + t.Fatalf("field %v did not receive leading glob: %#v", d2ast.MakeKeyPathString(path), field) + } + } +} + +func TestLazyGlobReferencesAreCanonical(t *testing.T) { + ast, err := d2parser.Parse("canonical.d2", strings.NewReader("**.style.fill: red\nx\ny\n"), nil) + if err != nil { + t.Fatal(err) + } + root, _, err := Compile(ast, nil) + if err != nil { + t.Fatal(err) + } + + var checkMap func(*Map) + checkMap = func(m *Map) { + for _, field := range m.Fields { + for i, ref := range field.References { + if !ref.DueToLazyGlob_ { + continue + } + for _, previous := range field.References[:i] { + if previous.DueToLazyGlob_ && sameReferenceContext(previous.Context_, ref.Context_) && + previous.KeyPath == ref.KeyPath && previous.String == ref.String && + previous.DueToGlob_ == ref.DueToGlob_ { + t.Fatalf("field %q contains a duplicate lazy-glob reference", field.Name.ScalarString()) + } + } + } + if field.Map() != nil { + checkMap(field.Map()) + } + } + } + checkMap(root) +} + +func TestMapEdgeIndexPreservesWildcardIndexSemantics(t *testing.T) { + index0, index1 := 0, 1 + makeID := func(index *int, src string) *EdgeID { + return &EdgeID{ + SrcPath: []d2ast.String{d2ast.FlatUnquotedString(src)}, + DstPath: []d2ast.String{d2ast.FlatUnquotedString("B")}, + Index: index, + } + } + e0 := &Edge{ID: makeID(&index0, "A")} + e1 := &Edge{ID: makeID(&index1, "a")} + m := &Map{Edges: []*Edge{e0, e1}} + + all := m.GetEdges(makeID(nil, "A"), nil, nil) + if len(all) != 2 || all[0] != e0 || all[1] != e1 { + t.Fatalf("wildcard index lookup = %#v, want both edges in source order", all) + } + one := m.GetEdges(makeID(&index1, "A"), nil, nil) + if len(one) != 1 || one[0] != e1 { + t.Fatalf("indexed lookup = %#v, want second edge", one) + } +} + +func TestMapStructureVersionIncludesDescendants(t *testing.T) { + root := &Map{} + root.initRoot() + container := &Field{parent: root, Name: d2ast.FlatUnquotedString("container")} + root.appendField(container) + child := &Map{parent: container} + container.Composite = child + + before := root.structureVersion + child.appendField(&Field{parent: child, Name: d2ast.FlatUnquotedString("nested")}) + if root.structureVersion != before+1 { + t.Fatalf("root structure version = %d, want %d", root.structureVersion, before+1) + } +} + +func TestCopyBasePreservesLegacyBoardSelectionAndOrder(t *testing.T) { + root := &Map{} + root.initRoot() + quotedLayers := &Field{parent: root, Name: d2ast.FlatDoubleQuotedString("layers")} + ordinary := &Field{parent: root, Name: d2ast.FlatUnquotedString("ordinary")} + scenarios := &Field{parent: root, Name: d2ast.FlatUnquotedString("scenarios")} + steps := &Field{parent: root, Name: d2ast.FlatUnquotedString("steps")} + root.Fields = []*Field{steps, quotedLayers, ordinary, scenarios} + + base := root.CopyBase(nil) + if len(base.Fields) != 1 || base.Fields[0].Name.ScalarString() != "ordinary" { + t.Fatalf("base fields = %#v, want only ordinary", base.Fields) + } + want := []*Field{ordinary, quotedLayers, scenarios, steps} + for i, field := range want { + if root.Fields[i] != field { + t.Fatalf("root field %d = %p, want %p", i, root.Fields[i], field) + } + } +} + +func TestCopyBasePreservesLegacyQuotedBoardEdgeCleanup(t *testing.T) { + const source = `"layers" -> x +scenarios: { s: {} } +` + ast, err := d2parser.Parse("quoted-board.d2", strings.NewReader(source), nil) + if err != nil { + t.Fatal(err) + } + root, _, err := Compile(ast, nil) + if err != nil { + t.Fatal(err) + } + scenarios := root.GetField(d2ast.FlatUnquotedString("scenarios")) + if scenarios == nil || scenarios.Map() == nil { + t.Fatal("scenarios map not found") + } + scenario := scenarios.Map().GetField(d2ast.FlatUnquotedString("s")) + if scenario == nil || scenario.Map() == nil { + t.Fatal("scenario s not found") + } + if got := scenario.Map().GetField(d2ast.FlatDoubleQuotedString("layers")); got != nil { + t.Fatalf("quoted layers leaked into scenario base: %#v", got) + } + if got := len(scenario.Map().Edges); got != 0 { + t.Fatalf("scenario edge count = %d, want 0", got) + } + if got := scenario.Map().GetField(d2ast.FlatUnquotedString("x")); got == nil { + t.Fatal("ordinary endpoint x was removed from scenario base") + } +} diff --git a/d2ir/merge.go b/d2ir/merge.go index 3b22b27df9..9b5e91b6fe 100644 --- a/d2ir/merge.go +++ b/d2ir/merge.go @@ -1,27 +1,67 @@ package d2ir +func structureCounts(m *Map) (fields, edges int) { + if m == nil { + return 0, 0 + } + return m.FieldCountRecursive(), m.EdgeCountRecursive() +} + +func markStructureCountDelta(parent *Map, beforeFields, beforeEdges int, after *Map) { + afterFields, afterEdges := structureCounts(after) + if beforeFields != afterFields || beforeEdges != afterEdges { + parent.markStructureChanged() + } +} + func OverlayMap(base, overlay *Map) { + overlayMap(base, overlay, false) +} + +func overlayMapIndexed(base, overlay *Map) { + overlayMap(base, overlay, true) +} + +func overlayMap(base, overlay *Map, indexed bool) { for _, of := range overlay.Fields { - bf := base.GetField(of.Name) + var bf *Field + if indexed { + bf = base.getFieldIndexed(of.Name) + } else { + bf = base.GetField(of.Name) + } if bf == nil { - base.Fields = append(base.Fields, of.Copy(base).(*Field)) + base.appendField(of.Copy(base).(*Field)) continue } - OverlayField(bf, of) + overlayField(bf, of, indexed) } for _, oe := range overlay.Edges { - bea := base.GetEdges(oe.ID, nil, nil) + var bea []*Edge + if indexed { + bea = base.getEdgesIndexed(oe.ID) + } else { + bea = base.GetEdges(oe.ID, nil, nil) + } if len(bea) == 0 { - base.Edges = append(base.Edges, oe.Copy(base).(*Edge)) + base.appendEdge(oe.Copy(base).(*Edge)) continue } be := bea[0] - OverlayEdge(be, oe) + overlayEdge(be, oe, indexed) } } func ExpandSubstitution(m, resolved *Map, placeholder *Field) { + expandSubstitution(m, resolved, placeholder, false) +} + +func expandSubstitutionIndexed(m, resolved *Map, placeholder *Field) { + expandSubstitution(m, resolved, placeholder, true) +} + +func expandSubstitution(m, resolved *Map, placeholder *Field, indexed bool) { fi := -1 for i := 0; i < len(m.Fields); i++ { if m.Fields[i] == placeholder { @@ -31,39 +71,59 @@ func ExpandSubstitution(m, resolved *Map, placeholder *Field) { } for _, of := range resolved.Fields { - bf := m.GetField(of.Name) + var bf *Field + if indexed { + bf = m.getFieldIndexed(of.Name) + } else { + bf = m.GetField(of.Name) + } if bf == nil { - m.Fields = append(m.Fields[:fi], append([]*Field{of.Copy(m).(*Field)}, m.Fields[fi:]...)...) + m.insertField(fi, of.Copy(m).(*Field)) fi++ continue } - OverlayField(bf, of) + overlayField(bf, of, indexed) } // NOTE this doesn't expand edges in place, and just appends // I suppose to do this, there needs to be an edge placeholder too on top of the field placeholder // Will wait to see if a problem for _, oe := range resolved.Edges { - bea := m.GetEdges(oe.ID, nil, nil) + var bea []*Edge + if indexed { + bea = m.getEdgesIndexed(oe.ID) + } else { + bea = m.GetEdges(oe.ID, nil, nil) + } if len(bea) == 0 { - m.Edges = append(m.Edges, oe.Copy(m).(*Edge)) + m.appendEdge(oe.Copy(m).(*Edge)) continue } be := bea[0] - OverlayEdge(be, oe) + overlayEdge(be, oe, indexed) } } func OverlayField(bf, of *Field) { + overlayField(bf, of, false) +} + +func overlayFieldIndexed(bf, of *Field) { + overlayField(bf, of, true) +} + +func overlayField(bf, of *Field, indexed bool) { if of.Primary_ != nil { bf.Primary_ = of.Primary_.Copy(bf).(*Scalar) } if of.Composite != nil { if bf.Map() != nil && of.Map() != nil { - OverlayMap(bf.Map(), of.Map()) + overlayMap(bf.Map(), of.Map(), indexed) } else { + beforeFields, beforeEdges := structureCounts(bf.Map()) bf.Composite = of.Composite.Copy(bf).(Composite) + markStructureCountDelta(ParentMap(bf), beforeFields, beforeEdges, bf.Map()) } } @@ -71,14 +131,20 @@ func OverlayField(bf, of *Field) { } func OverlayEdge(be, oe *Edge) { + overlayEdge(be, oe, false) +} + +func overlayEdge(be, oe *Edge, indexed bool) { if oe.Primary_ != nil { be.Primary_ = oe.Primary_.Copy(be).(*Scalar) } if oe.Map_ != nil { if be.Map_ != nil { - OverlayMap(be.Map(), oe.Map_) + overlayMap(be.Map(), oe.Map_, indexed) } else { + beforeFields, beforeEdges := structureCounts(be.Map()) be.Map_ = oe.Map_.Copy(be).(*Map) + markStructureCountDelta(ParentMap(be), beforeFields, beforeEdges, be.Map()) } } be.References = append(be.References, oe.References...) diff --git a/d2ir/pattern.go b/d2ir/pattern.go index 65769dcf87..6c79d1699f 100644 --- a/d2ir/pattern.go +++ b/d2ir/pattern.go @@ -19,6 +19,101 @@ func (m *Map) multiGlob(pattern []string) ([]*Field, bool) { return nil, false } +// pathToField returns the source-ordered field path from m to target. A nil +// result means target is outside m's subtree. +func (m *Map) pathToField(target *Field) []*Field { + var reverse []*Field + for current := target; current != nil; { + parent := ParentMap(current) + if parent == nil { + return nil + } + reverse = append(reverse, current) + if parent == m { + path := make([]*Field, len(reverse)) + for i := range reverse { + path[len(reverse)-1-i] = reverse[i] + } + return path + } + current = ParentField(parent) + } + return nil +} + +func (m *Map) directChildToward(target *Field) *Field { + path := m.pathToField(target) + if len(path) == 0 { + return nil + } + return path[0] +} + +// multiGlobMatchesToward returns the fields in the changed top-level branch +// toward target that the existing recursive glob traversal would append. A +// whole branch is replayed (rather than only the target path) so reference and +// filter ordering remains identical within the affected branch. +func (m *Map) multiGlobMatchesToward(target *Field, pattern []string) []*Field { + path := m.pathToField(target) + if len(path) == 0 { + return nil + } + var matches []*Field + if d2ast.IsDoubleGlob(pattern) { + _doubleGlobField(path[0], &matches) + return matches + } + if d2ast.IsTripleGlob(pattern) { + _tripleGlobField(path[0], &matches) + return matches + } + return nil +} + +func _doubleGlobField(f *Field, matches *[]*Field) { + if f == nil || f.Name == nil { + return + } + name := f.Name.ScalarString() + if _, reserved := d2ast.ReservedKeywords[name]; reserved && f.Name.IsUnquoted() { + if _, board := d2ast.BoardKeywords[name]; board { + return + } + if f.Map() != nil { + f.Map()._doubleGlob(matches) + } + return + } + if NodeBoardKind(f) == "" { + *matches = append(*matches, f) + } + if f.Map() != nil { + f.Map()._doubleGlob(matches) + } +} + +func _tripleGlobField(f *Field, matches *[]*Field) { + if f == nil || f.Name == nil { + return + } + name := f.Name.ScalarString() + if _, reserved := d2ast.ReservedKeywords[name]; reserved && f.Name.IsUnquoted() { + if _, board := d2ast.BoardKeywords[name]; !board { + return + } + if f.Map() != nil { + f.Map()._tripleGlob(matches) + } + return + } + if NodeBoardKind(f) == "" { + *matches = append(*matches, f) + } + if f.Map() != nil { + f.Map()._tripleGlob(matches) + } +} + func (m *Map) _doubleGlob(fa *[]*Field) { for _, f := range m.Fields { if f.Name == nil { diff --git a/d2ir/performance_test.go b/d2ir/performance_test.go new file mode 100644 index 0000000000..51e1a09ef3 --- /dev/null +++ b/d2ir/performance_test.go @@ -0,0 +1,102 @@ +package d2ir_test + +import ( + "fmt" + "strings" + "testing" + + "github.com/d2lang/util-go/mapfs" + + "github.com/d2lang/d2/d2ir" + "github.com/d2lang/d2/d2parser" +) + +func benchmarkCompileSource(b *testing.B, source string) { + b.Helper() + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + ast, err := d2parser.Parse("benchmark.d2", strings.NewReader(source), nil) + if err != nil { + b.Fatal(err) + } + if _, _, err := d2ir.Compile(ast, nil); err != nil { + b.Fatal(err) + } + } +} + +func BenchmarkCompileRepeatedImport(b *testing.B) { + for _, count := range []int{10, 50, 100} { + b.Run(fmt.Sprintf("imports=%d", count), func(b *testing.B) { + var main strings.Builder + var shared strings.Builder + for i := 0; i < 100; i++ { + fmt.Fprintf(&shared, "node%d: { style.fill: red }\n", i) + } + for i := 0; i < count; i++ { + fmt.Fprintf(&main, "use%d: @shared.node%d\n", i, i%100) + } + filesystem, err := mapfs.New(map[string]string{ + "index.d2": main.String(), + "shared.d2": shared.String(), + }) + if err != nil { + b.Fatal(err) + } + defer filesystem.Close() + + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + ast, err := d2parser.Parse("index.d2", strings.NewReader(main.String()), nil) + if err != nil { + b.Fatal(err) + } + if _, _, err := d2ir.Compile(ast, &d2ir.CompileOptions{FS: filesystem}); err != nil { + b.Fatal(err) + } + } + }) + } +} + +func BenchmarkCompileFlatFields(b *testing.B) { + for _, count := range []int{100, 1000, 4000} { + b.Run(fmt.Sprintf("fields=%d", count), func(b *testing.B) { + var source strings.Builder + for i := 0; i < count; i++ { + fmt.Fprintf(&source, "node%d\n", i) + } + benchmarkCompileSource(b, source.String()) + }) + } +} + +func BenchmarkCompileLeadingGlob(b *testing.B) { + for _, count := range []int{100, 500, 1000, 4000} { + b.Run(fmt.Sprintf("fields=%d", count), func(b *testing.B) { + var source strings.Builder + source.WriteString("**.style.stroke-width: 2\n") + for i := 0; i < count; i++ { + fmt.Fprintf(&source, "node%d\n", i) + } + benchmarkCompileSource(b, source.String()) + }) + } +} + +func BenchmarkCompileDistinctEdges(b *testing.B) { + for _, count := range []int{100, 1000, 3200} { + b.Run(fmt.Sprintf("edges=%d", count), func(b *testing.B) { + var source strings.Builder + for i := 0; i <= count; i++ { + fmt.Fprintf(&source, "node%d\n", i) + } + for i := 0; i < count; i++ { + fmt.Fprintf(&source, "node%d -> node%d\n", i, i+1) + } + benchmarkCompileSource(b, source.String()) + }) + } +} diff --git a/d2js/d2wasm/functions.go b/d2js/d2wasm/functions.go index 5197d3bf24..e88c278959 100644 --- a/d2js/d2wasm/functions.go +++ b/d2js/d2wasm/functions.go @@ -180,7 +180,8 @@ func Compile(args []js.Value) (interface{}, error) { } compileOpts := &d2lib.CompileOptions{ - UTF16Pos: true, + UTF16Pos: true, + LayoutReuse: true, } inputPath := DEFAULT_INPUT_PATH diff --git a/d2layouts/d2dagrelayout/layout.go b/d2layouts/d2dagrelayout/layout.go index e07c4e357c..0e77ee6464 100644 --- a/d2layouts/d2dagrelayout/layout.go +++ b/d2layouts/d2dagrelayout/layout.go @@ -106,6 +106,18 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err for _, obj := range g.Objects { mapper.Register(obj) } + resolver := newEndpointResolver(g) + type endpointPair struct { + src, dst *d2graph.Object + } + resolvedEndpoints := make(map[*d2graph.Edge]endpointPair, len(g.Edges)) + directedPairCounts := make(map[endpointPair]int, len(g.Edges)) + for _, edge := range g.Edges { + src, dst := resolver.resolve(edge) + pair := endpointPair{src: src, dst: dst} + resolvedEndpoints[edge] = pair + directedPairCounts[pair]++ + } dagreGraph := dagro.NewGraph(dagro.GraphOptions{Compound: true, Multigraph: true}).SetGraph(dagro.Attrs{ "ranksep": float64(rootAttrs.ranksep), @@ -128,17 +140,15 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } for _, edge := range g.Edges { - src, dst := getEdgeEndpoints(g, edge) + pair := resolvedEndpoints[edge] + src, dst := pair.src, pair.dst width := edge.LabelDimensions.Width height := edge.LabelDimensions.Height - numEdges := 0 - for _, e := range g.Edges { - otherSrc, otherDst := getEdgeEndpoints(g, e) - if (otherSrc == src && otherDst == dst) || (otherSrc == dst && otherDst == src) { - numEdges++ - } + numEdges := directedPairCounts[pair] + if src != dst { + numEdges += directedPairCounts[endpointPair{src: dst, dst: src}] } // We want to leave some gap between multiple edges @@ -360,17 +370,50 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err return nil } -func getEdgeEndpoints(g *d2graph.Graph, edge *d2graph.Edge) (*d2graph.Object, *d2graph.Object) { +type containerEndpoints struct { + head, tail *d2graph.Object +} + +type endpointResolver struct { + g *d2graph.Graph + containers map[*d2graph.Object]containerEndpoints +} + +func newEndpointResolver(g *d2graph.Graph) *endpointResolver { + return &endpointResolver{ + g: g, + containers: make(map[*d2graph.Object]containerEndpoints), + } +} + +func (r *endpointResolver) head(container *d2graph.Object) *d2graph.Object { + return r.endpoints(container).head +} + +func (r *endpointResolver) tail(container *d2graph.Object) *d2graph.Object { + return r.endpoints(container).tail +} + +func (r *endpointResolver) endpoints(container *d2graph.Object) containerEndpoints { + endpoints, ok := r.containers[container] + if !ok { + endpoints.head, endpoints.tail = getLongestEdgeChainEndpoints(r.g, container) + r.containers[container] = endpoints + } + return endpoints +} + +func (r *endpointResolver) resolve(edge *d2graph.Edge) (*d2graph.Object, *d2graph.Object) { // dagre doesn't work with edges to containers so we connect container edges to their first child instead (going all the way down) // we will chop the edge where it intersects the container border so it only shows the edge from the container src := edge.Src for len(src.Children) > 0 && src.Class == nil && src.SQLTable == nil { // We want to get the bottom node of sources, setting its rank higher than all children - src = getLongestEdgeChainTail(g, src) + src = r.tail(src) } dst := edge.Dst for len(dst.Children) > 0 && dst.Class == nil && dst.SQLTable == nil { - dst = getLongestEdgeChainHead(g, dst) + dst = r.head(dst) } if edge.SrcArrow && !edge.DstArrow { // for `b <- a`, edge.Edge is `a -> b` and we expect this routing result @@ -379,26 +422,59 @@ func getEdgeEndpoints(g *d2graph.Graph, edge *d2graph.Edge) (*d2graph.Object, *d return src, dst } -// getLongestEdgeChainHead finds the longest chain in a container and gets its head -// If there are multiple chains of the same length, get the head closest to the center -func getLongestEdgeChainHead(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { +func getEdgeEndpoints(g *d2graph.Graph, edge *d2graph.Edge) (*d2graph.Object, *d2graph.Object) { + return newEndpointResolver(g).resolve(edge) +} + +type containerTopology struct { + container *d2graph.Object + hasIncoming map[*d2graph.Object]bool + outgoing map[*d2graph.Object][]*d2graph.Object +} + +func newContainerTopology(g *d2graph.Graph, container *d2graph.Object) *containerTopology { + topology := &containerTopology{ + container: container, + hasIncoming: make(map[*d2graph.Object]bool, len(container.ChildrenArray)), + outgoing: make(map[*d2graph.Object][]*d2graph.Object, len(container.ChildrenArray)+1), + } + for _, edge := range g.Edges { + src := inContainer(edge.Src, container) + dst := inContainer(edge.Dst, container) + if src == nil || dst == nil { + continue + } + + // The original head test counts every edge from anywhere in the + // container to a direct child's subtree, including internal edges. + if dst != container { + topology.hasIncoming[dst] = true + } + + // Preserve edge order and duplicates: the breadth-first walk's rank + // updates are order-sensitive even though the graph is usually acyclic. + if src != dst { + topology.outgoing[src] = append(topology.outgoing[src], dst) + } + // A container can enter the old traversal when an edge terminates on + // it. From there, every edge whose source is inside it is reachable. + if src != container && dst != container { + topology.outgoing[container] = append(topology.outgoing[container], dst) + } + } + return topology +} + +func (t *containerTopology) longestChainEndpoints() (*d2graph.Object, *d2graph.Object) { rank := make(map[*d2graph.Object]int) chainLength := make(map[*d2graph.Object]int) - for _, obj := range container.ChildrenArray { - isHead := true - for _, e := range g.Edges { - if inContainer(e.Src, container) != nil && inContainer(e.Dst, obj) != nil { - isHead = false - break - } - } - if !isHead { + for _, obj := range t.container.ChildrenArray { + if t.hasIncoming[obj] { continue } rank[obj] = 1 chainLength[obj] = 1 - // BFS queue := []*d2graph.Object{obj} visited := make(map[*d2graph.Object]struct{}) for len(queue) > 0 { @@ -408,96 +484,57 @@ func getLongestEdgeChainHead(g *d2graph.Graph, container *d2graph.Object) *d2gra continue } visited[curr] = struct{}{} - for _, e := range g.Edges { - child := inContainer(e.Dst, container) - if child == curr { - continue - } - if child != nil && inContainer(e.Src, curr) != nil { - if rank[curr]+1 > rank[child] { - rank[child] = rank[curr] + 1 - chainLength[obj] = go2.Max(chainLength[obj], rank[child]) - } - queue = append(queue, child) + for _, child := range t.outgoing[curr] { + if rank[curr]+1 > rank[child] { + rank[child] = rank[curr] + 1 + chainLength[obj] = go2.Max(chainLength[obj], rank[child]) } + queue = append(queue, child) } } } - max := int(math.MinInt32) - for _, obj := range container.ChildrenArray { - if chainLength[obj] > max { - max = chainLength[obj] - } + + maxChainLength := int(math.MinInt32) + maxRank := int(math.MinInt32) + for _, obj := range t.container.ChildrenArray { + maxChainLength = go2.Max(maxChainLength, chainLength[obj]) + maxRank = go2.Max(maxRank, rank[obj]) } - var heads []*d2graph.Object - for i, obj := range container.ChildrenArray { - if rank[obj] == 1 && chainLength[obj] == max { - heads = append(heads, container.ChildrenArray[i]) + var heads, tails []*d2graph.Object + for _, obj := range t.container.ChildrenArray { + if rank[obj] == 1 && chainLength[obj] == maxChainLength { + heads = append(heads, obj) + } + if rank[obj] == maxRank { + tails = append(tails, obj) } } + head := t.container.ChildrenArray[0] if len(heads) > 0 { - return heads[int(math.Floor(float64(len(heads))/2.0))] + head = heads[len(heads)/2] } - return container.ChildrenArray[0] + return head, tails[len(tails)/2] +} + +func getLongestEdgeChainEndpoints(g *d2graph.Graph, container *d2graph.Object) (*d2graph.Object, *d2graph.Object) { + return newContainerTopology(g, container).longestChainEndpoints() +} + +// getLongestEdgeChainHead finds the longest chain in a container and gets its head +// If there are multiple chains of the same length, get the head closest to the center +func getLongestEdgeChainHead(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { + head, _ := getLongestEdgeChainEndpoints(g, container) + return head } // getLongestEdgeChainTail gets the node at the end of the longest edge chain, because that will be the end of the container // and is what external connections should connect with. // If there are multiple of same length, get the one closest to the middle func getLongestEdgeChainTail(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { - rank := make(map[*d2graph.Object]int) - - for _, obj := range container.ChildrenArray { - isHead := true - for _, e := range g.Edges { - if inContainer(e.Src, container) != nil && inContainer(e.Dst, obj) != nil { - isHead = false - break - } - } - if !isHead { - continue - } - rank[obj] = 1 - // BFS - queue := []*d2graph.Object{obj} - visited := make(map[*d2graph.Object]struct{}) - for len(queue) > 0 { - curr := queue[0] - queue = queue[1:] - if _, ok := visited[curr]; ok { - continue - } - visited[curr] = struct{}{} - for _, e := range g.Edges { - child := inContainer(e.Dst, container) - if child == curr { - continue - } - if child != nil && inContainer(e.Src, curr) != nil { - rank[child] = go2.Max(rank[child], rank[curr]+1) - queue = append(queue, child) - } - } - } - } - max := int(math.MinInt32) - for _, obj := range container.ChildrenArray { - if rank[obj] > max { - max = rank[obj] - } - } - - var tails []*d2graph.Object - for i, obj := range container.ChildrenArray { - if rank[obj] == max { - tails = append(tails, container.ChildrenArray[i]) - } - } - - return tails[int(math.Floor(float64(len(tails))/2.0))] + _, tail := getLongestEdgeChainEndpoints(g, container) + return tail } func inContainer(obj, container *d2graph.Object) *d2graph.Object { @@ -733,6 +770,27 @@ func shiftUp(g *d2graph.Graph, start, distance float64, isHorizontal bool) { // shift all nodes that are reachable via an edge or being directly below a shifting node or expanding container // expand containers to wrap shifted nodes func shiftReachableDown(g *d2graph.Graph, obj *d2graph.Object, start, distance float64, isHorizontal, isMargin bool) map[*d2graph.Object]struct{} { + return shiftReachableDownIndexed(g, newCrossRankIndex(g), obj, start, distance, isHorizontal, isMargin) +} + +type crossRankIndex struct { + incident map[*d2graph.Object][]*d2graph.Edge +} + +func newCrossRankIndex(g *d2graph.Graph) *crossRankIndex { + index := &crossRankIndex{ + incident: make(map[*d2graph.Object][]*d2graph.Edge, len(g.Objects)), + } + for _, edge := range g.Edges { + index.incident[edge.Src] = append(index.incident[edge.Src], edge) + if edge.Dst != edge.Src { + index.incident[edge.Dst] = append(index.incident[edge.Dst], edge) + } + } + return index +} + +func shiftReachableDownIndexed(g *d2graph.Graph, index *crossRankIndex, obj *d2graph.Object, start, distance float64, isHorizontal, isMargin bool) map[*d2graph.Object]struct{} { q := []*d2graph.Object{obj} needsMove := make(map[*d2graph.Object]struct{}) @@ -846,7 +904,7 @@ func shiftReachableDown(g *d2graph.Graph, obj *d2graph.Object, start, distance f queue(child) } - for _, e := range g.Edges { + for _, e := range index.incident[curr] { if _, in := shiftedEdges[e]; in { continue } @@ -1229,6 +1287,7 @@ func adjustRankSpacing(g *d2graph.Graph, rankSep float64, isHorizontal bool) { } func adjustCrossRankSpacing(g *d2graph.Graph, rankSep float64, isHorizontal bool) { + index := newCrossRankIndex(g) var prevMarginTop, prevMarginBottom, prevMarginLeft, prevMarginRight map[*d2graph.Object]float64 if isHorizontal { prevMarginLeft = make(map[*d2graph.Object]float64) @@ -1247,26 +1306,26 @@ func adjustCrossRankSpacing(g *d2graph.Graph, rankSep float64, isHorizontal bool margin.Bottom -= prevShift } if margin.Bottom > 0 { - increased := shiftReachableDown(g, obj, obj.TopLeft.Y+obj.Height, margin.Bottom, isHorizontal, true) + increased := shiftReachableDownIndexed(g, index, obj, obj.TopLeft.Y+obj.Height, margin.Bottom, isHorizontal, true) for o := range increased { prevMarginBottom[o] = math.Max(prevMarginBottom[o], margin.Bottom) } } if padding.Bottom > 0 { - shiftReachableDown(g, obj, obj.TopLeft.Y+obj.Height, padding.Bottom, isHorizontal, false) + shiftReachableDownIndexed(g, index, obj, obj.TopLeft.Y+obj.Height, padding.Bottom, isHorizontal, false) obj.Height += padding.Bottom } if prevShift, has := prevMarginTop[obj]; has { margin.Top -= prevShift } if margin.Top > 0 { - increased := shiftReachableDown(g, obj, obj.TopLeft.Y, margin.Top, isHorizontal, true) + increased := shiftReachableDownIndexed(g, index, obj, obj.TopLeft.Y, margin.Top, isHorizontal, true) for o := range increased { prevMarginTop[o] = math.Max(prevMarginTop[o], margin.Top) } } if padding.Top > 0 { - shiftReachableDown(g, obj, obj.TopLeft.Y, padding.Top, isHorizontal, false) + shiftReachableDownIndexed(g, index, obj, obj.TopLeft.Y, padding.Top, isHorizontal, false) obj.Height += padding.Top } } else { @@ -1274,26 +1333,26 @@ func adjustCrossRankSpacing(g *d2graph.Graph, rankSep float64, isHorizontal bool margin.Right -= prevShift } if margin.Right > 0 { - increased := shiftReachableDown(g, obj, obj.TopLeft.X+obj.Width, margin.Right, isHorizontal, true) + increased := shiftReachableDownIndexed(g, index, obj, obj.TopLeft.X+obj.Width, margin.Right, isHorizontal, true) for o := range increased { prevMarginRight[o] = math.Max(prevMarginRight[o], margin.Right) } } if padding.Right > 0 { - shiftReachableDown(g, obj, obj.TopLeft.X+obj.Width, padding.Right, isHorizontal, false) + shiftReachableDownIndexed(g, index, obj, obj.TopLeft.X+obj.Width, padding.Right, isHorizontal, false) obj.Width += padding.Right } if prevShift, has := prevMarginLeft[obj]; has { margin.Left -= prevShift } if margin.Left > 0 { - increased := shiftReachableDown(g, obj, obj.TopLeft.X, margin.Left, isHorizontal, true) + increased := shiftReachableDownIndexed(g, index, obj, obj.TopLeft.X, margin.Left, isHorizontal, true) for o := range increased { prevMarginLeft[o] = math.Max(prevMarginLeft[o], margin.Left) } } if padding.Left > 0 { - shiftReachableDown(g, obj, obj.TopLeft.X, padding.Left, isHorizontal, false) + shiftReachableDownIndexed(g, index, obj, obj.TopLeft.X, padding.Left, isHorizontal, false) obj.Width += padding.Left } } diff --git a/d2layouts/d2dagrelayout/layout_benchmark_test.go b/d2layouts/d2dagrelayout/layout_benchmark_test.go new file mode 100644 index 0000000000..86d1c34db3 --- /dev/null +++ b/d2layouts/d2dagrelayout/layout_benchmark_test.go @@ -0,0 +1,130 @@ +package d2dagrelayout + +import ( + "context" + "fmt" + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/d2themes/d2themescatalog" + "github.com/d2lang/d2/lib/geo" + "github.com/d2lang/d2/lib/textmeasure" +) + +var benchmarkGraphSink *d2graph.Graph + +func benchmarkNestedSource(levels, fanout int) string { + var out strings.Builder + var writeLevel func(prefix, indent string, level int) + writeLevel = func(prefix, indent string, level int) { + for i := 0; i < fanout; i++ { + id := fmt.Sprintf("%sn%d", prefix, i) + if level+1 < levels { + fmt.Fprintf(&out, "%s%s: Container %s {\n", indent, id, id) + writeLevel(id+"_", indent+" ", level+1) + fmt.Fprintf(&out, "%s}\n", indent) + } else { + fmt.Fprintf(&out, "%s%s: Leaf %s\n", indent, id, id) + } + } + for i := 1; i < fanout; i++ { + fmt.Fprintf(&out, "%s%sn%d -> %sn%d\n", indent, prefix, i-1, prefix, i) + } + } + writeLevel("", "", 0) + return out.String() +} + +func benchmarkParallelSource(edges int) string { + var out strings.Builder + out.WriteString("a\nb\n") + for i := 0; i < edges; i++ { + fmt.Fprintf(&out, "a -> b: edge %d\n", i) + } + return out.String() +} + +func benchmarkCrossRankSource(nodes int) string { + var out strings.Builder + for i := 0; i < nodes; i++ { + fmt.Fprintf(&out, "n%d: Node %d { label.near: outside-right-center }\n", i, i) + if i > 0 { + fmt.Fprintf(&out, "n%d -> n%d\n", i-1, i) + } + } + return out.String() +} + +func prepareBenchmarkGraph(b *testing.B, input string, ruler *textmeasure.Ruler) *d2graph.Graph { + b.Helper() + g, _, err := d2compiler.Compile("index.d2", strings.NewReader(input), nil) + if err != nil { + b.Fatal(err) + } + if err := g.ApplyTheme(d2themescatalog.NeutralDefault.ID); err != nil { + b.Fatal(err) + } + if err := g.SetDimensions(nil, ruler, nil, nil); err != nil { + b.Fatal(err) + } + return g +} + +func benchmarkDagreLayout(b *testing.B, input string) { + b.Helper() + ruler, err := textmeasure.NewRuler() + if err != nil { + b.Fatal(err) + } + b.ReportAllocs() + b.ResetTimer() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := prepareBenchmarkGraph(b, input, ruler) + b.StartTimer() + if err := DefaultLayout(context.Background(), g); err != nil { + b.Fatal(err) + } + benchmarkGraphSink = g + } +} + +func BenchmarkDagreAdapterPathologies(b *testing.B) { + b.Run("nested-4x4", func(b *testing.B) { + benchmarkDagreLayout(b, benchmarkNestedSource(4, 4)) + }) + b.Run("parallel-edges-512", func(b *testing.B) { + benchmarkDagreLayout(b, benchmarkParallelSource(512)) + }) + b.Run("cross-rank-100", func(b *testing.B) { + benchmarkDagreLayout(b, benchmarkCrossRankSource(100)) + }) +} + +func BenchmarkAdjustCrossRankSpacing(b *testing.B) { + ruler, err := textmeasure.NewRuler() + if err != nil { + b.Fatal(err) + } + for _, nodes := range []int{64, 128, 512} { + b.Run(fmt.Sprintf("chain-%d", nodes), func(b *testing.B) { + input := benchmarkCrossRankSource(nodes) + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := prepareBenchmarkGraph(b, input, ruler) + for index, obj := range g.Objects { + obj.TopLeft = geo.NewPoint(float64(index*120), 0) + } + for _, edge := range g.Edges { + edge.Route = []*geo.Point{edge.Src.Center(), edge.Dst.Center()} + } + b.StartTimer() + adjustCrossRankSpacing(g, MIN_RANK_SEP, true) + benchmarkGraphSink = g + } + }) + } +} diff --git a/d2layouts/d2dagrelayout/layout_test.go b/d2layouts/d2dagrelayout/layout_test.go new file mode 100644 index 0000000000..037be7c462 --- /dev/null +++ b/d2layouts/d2dagrelayout/layout_test.go @@ -0,0 +1,226 @@ +package d2dagrelayout + +import ( + "math" + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/util-go/go2" +) + +func TestContainerTopologyMatchesLegacyTraversal(t *testing.T) { + t.Parallel() + tests := map[string]string{ + "chains": ` +x: { + a -> b -> c + d -> e +} +x -> outside +outside -> x +`, + "nested": ` +x: { + a: { + a1 -> a2 + } + b: { + b1 -> b2 + } + c + a -> b + b -> c +} +y -> x.a.a1 +x.b.b2 -> z +`, + "cycles-and-parallel": ` +x: { + a -> b + b -> a + a -> b + c -> c + d +} +x -> y +y -> x +`, + "container-endpoints": ` +x: { + a: { + a1 -> a2 + } + b + a -> x + x -> b +} +x -> z +z -> x +`, + } + + for name, input := range tests { + name, input := name, input + t.Run(name, func(t *testing.T) { + t.Parallel() + g, _, err := d2compiler.Compile("index.d2", strings.NewReader(input), nil) + if err != nil { + t.Fatal(err) + } + for _, container := range g.Objects { + if len(container.ChildrenArray) == 0 { + continue + } + gotHead, gotTail := getLongestEdgeChainEndpoints(g, container) + wantHead := legacyLongestEdgeChainHead(g, container) + wantTail := legacyLongestEdgeChainTail(g, container) + if gotHead != wantHead || gotTail != wantTail { + t.Fatalf("%s: endpoints got (%s, %s), want (%s, %s)", container.AbsID(), gotHead.AbsID(), gotTail.AbsID(), wantHead.AbsID(), wantTail.AbsID()) + } + } + }) + } +} + +func TestCrossRankIndexPreservesIncidentEdgeOrder(t *testing.T) { + t.Parallel() + g, _, err := d2compiler.Compile("index.d2", strings.NewReader(` +a: { + b: { + c -> d + } + e +} +f -> a.b.c +a.e -> f +`), nil) + if err != nil { + t.Fatal(err) + } + index := newCrossRankIndex(g) + objects := append([]*d2graph.Object{g.Root}, g.Objects...) + for _, obj := range objects { + var wantEdges []*d2graph.Edge + for _, edge := range g.Edges { + if edge.Src == obj || edge.Dst == obj { + wantEdges = append(wantEdges, edge) + } + } + gotEdges := index.incident[obj] + if len(gotEdges) != len(wantEdges) { + t.Fatalf("incident edge count for %s = %d, want %d", obj.AbsID(), len(gotEdges), len(wantEdges)) + } + for edgeIndex := range wantEdges { + if gotEdges[edgeIndex] != wantEdges[edgeIndex] { + t.Fatalf("incident edge %d for %s is out of order", edgeIndex, obj.AbsID()) + } + } + } +} + +func legacyLongestEdgeChainHead(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { + rank := make(map[*d2graph.Object]int) + chainLength := make(map[*d2graph.Object]int) + + for _, obj := range container.ChildrenArray { + isHead := true + for _, edge := range g.Edges { + if inContainer(edge.Src, container) != nil && inContainer(edge.Dst, obj) != nil { + isHead = false + break + } + } + if !isHead { + continue + } + rank[obj] = 1 + chainLength[obj] = 1 + queue := []*d2graph.Object{obj} + visited := make(map[*d2graph.Object]struct{}) + for len(queue) > 0 { + curr := queue[0] + queue = queue[1:] + if _, ok := visited[curr]; ok { + continue + } + visited[curr] = struct{}{} + for _, edge := range g.Edges { + child := inContainer(edge.Dst, container) + if child == curr { + continue + } + if child != nil && inContainer(edge.Src, curr) != nil { + if rank[curr]+1 > rank[child] { + rank[child] = rank[curr] + 1 + chainLength[obj] = go2.Max(chainLength[obj], rank[child]) + } + queue = append(queue, child) + } + } + } + } + max := int(math.MinInt32) + for _, obj := range container.ChildrenArray { + max = go2.Max(max, chainLength[obj]) + } + var heads []*d2graph.Object + for _, obj := range container.ChildrenArray { + if rank[obj] == 1 && chainLength[obj] == max { + heads = append(heads, obj) + } + } + if len(heads) > 0 { + return heads[len(heads)/2] + } + return container.ChildrenArray[0] +} + +func legacyLongestEdgeChainTail(g *d2graph.Graph, container *d2graph.Object) *d2graph.Object { + rank := make(map[*d2graph.Object]int) + for _, obj := range container.ChildrenArray { + isHead := true + for _, edge := range g.Edges { + if inContainer(edge.Src, container) != nil && inContainer(edge.Dst, obj) != nil { + isHead = false + break + } + } + if !isHead { + continue + } + rank[obj] = 1 + queue := []*d2graph.Object{obj} + visited := make(map[*d2graph.Object]struct{}) + for len(queue) > 0 { + curr := queue[0] + queue = queue[1:] + if _, ok := visited[curr]; ok { + continue + } + visited[curr] = struct{}{} + for _, edge := range g.Edges { + child := inContainer(edge.Dst, container) + if child == curr { + continue + } + if child != nil && inContainer(edge.Src, curr) != nil { + rank[child] = go2.Max(rank[child], rank[curr]+1) + queue = append(queue, child) + } + } + } + } + max := int(math.MinInt32) + for _, obj := range container.ChildrenArray { + max = go2.Max(max, rank[obj]) + } + var tails []*d2graph.Object + for _, obj := range container.ChildrenArray { + if rank[obj] == max { + tails = append(tails, obj) + } + } + return tails[len(tails)/2] +} diff --git a/d2layouts/d2elklayout/descendant_shifter.go b/d2layouts/d2elklayout/descendant_shifter.go new file mode 100644 index 0000000000..cac14a6afe --- /dev/null +++ b/d2layouts/d2elklayout/descendant_shifter.go @@ -0,0 +1,127 @@ +package d2elklayout + +import "github.com/d2lang/d2/d2graph" + +// descendantShifter applies the same geometry updates as +// d2graph.Object.ShiftDescendants while avoiding its repeated whole-graph edge +// scans. ELK performs several sequential margin corrections per object, so the +// shifter deliberately keeps each correction separate: ShiftStart/ShiftEnd may +// simplify a route after each individual horizontal or vertical move. +type descendantShifter struct { + preorder map[*d2graph.Object]int + subtreeEnd map[*d2graph.Object]int + incident map[*d2graph.Object][]*d2graph.Edge + seen map[*d2graph.Edge]uint64 + candidates []*d2graph.Edge + generation uint64 +} + +func newDescendantShifter(g *d2graph.Graph) *descendantShifter { + s := &descendantShifter{ + preorder: make(map[*d2graph.Object]int, len(g.Objects)+1), + subtreeEnd: make(map[*d2graph.Object]int, len(g.Objects)+1), + incident: make(map[*d2graph.Object][]*d2graph.Edge, len(g.Objects)), + seen: make(map[*d2graph.Edge]uint64, len(g.Edges)), + } + next := 0 + var indexSubtree func(*d2graph.Object) + indexSubtree = func(obj *d2graph.Object) { + s.preorder[obj] = next + next++ + for _, child := range obj.ChildrenArray { + indexSubtree(child) + } + s.subtreeEnd[obj] = next + } + indexSubtree(g.Root) + + for _, edge := range g.Edges { + s.incident[edge.Src] = append(s.incident[edge.Src], edge) + if edge.Dst != edge.Src { + s.incident[edge.Dst] = append(s.incident[edge.Dst], edge) + } + } + return s +} + +func (s *descendantShifter) inSubtree(root, obj *d2graph.Object) bool { + rootStart, rootOK := s.preorder[root] + objStart, objOK := s.preorder[obj] + return rootOK && objOK && rootStart <= objStart && objStart < s.subtreeEnd[root] +} + +func (s *descendantShifter) shift(root *d2graph.Object, dx, dy float64) { + if dx == 0 && dy == 0 { + return + } + + s.generation++ + if s.generation == 0 { + clear(s.seen) + s.generation = 1 + } + generation := s.generation + candidates := s.candidates[:0] + addIncident := func(obj *d2graph.Object) { + for _, edge := range s.incident[obj] { + if s.seen[edge] == generation { + continue + } + s.seen[edge] = generation + candidates = append(candidates, edge) + } + } + + // IsDescendantOf, used by the original implementation's first pass, + // includes the object itself. Include root's incident edges so root self + // loops and root-to-descendant edges preserve that behavior. + addIncident(root) + root.IterDescendants(func(_ *d2graph.Object, descendant *d2graph.Object) { + descendant.TopLeft.X += dx + descendant.TopLeft.Y += dy + addIncident(descendant) + }) + s.candidates = candidates + + for _, edge := range candidates { + srcInSubtree := s.inSubtree(root, edge.Src) + dstInSubtree := s.inSubtree(root, edge.Dst) + if srcInSubtree && dstInSubtree { + for _, point := range edge.Route { + point.X += dx + point.Y += dy + } + continue + } + + // The original second pass visits strict descendants only. An edge + // from root to an outside object therefore remains unchanged. + if srcInSubtree && edge.Src != root { + shiftEdgeStart(edge, dx, dy) + } else if dstInSubtree && edge.Dst != root { + shiftEdgeEnd(edge, dx, dy) + } + } +} + +func shiftEdgeStart(edge *d2graph.Edge, dx, dy float64) { + if dx == 0 { + edge.ShiftStart(dy, false) + } else if dy == 0 { + edge.ShiftStart(dx, true) + } else { + edge.Route[0].X += dx + edge.Route[0].Y += dy + } +} + +func shiftEdgeEnd(edge *d2graph.Edge, dx, dy float64) { + if dx == 0 { + edge.ShiftEnd(dy, false) + } else if dy == 0 { + edge.ShiftEnd(dx, true) + } else { + edge.Route[len(edge.Route)-1].X += dx + edge.Route[len(edge.Route)-1].Y += dy + } +} diff --git a/d2layouts/d2elklayout/descendant_shifter_test.go b/d2layouts/d2elklayout/descendant_shifter_test.go new file mode 100644 index 0000000000..c5bfc86c3f --- /dev/null +++ b/d2layouts/d2elklayout/descendant_shifter_test.go @@ -0,0 +1,88 @@ +package d2elklayout + +import ( + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/lib/geo" +) + +func TestDescendantShifterMatchesGraphHelper(t *testing.T) { + const input = ` +outside +c: { + a + b: { + x + y + x -> y + } + a -> b.x + b.x -> outside +} +c -> outside +c -> c +c -> c.a +` + reference := descendantShiftTestGraph(t, input) + indexed := descendantShiftTestGraph(t, input) + referenceRoot := reference.Root.Children["c"] + indexedRoot := indexed.Root.Children["c"] + shifter := newDescendantShifter(indexed) + + for _, shift := range []struct{ dx, dy float64 }{ + {dx: 18}, + {dx: -7}, + {dy: 13}, + {dy: -5}, + } { + referenceRoot.ShiftDescendants(shift.dx, shift.dy) + shifter.shift(indexedRoot, shift.dx, shift.dy) + } + + if len(reference.Objects) != len(indexed.Objects) || len(reference.Edges) != len(indexed.Edges) { + t.Fatal("test graphs have different topology") + } + for i := range reference.Objects { + got, want := indexed.Objects[i], reference.Objects[i] + if *got.TopLeft != *want.TopLeft { + t.Errorf("object %q top-left = %v, want %v", got.AbsID(), got.TopLeft, want.TopLeft) + } + } + for i := range reference.Edges { + got, want := indexed.Edges[i], reference.Edges[i] + if len(got.Route) != len(want.Route) { + t.Fatalf("edge %q route length = %d, want %d", got.AbsID(), len(got.Route), len(want.Route)) + } + for j := range got.Route { + if *got.Route[j] != *want.Route[j] { + t.Errorf("edge %q point %d = %v, want %v", got.AbsID(), j, got.Route[j], want.Route[j]) + } + } + } +} + +func descendantShiftTestGraph(t *testing.T, input string) *d2graph.Graph { + t.Helper() + g, _, err := d2compiler.Compile("", strings.NewReader(input), nil) + if err != nil { + t.Fatal(err) + } + for i, obj := range g.Objects { + obj.Box = geo.NewBox(geo.NewPoint(float64(i*37), float64(i*29)), 80, 60) + } + for i, edge := range g.Edges { + x := float64(i * 50) + y := float64(i * 30) + edge.Route = []*geo.Point{ + geo.NewPoint(x, y), + geo.NewPoint(x+4, y), + geo.NewPoint(x+8, y), + geo.NewPoint(x+8, y+6), + geo.NewPoint(x+12, y+6), + } + } + return g +} diff --git a/d2layouts/d2elklayout/graph_stats_test.go b/d2layouts/d2elklayout/graph_stats_test.go new file mode 100644 index 0000000000..ea3eed2ac4 --- /dev/null +++ b/d2layouts/d2elklayout/graph_stats_test.go @@ -0,0 +1,77 @@ +package d2elklayout + +import ( + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" +) + +func TestCollectELKGraphStatsMatchesRepeatedScans(t *testing.T) { + const input = ` +a +b +a -> b +a -> b +a -> a: root loop +container: { + x + y + x -> y + x -> x: nested loop + y -> y: second nested loop +} +` + g, _, err := d2compiler.Compile("", strings.NewReader(input), nil) + if err != nil { + t.Fatal(err) + } + for i, edge := range g.Edges { + edge.LabelDimensions.Width = 20 + i*7 + edge.LabelDimensions.Height = 10 + i*3 + } + + stats := collectELKGraphStats(g) + for _, obj := range g.Objects { + var incoming, outgoing float64 + for _, edge := range g.Edges { + if edge.Src == obj { + outgoing++ + } + if edge.Dst == obj { + incoming++ + } + } + if got := stats.degrees[obj]; got.incoming != incoming || got.outgoing != outgoing { + t.Errorf("object %q degree = (%g,%g), want (%g,%g)", obj.AbsID(), got.incoming, got.outgoing, incoming, outgoing) + } + } + + parents := []string{"", "container"} + for _, parentName := range parents { + parent := g.Root + if parentName != "" { + parent = g.Root.Children[parentName] + } + for _, isWidth := range []bool{false, true} { + want := 0 + for _, child := range parent.Children { + for _, edge := range g.Edges { + if edge.Src != edge.Dst || edge.Src != child || edge.Label.Value == "" { + continue + } + value := edge.LabelDimensions.Height + if isWidth { + value = edge.LabelDimensions.Width + } + if value > want { + want = value + } + } + } + if got := stats.maxSelfLoopLabel(parent, isWidth); got != want { + t.Errorf("parent %q isWidth=%v max self-loop = %d, want %d", parentName, isWidth, got, want) + } + } + } +} diff --git a/d2layouts/d2elklayout/layout.go b/d2layouts/d2elklayout/layout.go index 4e489466a5..86e8280169 100644 --- a/d2layouts/d2elklayout/layout.go +++ b/d2layouts/d2elklayout/layout.go @@ -119,6 +119,58 @@ var DefaultOpts = ConfigurableOpts{ var port_spacing = 40. var edge_node_spacing = 40 +type objectDegree struct { + incoming float64 + outgoing float64 +} + +type selfLoopLabelSize struct { + width int + height int +} + +// elkGraphStats contains the D2-specific graph-wide measurements used while +// adapting a graph to ELK. Keeping them here avoids rescanning every edge for +// every object and container. +type elkGraphStats struct { + degrees map[*d2graph.Object]objectDegree + selfLoopLabelMax map[*d2graph.Object]selfLoopLabelSize +} + +func collectELKGraphStats(g *d2graph.Graph) elkGraphStats { + stats := elkGraphStats{ + degrees: make(map[*d2graph.Object]objectDegree, len(g.Objects)), + selfLoopLabelMax: make(map[*d2graph.Object]selfLoopLabelSize), + } + for _, edge := range g.Edges { + srcDegree := stats.degrees[edge.Src] + srcDegree.outgoing++ + stats.degrees[edge.Src] = srcDegree + + dstDegree := stats.degrees[edge.Dst] + dstDegree.incoming++ + stats.degrees[edge.Dst] = dstDegree + + if edge.Src != edge.Dst || edge.Label.Value == "" || edge.Src.Parent == nil { + continue + } + parent := edge.Src.Parent + labelSize := stats.selfLoopLabelMax[parent] + labelSize.width = go2.Max(labelSize.width, edge.LabelDimensions.Width) + labelSize.height = go2.Max(labelSize.height, edge.LabelDimensions.Height) + stats.selfLoopLabelMax[parent] = labelSize + } + return stats +} + +func (s elkGraphStats) maxSelfLoopLabel(parent *d2graph.Object, isWidth bool) int { + size := s.selfLoopLabelMax[parent] + if isWidth { + return size.width + } + return size.height +} + type elkOpts struct { EdgeNode int `json:"elk.spacing.edgeNode,omitempty"` FixedAlignment string `json:"elk.layered.nodePlacement.bk.fixedAlignment,omitempty"` @@ -155,6 +207,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err if err := ctx.Err(); err != nil { return err } + graphStats := collectELKGraphStats(g) elkGraph := &ELKGraph{ ID: "", @@ -178,7 +231,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } if elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing == DefaultOpts.SelfLoopSpacing { // +5 for a tiny bit of padding - elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, childrenMaxSelfLoop(g.Root, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) + elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, graphStats.maxSelfLoopLabel(g.Root, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) } switch g.Root.Direction.Value { case "down": @@ -214,16 +267,9 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } walk(g.Root, nil, func(obj, parent *d2graph.Object) { - incoming := 0. - outgoing := 0. - for _, e := range g.Edges { - if e.Src == obj { - outgoing++ - } - if e.Dst == obj { - incoming++ - } - } + degree := graphStats.degrees[obj] + incoming := degree.incoming + outgoing := degree.outgoing if incoming >= 2 || outgoing >= 2 { switch g.Root.Direction.Value { case "right", "left": @@ -273,7 +319,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err }, } if n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing == DefaultOpts.SelfLoopSpacing { - n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, childrenMaxSelfLoop(obj, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) + n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, graphStats.maxSelfLoopLabel(obj, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) } switch elkGraph.LayoutOptions.Direction { @@ -487,6 +533,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err objEdges[e.Dst] = append(objEdges[e.Dst], e) } } + descendantShifter := newDescendantShifter(g) for _, obj := range g.Objects { if margin, has := adjustments[obj]; has { @@ -503,7 +550,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } } obj.TopLeft.X += margin.Left - obj.ShiftDescendants(margin.Left/2, 0) + descendantShifter.shift(obj, margin.Left/2, 0) obj.Width -= margin.Left } if margin.Right > 0 { @@ -516,7 +563,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err e.Route[l-1].X -= margin.Right } } - obj.ShiftDescendants(-margin.Right/2, 0) + descendantShifter.shift(obj, -margin.Right/2, 0) obj.Width -= margin.Right } if margin.Top > 0 { @@ -530,7 +577,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err } } obj.TopLeft.Y += margin.Top - obj.ShiftDescendants(0, margin.Top/2) + descendantShifter.shift(obj, 0, margin.Top/2) obj.Height -= margin.Top } if margin.Bottom > 0 { @@ -543,7 +590,7 @@ func Layout(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) (err e.Route[l-1].Y -= margin.Bottom } } - obj.ShiftDescendants(0, -margin.Bottom/2) + descendantShifter.shift(obj, 0, -margin.Bottom/2) obj.Height -= margin.Bottom } } @@ -611,6 +658,18 @@ func dstPortID(obj *d2graph.Object, column string) string { // deleteBends is a shim for ELK to delete unnecessary bends // see https://github.com/terrastruct/d2/issues/1030 func deleteBends(g *d2graph.Graph) { + hasCandidate := false + for _, edge := range g.Edges { + if edge.Src != edge.Dst && len(edge.Route) >= 4 { + hasCandidate = true + break + } + } + if !hasCandidate { + return + } + collisionIndex := newBendCollisionIndex(g) + // Get rid of S-shapes at the source and the target // TODO there might be value in repeating this. removal of an S shape introducing another S shape that can still be removed for _, isSource := range []bool{true, false} { @@ -685,15 +744,15 @@ func deleteBends(g *d2graph.Graph) { oldSegment := geo.NewSegment(start, corner) newSegment := geo.NewSegment(newStart, end) - oldIntersects := countObjectIntersects(g, e.Src, e.Dst, *oldSegment) - newIntersects := countObjectIntersects(g, e.Src, e.Dst, *newSegment) + oldIntersects := collisionIndex.countObjectIntersects(e.Src, e.Dst, *oldSegment) + newIntersects := collisionIndex.countObjectIntersects(e.Src, e.Dst, *newSegment) if newIntersects > oldIntersects { continue } - oldCrossingsCount, oldOverlapsCount, oldCloseOverlapsCount, oldTouchingCount := countEdgeIntersects(g, g.Edges[ei], *oldSegment) - newCrossingsCount, newOverlapsCount, newCloseOverlapsCount, newTouchingCount := countEdgeIntersects(g, g.Edges[ei], *newSegment) + oldCrossingsCount, oldOverlapsCount, oldCloseOverlapsCount, oldTouchingCount := collisionIndex.countEdgeIntersects(g.Edges[ei], *oldSegment) + newCrossingsCount, newOverlapsCount, newCloseOverlapsCount, newTouchingCount := collisionIndex.countEdgeIntersects(g.Edges[ei], *newSegment) if newCrossingsCount > oldCrossingsCount { continue @@ -721,6 +780,7 @@ func deleteBends(g *d2graph.Graph) { newStart, ) } + collisionIndex.updateEdge(g.Edges[ei]) } } @@ -788,22 +848,22 @@ func deleteBends(g *d2graph.Graph) { newS2 := geo.NewSegment(newCorner, end) // Check that the new segments doesn't collide with anything new - oldIntersects := countObjectIntersects(g, e.Src, e.Dst, *oldS1) + countObjectIntersects(g, e.Src, e.Dst, *oldS2) - newIntersects := countObjectIntersects(g, e.Src, e.Dst, *newS1) + countObjectIntersects(g, e.Src, e.Dst, *newS2) + oldIntersects := collisionIndex.countObjectIntersects(e.Src, e.Dst, *oldS1) + collisionIndex.countObjectIntersects(e.Src, e.Dst, *oldS2) + newIntersects := collisionIndex.countObjectIntersects(e.Src, e.Dst, *newS1) + collisionIndex.countObjectIntersects(e.Src, e.Dst, *newS2) if newIntersects > oldIntersects { continue } - oldCrossingsCount1, oldOverlapsCount1, oldCloseOverlapsCount1, oldTouchingCount1 := countEdgeIntersects(g, g.Edges[ei], *oldS1) - oldCrossingsCount2, oldOverlapsCount2, oldCloseOverlapsCount2, oldTouchingCount2 := countEdgeIntersects(g, g.Edges[ei], *oldS2) + oldCrossingsCount1, oldOverlapsCount1, oldCloseOverlapsCount1, oldTouchingCount1 := collisionIndex.countEdgeIntersects(g.Edges[ei], *oldS1) + oldCrossingsCount2, oldOverlapsCount2, oldCloseOverlapsCount2, oldTouchingCount2 := collisionIndex.countEdgeIntersects(g.Edges[ei], *oldS2) oldCrossingsCount := oldCrossingsCount1 + oldCrossingsCount2 oldOverlapsCount := oldOverlapsCount1 + oldOverlapsCount2 oldCloseOverlapsCount := oldCloseOverlapsCount1 + oldCloseOverlapsCount2 oldTouchingCount := oldTouchingCount1 + oldTouchingCount2 - newCrossingsCount1, newOverlapsCount1, newCloseOverlapsCount1, newTouchingCount1 := countEdgeIntersects(g, g.Edges[ei], *newS1) - newCrossingsCount2, newOverlapsCount2, newCloseOverlapsCount2, newTouchingCount2 := countEdgeIntersects(g, g.Edges[ei], *newS2) + newCrossingsCount1, newOverlapsCount1, newCloseOverlapsCount1, newTouchingCount1 := collisionIndex.countEdgeIntersects(g.Edges[ei], *newS1) + newCrossingsCount2, newOverlapsCount2, newCloseOverlapsCount2, newTouchingCount2 := collisionIndex.countEdgeIntersects(g.Edges[ei], *newS2) newCrossingsCount := newCrossingsCount1 + newCrossingsCount2 newOverlapsCount := newOverlapsCount1 + newOverlapsCount2 newCloseOverlapsCount := newCloseOverlapsCount1 + newCloseOverlapsCount2 @@ -830,91 +890,12 @@ func deleteBends(g *d2graph.Graph) { ), e.Route[i+3:]..., ) + collisionIndex.updateEdge(g.Edges[ei]) break } } } -func countObjectIntersects(g *d2graph.Graph, src, dst *d2graph.Object, s geo.Segment) int { - count := 0 - for i, o := range g.Objects { - if g.Objects[i] == src || g.Objects[i] == dst { - continue - } - if o.Intersects(s, float64(edge_node_spacing)-1) { - count++ - } - } - return count -} - -// countEdgeIntersects counts both crossings AND getting too close to a parallel segment -func countEdgeIntersects(g *d2graph.Graph, sEdge *d2graph.Edge, s geo.Segment) (int, int, int, int) { - isHorizontal := math.Ceil(s.Start.Y) == math.Ceil(s.End.Y) - crossingsCount := 0 - overlapsCount := 0 - closeOverlapsCount := 0 - touchingCount := 0 - for i, e := range g.Edges { - if g.Edges[i] == sEdge { - continue - } - - for i := 0; i < len(e.Route)-1; i++ { - otherS := geo.NewSegment(e.Route[i], e.Route[i+1]) - otherIsHorizontal := math.Ceil(otherS.Start.Y) == math.Ceil(otherS.End.Y) - if isHorizontal == otherIsHorizontal { - if s.Overlaps(*otherS, !isHorizontal, 0.) { - if isHorizontal { - if math.Abs(s.Start.Y-otherS.Start.Y) < float64(edge_node_spacing)/2. { - overlapsCount++ - if math.Abs(s.Start.Y-otherS.Start.Y) < float64(edge_node_spacing)/4. { - closeOverlapsCount++ - if math.Abs(s.Start.Y-otherS.Start.Y) < 1. { - touchingCount++ - } - } - } - } else { - if math.Abs(s.Start.X-otherS.Start.X) < float64(edge_node_spacing)/2. { - overlapsCount++ - if math.Abs(s.Start.X-otherS.Start.X) < float64(edge_node_spacing)/4. { - closeOverlapsCount++ - if math.Abs(s.Start.Y-otherS.Start.Y) < 1. { - touchingCount++ - } - } - } - } - } - } else { - if s.Intersects(*otherS) { - crossingsCount++ - } - } - } - - } - return crossingsCount, overlapsCount, closeOverlapsCount, touchingCount -} - -func childrenMaxSelfLoop(parent *d2graph.Object, isWidth bool) int { - max := 0 - for _, ch := range parent.Children { - for _, e := range parent.Graph.Edges { - if e.Src == e.Dst && e.Src == ch && e.Label.Value != "" { - if isWidth { - max = go2.Max(max, e.LabelDimensions.Width) - } else { - max = go2.Max(max, e.LabelDimensions.Height) - } - } - } - } - - return max -} - type shapePadding struct { top, left, bottom, right int } diff --git a/d2layouts/d2elklayout/performance_test.go b/d2layouts/d2elklayout/performance_test.go new file mode 100644 index 0000000000..44ab1e35b9 --- /dev/null +++ b/d2layouts/d2elklayout/performance_test.go @@ -0,0 +1,208 @@ +package d2elklayout + +import ( + "context" + "fmt" + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/d2target" + "github.com/d2lang/d2/lib/geo" +) + +func BenchmarkLayoutDense(b *testing.B) { + for _, fixture := range []struct { + name string + nodes, edges int + }{ + {name: "100_nodes_200_edges", nodes: 100, edges: 200}, + {name: "250_nodes_1000_edges", nodes: 250, edges: 1000}, + } { + b.Run(fixture.name, func(b *testing.B) { + input := denseBenchmarkInput(fixture.nodes, fixture.edges) + ctx := context.Background() + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileBenchmarkGraph(b, input) + b.StartTimer() + if err := Layout(ctx, g, nil); err != nil { + b.Fatal(err) + } + } + }) + } +} + +func BenchmarkDeleteBendsDense(b *testing.B) { + for _, fixture := range []struct { + name string + nodes, edges int + }{ + {name: "100_nodes_200_edges", nodes: 100, edges: 200}, + {name: "250_nodes_1000_edges", nodes: 250, edges: 1000}, + } { + b.Run(fixture.name, func(b *testing.B) { + input := denseBenchmarkInput(fixture.nodes, fixture.edges) + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileBenchmarkGraph(b, input) + setSyntheticRoutes(g) + b.StartTimer() + deleteBends(g) + } + }) + } +} + +func BenchmarkELKGraphStatsNested(b *testing.B) { + g := compileBenchmarkGraph(b, nestedBenchmarkInput(4, 4)) + b.Run("repeated_scans", func(b *testing.B) { + for i := 0; i < b.N; i++ { + benchmarkIntSink = repeatedScanStats(g) + } + }) + b.Run("one_pass", func(b *testing.B) { + for i := 0; i < b.N; i++ { + stats := collectELKGraphStats(g) + benchmarkIntSink = len(stats.degrees) + len(stats.selfLoopLabelMax) + } + }) +} + +func BenchmarkDescendantShiftNested(b *testing.B) { + input := nestedBenchmarkInput(4, 4) + b.Run("graph_helper", func(b *testing.B) { + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileBenchmarkGraph(b, input) + setSyntheticRoutes(g) + b.StartTimer() + applyNestedShifts(g, func(obj *d2graph.Object, dx, dy float64) { + obj.ShiftDescendants(dx, dy) + }) + } + }) + b.Run("incident_index", func(b *testing.B) { + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileBenchmarkGraph(b, input) + setSyntheticRoutes(g) + b.StartTimer() + shifter := newDescendantShifter(g) + applyNestedShifts(g, shifter.shift) + } + }) +} + +func denseBenchmarkInput(nodes, edges int) string { + var input strings.Builder + for i := 0; i < nodes; i++ { + fmt.Fprintf(&input, "n%d: Node %d\n", i, i) + } + for i := 0; i < edges; i++ { + src := i % nodes + dst := (src + 1 + i/nodes) % nodes + fmt.Fprintf(&input, "n%d -> n%d: edge %d\n", src, dst, i) + } + return input.String() +} + +func nestedBenchmarkInput(levels, fanout int) string { + var input strings.Builder + var writeLevel func(prefix, indent string, level int) + writeLevel = func(prefix, indent string, level int) { + for i := 0; i < fanout; i++ { + id := fmt.Sprintf("%sn%d", prefix, i) + if level+1 < levels { + fmt.Fprintf(&input, "%s%s: Container %s {\n", indent, id, id) + writeLevel(id+"_", indent+" ", level+1) + fmt.Fprintf(&input, "%s}\n", indent) + } else { + fmt.Fprintf(&input, "%s%s: Leaf %s\n", indent, id, id) + } + } + for i := 1; i < fanout; i++ { + fmt.Fprintf(&input, "%s%sn%d -> %sn%d\n", indent, prefix, i-1, prefix, i) + } + } + writeLevel("", "", 0) + return input.String() +} + +func applyNestedShifts(g *d2graph.Graph, shift func(*d2graph.Object, float64, float64)) { + for _, obj := range g.Objects { + if len(obj.ChildrenArray) == 0 { + continue + } + shift(obj, 18, 0) + shift(obj, -7, 0) + shift(obj, 0, 13) + shift(obj, 0, -5) + } +} + +func repeatedScanStats(g *d2graph.Graph) int { + total := 0 + for _, obj := range g.Objects { + incoming, outgoing := 0, 0 + for _, edge := range g.Edges { + if edge.Src == obj { + outgoing++ + } + if edge.Dst == obj { + incoming++ + } + } + total += incoming + outgoing + if len(obj.ChildrenArray) == 0 { + continue + } + for _, child := range obj.Children { + for _, edge := range g.Edges { + if edge.Src == edge.Dst && edge.Src == child && edge.Label.Value != "" { + total += edge.LabelDimensions.Width + edge.LabelDimensions.Height + } + } + } + } + return total +} + +var benchmarkIntSink int + +func compileBenchmarkGraph(tb testing.TB, input string) *d2graph.Graph { + tb.Helper() + g, _, err := d2compiler.Compile("", strings.NewReader(input), nil) + if err != nil { + tb.Fatal(err) + } + for i, obj := range g.Objects { + column := i % 25 + row := i / 25 + obj.Box = geo.NewBox(geo.NewPoint(float64(column*160), float64(row*120)), 80, 60) + obj.Shape.Value = d2target.ShapeRectangle + } + return g +} + +func setSyntheticRoutes(g *d2graph.Graph) { + for i, edge := range g.Edges { + src := edge.Src.Box + dst := edge.Dst.Box + startX := src.TopLeft.X + src.Width + startY := src.TopLeft.Y + src.Height/2 + lane := float64(i%7 + 1) + edge.Route = []*geo.Point{ + geo.NewPoint(startX, startY), + geo.NewPoint(startX+20+lane, startY), + geo.NewPoint(startX+20+lane, startY+15), + geo.NewPoint(dst.TopLeft.X-20-lane, startY+15), + geo.NewPoint(dst.TopLeft.X-20-lane, dst.TopLeft.Y+dst.Height/2), + geo.NewPoint(dst.TopLeft.X, dst.TopLeft.Y+dst.Height/2), + } + } +} diff --git a/d2layouts/d2elklayout/spatial_index.go b/d2layouts/d2elklayout/spatial_index.go new file mode 100644 index 0000000000..1c0dca39a2 --- /dev/null +++ b/d2layouts/d2elklayout/spatial_index.go @@ -0,0 +1,313 @@ +package d2elklayout + +import ( + "math" + + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/lib/geo" +) + +const ( + bendIndexCellSize = 128.0 + bendIndexMaxCells = 256 +) + +type spatialBounds struct { + minX float64 + minY float64 + maxX float64 + maxY float64 +} + +func boundsForSegment(segment geo.Segment) spatialBounds { + return spatialBounds{ + minX: math.Min(segment.Start.X, segment.End.X), + minY: math.Min(segment.Start.Y, segment.End.Y), + maxX: math.Max(segment.Start.X, segment.End.X), + maxY: math.Max(segment.Start.Y, segment.End.Y), + } +} + +func (bounds spatialBounds) expanded(amount float64) spatialBounds { + bounds.minX -= amount + bounds.minY -= amount + bounds.maxX += amount + bounds.maxY += amount + return bounds +} + +func (bounds spatialBounds) overlaps(other spatialBounds) bool { + return bounds.minX <= other.maxX && other.minX <= bounds.maxX && + bounds.minY <= other.maxY && other.minY <= bounds.maxY +} + +type spatialCell struct { + x int + y int +} + +type spatialEntry struct { + bounds spatialBounds + cells []spatialCell + large bool +} + +// spatialIndex is an exact-query broad phase: it may return false positives, +// but every item whose bounds overlap the query is returned. Very large or +// non-finite entries are kept in a small fallback set instead of filling an +// unbounded number of grid cells. +type spatialIndex[T comparable] struct { + cellSize float64 + maxCells int + cells map[spatialCell]map[T]struct{} + large map[T]struct{} + entries map[T]spatialEntry + seen map[T]uint64 + queryID uint64 +} + +func newSpatialIndex[T comparable](capacity int) *spatialIndex[T] { + return &spatialIndex[T]{ + cellSize: bendIndexCellSize, + maxCells: bendIndexMaxCells, + cells: make(map[spatialCell]map[T]struct{}), + large: make(map[T]struct{}), + entries: make(map[T]spatialEntry, capacity), + seen: make(map[T]uint64, capacity), + } +} + +func (index *spatialIndex[T]) add(item T, bounds spatialBounds) { + index.remove(item) + cells, ok := index.coveredCells(bounds) + entry := spatialEntry{bounds: bounds, cells: cells, large: !ok} + index.entries[item] = entry + if !ok { + index.large[item] = struct{}{} + return + } + for _, cell := range cells { + items := index.cells[cell] + if items == nil { + items = make(map[T]struct{}) + index.cells[cell] = items + } + items[item] = struct{}{} + } +} + +func (index *spatialIndex[T]) remove(item T) { + entry, ok := index.entries[item] + if !ok { + return + } + delete(index.entries, item) + delete(index.seen, item) + if entry.large { + delete(index.large, item) + return + } + for _, cell := range entry.cells { + items := index.cells[cell] + delete(items, item) + if len(items) == 0 { + delete(index.cells, cell) + } + } +} + +func (index *spatialIndex[T]) query(bounds spatialBounds, visit func(T)) { + cells, ok := index.coveredCells(bounds) + if !ok { + for item, entry := range index.entries { + if entry.bounds.overlaps(bounds) { + visit(item) + } + } + return + } + + index.queryID++ + if index.queryID == 0 { + clear(index.seen) + index.queryID = 1 + } + queryID := index.queryID + for _, cell := range cells { + for item := range index.cells[cell] { + if index.seen[item] == queryID { + continue + } + index.seen[item] = queryID + if index.entries[item].bounds.overlaps(bounds) { + visit(item) + } + } + } + for item := range index.large { + if index.seen[item] == queryID { + continue + } + if index.entries[item].bounds.overlaps(bounds) { + visit(item) + } + } +} + +func (index *spatialIndex[T]) coveredCells(bounds spatialBounds) ([]spatialCell, bool) { + if !finiteBounds(bounds) { + return nil, false + } + minX := math.Floor(bounds.minX / index.cellSize) + maxX := math.Floor(bounds.maxX / index.cellSize) + minY := math.Floor(bounds.minY / index.cellSize) + maxY := math.Floor(bounds.maxY / index.cellSize) + // Keep float-to-int conversion safe on every supported target, including + // wasm32. Leave one unit of headroom so the inclusive loops below cannot + // overflow when incrementing their final coordinate. + const safeCellCoordinate = float64(1<<31 - 2) + if math.Abs(minX) > safeCellCoordinate || math.Abs(maxX) > safeCellCoordinate || + math.Abs(minY) > safeCellCoordinate || math.Abs(maxY) > safeCellCoordinate { + return nil, false + } + width := maxX - minX + 1 + height := maxY - minY + 1 + if width <= 0 || height <= 0 || width > float64(index.maxCells) || + height > float64(index.maxCells) || width*height > float64(index.maxCells) { + return nil, false + } + cells := make([]spatialCell, 0, int(width*height)) + for y := int(minY); y <= int(maxY); y++ { + for x := int(minX); x <= int(maxX); x++ { + cells = append(cells, spatialCell{x: x, y: y}) + } + } + return cells, true +} + +func finiteBounds(bounds spatialBounds) bool { + return !math.IsNaN(bounds.minX) && !math.IsNaN(bounds.minY) && + !math.IsNaN(bounds.maxX) && !math.IsNaN(bounds.maxY) && + !math.IsInf(bounds.minX, 0) && !math.IsInf(bounds.minY, 0) && + !math.IsInf(bounds.maxX, 0) && !math.IsInf(bounds.maxY, 0) +} + +type indexedEdgeSegment struct { + edge *d2graph.Edge + segment geo.Segment +} + +type bendCollisionIndex struct { + objects *spatialIndex[*d2graph.Object] + segments *spatialIndex[*indexedEdgeSegment] + edgeSegments map[*d2graph.Edge][]*indexedEdgeSegment +} + +func newBendCollisionIndex(g *d2graph.Graph) *bendCollisionIndex { + index := &bendCollisionIndex{ + objects: newSpatialIndex[*d2graph.Object](len(g.Objects)), + segments: newSpatialIndex[*indexedEdgeSegment](len(g.Edges) * 3), + edgeSegments: make(map[*d2graph.Edge][]*indexedEdgeSegment, len(g.Edges)), + } + objectBuffer := float64(edge_node_spacing) - 1 + for _, obj := range g.Objects { + bounds := spatialBounds{ + minX: obj.TopLeft.X, + minY: obj.TopLeft.Y, + maxX: obj.TopLeft.X + obj.Width, + maxY: obj.TopLeft.Y + obj.Height, + }.expanded(objectBuffer) + index.objects.add(obj, bounds) + } + for _, edge := range g.Edges { + index.updateEdge(edge) + } + return index +} + +func (index *bendCollisionIndex) updateEdge(edge *d2graph.Edge) { + previous := index.edgeSegments[edge] + for _, segment := range previous { + index.segments.remove(segment) + } + segmentCount := max(0, len(edge.Route)-1) + segments := previous[:0] + if cap(segments) < segmentCount { + segments = make([]*indexedEdgeSegment, 0, segmentCount) + } + for i := 0; i+1 < len(edge.Route); i++ { + var segment *indexedEdgeSegment + if i < len(previous) { + segment = previous[i] + } else { + segment = &indexedEdgeSegment{} + } + segment.edge = edge + segment.segment = geo.Segment{Start: edge.Route[i], End: edge.Route[i+1]} + segments = append(segments, segment) + index.segments.add(segment, boundsForSegment(segment.segment)) + } + for i := len(segments); i < len(previous); i++ { + previous[i] = nil + } + index.edgeSegments[edge] = segments +} + +func (index *bendCollisionIndex) countObjectIntersects(src, dst *d2graph.Object, segment geo.Segment) int { + count := 0 + index.objects.query(boundsForSegment(segment), func(obj *d2graph.Object) { + if obj == src || obj == dst { + return + } + if obj.Intersects(segment, float64(edge_node_spacing)-1) { + count++ + } + }) + return count +} + +func (index *bendCollisionIndex) countEdgeIntersects(sourceEdge *d2graph.Edge, segment geo.Segment) (int, int, int, int) { + isHorizontal := math.Ceil(segment.Start.Y) == math.Ceil(segment.End.Y) + crossingsCount := 0 + overlapsCount := 0 + closeOverlapsCount := 0 + touchingCount := 0 + queryBounds := boundsForSegment(segment).expanded(float64(edge_node_spacing) / 2) + index.segments.query(queryBounds, func(other *indexedEdgeSegment) { + if other.edge == sourceEdge { + return + } + otherSegment := other.segment + otherIsHorizontal := math.Ceil(otherSegment.Start.Y) == math.Ceil(otherSegment.End.Y) + if isHorizontal == otherIsHorizontal { + if segment.Overlaps(otherSegment, !isHorizontal, 0.) { + if isHorizontal { + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < float64(edge_node_spacing)/2. { + overlapsCount++ + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < float64(edge_node_spacing)/4. { + closeOverlapsCount++ + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < 1. { + touchingCount++ + } + } + } + } else { + if math.Abs(segment.Start.X-otherSegment.Start.X) < float64(edge_node_spacing)/2. { + overlapsCount++ + if math.Abs(segment.Start.X-otherSegment.Start.X) < float64(edge_node_spacing)/4. { + closeOverlapsCount++ + // Preserve the existing predicate, including its use of Y + // for vertical touching segments. + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < 1. { + touchingCount++ + } + } + } + } + } + } else if segment.Intersects(otherSegment) { + crossingsCount++ + } + }) + return crossingsCount, overlapsCount, closeOverlapsCount, touchingCount +} diff --git a/d2layouts/d2elklayout/spatial_index_test.go b/d2layouts/d2elklayout/spatial_index_test.go new file mode 100644 index 0000000000..299bd8fc69 --- /dev/null +++ b/d2layouts/d2elklayout/spatial_index_test.go @@ -0,0 +1,142 @@ +package d2elklayout + +import ( + "math" + "math/rand" + "testing" + + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/lib/geo" +) + +func TestBendCollisionIndexMatchesBruteForce(t *testing.T) { + g := compileBenchmarkGraph(t, denseBenchmarkInput(60, 180)) + setSyntheticRoutes(g) + index := newBendCollisionIndex(g) + + queries := make([]geo.Segment, 0, len(g.Edges)*2+100) + for _, edge := range g.Edges { + for i := 0; i+1 < len(edge.Route); i += 2 { + queries = append(queries, *geo.NewSegment(edge.Route[i].Copy(), edge.Route[i+1].Copy())) + } + } + random := rand.New(rand.NewSource(1)) + for i := 0; i < 100; i++ { + x := random.Float64()*4500 - 250 + y := random.Float64()*800 - 150 + dx := random.Float64()*700 - 350 + dy := random.Float64()*200 - 100 + queries = append(queries, *geo.NewSegment(geo.NewPoint(x, y), geo.NewPoint(x+dx, y+dy))) + } + // Exercise the fallback path for a query spanning more than the grid's + // bounded number of cells. + queries = append(queries, *geo.NewSegment(geo.NewPoint(-100_000, 20), geo.NewPoint(100_000, 20))) + + assertBendCollisionQueriesMatch(t, g, index, queries) + + // The production algorithm mutates routes after accepting a simplification. + // Verify removals and insertions keep the broad phase exact. + changed := g.Edges[len(g.Edges)/2] + changed.Route = []*geo.Point{ + geo.NewPoint(-25_000, -50), + geo.NewPoint(25_000, -50), + geo.NewPoint(25_000, 300), + geo.NewPoint(80, 300), + } + index.updateEdge(changed) + assertBendCollisionQueriesMatch(t, g, index, queries) +} + +func TestSpatialIndexFallsBackOutsideWasm32IntRange(t *testing.T) { + index := newSpatialIndex[int](1) + coordinate := float64(1<<31) * index.cellSize + if cells, ok := index.coveredCells(spatialBounds{ + minX: coordinate, + maxX: coordinate, + }); ok || cells != nil { + t.Fatalf("positive out-of-range coordinate used grid cells: %#v", cells) + } + if cells, ok := index.coveredCells(spatialBounds{ + minX: -coordinate, + maxX: -coordinate, + }); ok || cells != nil { + t.Fatalf("negative out-of-range coordinate used grid cells: %#v", cells) + } +} + +func assertBendCollisionQueriesMatch(t *testing.T, g *d2graph.Graph, index *bendCollisionIndex, queries []geo.Segment) { + t.Helper() + for queryIndex, query := range queries { + sourceEdge := g.Edges[queryIndex%len(g.Edges)] + gotObjects := index.countObjectIntersects(sourceEdge.Src, sourceEdge.Dst, query) + wantObjects := bruteObjectIntersects(g, sourceEdge.Src, sourceEdge.Dst, query) + if gotObjects != wantObjects { + t.Fatalf("query %d object intersections = %d, want %d", queryIndex, gotObjects, wantObjects) + } + gotCrossings, gotOverlaps, gotClose, gotTouching := index.countEdgeIntersects(sourceEdge, query) + wantCrossings, wantOverlaps, wantClose, wantTouching := bruteEdgeIntersects(g, sourceEdge, query) + if gotCrossings != wantCrossings || gotOverlaps != wantOverlaps || gotClose != wantClose || gotTouching != wantTouching { + t.Fatalf( + "query %d edge intersections = (%d,%d,%d,%d), want (%d,%d,%d,%d)", + queryIndex, gotCrossings, gotOverlaps, gotClose, gotTouching, + wantCrossings, wantOverlaps, wantClose, wantTouching, + ) + } + } +} + +func bruteObjectIntersects(g *d2graph.Graph, src, dst *d2graph.Object, segment geo.Segment) int { + count := 0 + for _, obj := range g.Objects { + if obj == src || obj == dst { + continue + } + if obj.Intersects(segment, float64(edge_node_spacing)-1) { + count++ + } + } + return count +} + +func bruteEdgeIntersects(g *d2graph.Graph, sourceEdge *d2graph.Edge, segment geo.Segment) (int, int, int, int) { + isHorizontal := math.Ceil(segment.Start.Y) == math.Ceil(segment.End.Y) + crossingsCount := 0 + overlapsCount := 0 + closeOverlapsCount := 0 + touchingCount := 0 + for _, edge := range g.Edges { + if edge == sourceEdge { + continue + } + for i := 0; i+1 < len(edge.Route); i++ { + otherSegment := *geo.NewSegment(edge.Route[i], edge.Route[i+1]) + otherIsHorizontal := math.Ceil(otherSegment.Start.Y) == math.Ceil(otherSegment.End.Y) + if isHorizontal == otherIsHorizontal { + if segment.Overlaps(otherSegment, !isHorizontal, 0.) { + if isHorizontal { + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < float64(edge_node_spacing)/2. { + overlapsCount++ + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < float64(edge_node_spacing)/4. { + closeOverlapsCount++ + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < 1. { + touchingCount++ + } + } + } + } else if math.Abs(segment.Start.X-otherSegment.Start.X) < float64(edge_node_spacing)/2. { + overlapsCount++ + if math.Abs(segment.Start.X-otherSegment.Start.X) < float64(edge_node_spacing)/4. { + closeOverlapsCount++ + if math.Abs(segment.Start.Y-otherSegment.Start.Y) < 1. { + touchingCount++ + } + } + } + } + } else if segment.Intersects(otherSegment) { + crossingsCount++ + } + } + } + return crossingsCount, overlapsCount, closeOverlapsCount, touchingCount +} diff --git a/d2layouts/d2elklayout/wasm.go b/d2layouts/d2elklayout/wasm.go index 8945877a15..82094e5328 100644 --- a/d2layouts/d2elklayout/wasm.go +++ b/d2layouts/d2elklayout/wasm.go @@ -21,6 +21,7 @@ func ConvertGraph(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) opts = &DefaultOpts } defer xdefer.Errorf(&err, "failed to ELK layout") + graphStats := collectELKGraphStats(g) elkGraph := &ELKGraph{ ID: "", @@ -44,7 +45,7 @@ func ConvertGraph(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) } if elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing == DefaultOpts.SelfLoopSpacing { // +5 for a tiny bit of padding - elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, childrenMaxSelfLoop(g.Root, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) + elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(elkGraph.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, graphStats.maxSelfLoopLabel(g.Root, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) } switch g.Root.Direction.Value { case "down": @@ -80,16 +81,9 @@ func ConvertGraph(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) } walk(g.Root, nil, func(obj, parent *d2graph.Object) { - incoming := 0. - outgoing := 0. - for _, e := range g.Edges { - if e.Src == obj { - outgoing++ - } - if e.Dst == obj { - incoming++ - } - } + degree := graphStats.degrees[obj] + incoming := degree.incoming + outgoing := degree.outgoing if incoming >= 2 || outgoing >= 2 { switch g.Root.Direction.Value { case "right", "left": @@ -139,7 +133,7 @@ func ConvertGraph(ctx context.Context, g *d2graph.Graph, opts *ConfigurableOpts) }, } if n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing == DefaultOpts.SelfLoopSpacing { - n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, childrenMaxSelfLoop(obj, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) + n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing = go2.Max(n.LayoutOptions.ConfigurableOpts.SelfLoopSpacing, graphStats.maxSelfLoopLabel(obj, g.Root.Direction.Value == "down" || g.Root.Direction.Value == "" || g.Root.Direction.Value == "up")/2+5) } switch elkGraph.LayoutOptions.Direction { diff --git a/d2layouts/d2layouts.go b/d2layouts/d2layouts.go index d1d7bcbcaf..aa48dd4bb0 100644 --- a/d2layouts/d2layouts.go +++ b/d2layouts/d2layouts.go @@ -91,6 +91,19 @@ func LayoutNested(ctx context.Context, g *d2graph.Graph, graphInfo GraphInfo, co // Iterate top-down from Root so all nested diagrams can process their own contents queue := make([]*d2graph.Object, 0, len(g.Root.ChildrenArray)) queue = append(queue, g.Root.ChildrenArray...) + var batchedExtractions map[*d2graph.Object]*subgraphExtraction + var extractionBatch *subgraphExtractionBatch + if graphInfo.DiagramType != GridDiagram { + specs := collectNestedExtractions(g) + if len(specs) > 1 { + extractionBatch = extractSubgraphs(g, specs) + batchedExtractions = extractionBatch.extractions + queue = queue[:0] + for _, spec := range specs { + queue = append(queue, spec.container) + } + } + } for len(queue) > 0 { curr := queue[0] @@ -99,6 +112,9 @@ func LayoutNested(ctx context.Context, g *d2graph.Graph, graphInfo GraphInfo, co isGridCellContainer := graphInfo.DiagramType == GridDiagram && curr.IsContainer() && curr.Parent == g.Root gi := NestedGraphInfo(curr) + if extraction, ok := batchedExtractions[curr]; ok { + gi = extraction.graphInfo + } if isGridCellContainer && gi.isDefault() { // if we are in a grid diagram, and our children have descendants @@ -193,12 +209,22 @@ func LayoutNested(ctx context.Context, g *d2graph.Graph, graphInfo GraphInfo, co if !gi.isDefault() { // empty grid or sequence can have 0 objects.. - if !gi.IsConstantNear && len(curr.Children) == 0 { + _, wasBatched := batchedExtractions[curr] + if !wasBatched && !gi.IsConstantNear && len(curr.Children) == 0 { continue } // There is a nested diagram here, so extract its contents and process in the same way - nestedGraph, externalEdges, externalEdgeIDs := ExtractSubgraph(curr, gi.IsConstantNear) + var nestedGraph *d2graph.Graph + var externalEdges []*d2graph.Edge + var externalEdgeIDs []edgeIDs + if extraction, ok := batchedExtractions[curr]; ok { + nestedGraph = extraction.nestedGraph + externalEdges = extraction.externalEdges + externalEdgeIDs = extraction.externalEdgeIDs + } else { + nestedGraph, externalEdges, externalEdgeIDs = ExtractSubgraph(curr, gi.IsConstantNear) + } extractedEdges = append(extractedEdges, externalEdges...) extractedEdgeIDs = append(extractedEdgeIDs, externalEdgeIDs...) @@ -213,6 +239,9 @@ func LayoutNested(ctx context.Context, g *d2graph.Graph, graphInfo GraphInfo, co err := LayoutNested(ctx, nestedGraph, nestedInfo, coreLayout, edgeRouter) if err != nil { + if extraction, ok := batchedExtractions[curr]; ok { + extractionBatch.rollbackAfter(extraction.index) + } return err } // coreLayout can overwrite graph contents with newly created *Object pointers @@ -372,6 +401,210 @@ type edgeIDs struct { srcID, dstID string } +type subgraphExtractionSpec struct { + container *d2graph.Object + includeSelf bool + graphInfo GraphInfo +} + +type subgraphExtraction struct { + nestedGraph *d2graph.Graph + externalEdges []*d2graph.Edge + externalEdgeIDs []edgeIDs + graphInfo GraphInfo + index int + restoreInto *d2graph.Object +} + +type subgraphExtractionBatch struct { + g *d2graph.Graph + specs []subgraphExtractionSpec + extractions map[*d2graph.Object]*subgraphExtraction + restoreParentOrder []func() +} + +// collectNestedExtractions returns the topmost nested diagrams in the same +// breadth-first order used by LayoutNested. Their object sets are disjoint, so +// they can be partitioned out of the parent graph together. +func collectNestedExtractions(g *d2graph.Graph) []subgraphExtractionSpec { + queue := make([]*d2graph.Object, 0, len(g.Root.ChildrenArray)) + queue = append(queue, g.Root.ChildrenArray...) + var specs []subgraphExtractionSpec + for len(queue) > 0 { + curr := queue[0] + queue = queue[1:] + gi := NestedGraphInfo(curr) + if !gi.isDefault() { + if !gi.IsConstantNear && len(curr.Children) == 0 { + continue + } + specs = append(specs, subgraphExtractionSpec{ + container: curr, + includeSelf: gi.IsConstantNear, + graphInfo: gi, + }) + continue + } + queue = append(queue, curr.ChildrenArray...) + } + return specs +} + +// extractSubgraphs is the one-pass equivalent of calling ExtractSubgraph for +// each disjoint nested diagram in order. An edge crossing two nested diagrams +// belongs to the first extraction, matching the sequential implementation. +func extractSubgraphs(g *d2graph.Graph, specs []subgraphExtractionSpec) *subgraphExtractionBatch { + extractions := make(map[*d2graph.Object]*subgraphExtraction, len(specs)) + batch := &subgraphExtractionBatch{ + g: g, + specs: specs, + extractions: extractions, + } + ownerIndex := make(map[*d2graph.Object]int, len(specs)) + parentOrderSaved := make(map[*d2graph.Object]struct{}) + for i, spec := range specs { + ownerIndex[spec.container] = i + restoreInto := spec.container + if spec.includeSelf { + restoreInto = spec.container.Parent + if restoreInto != nil { + if _, ok := parentOrderSaved[restoreInto]; !ok { + parentOrderSaved[restoreInto] = struct{}{} + batch.restoreParentOrder = append(batch.restoreParentOrder, SaveChildrenOrder(restoreInto)) + } + } + } + nestedGraph := d2graph.NewGraph() + nestedGraph.RootLevel = int(spec.container.Level()) + if spec.includeSelf { + nestedGraph.RootLevel-- + } + nestedGraph.Root.Attributes = spec.container.Attributes + nestedGraph.Root.Box = &geo.Box{} + nestedGraph.Root.LabelPosition = spec.container.LabelPosition + nestedGraph.Root.IconPosition = spec.container.IconPosition + extractions[spec.container] = &subgraphExtraction{ + nestedGraph: nestedGraph, + graphInfo: spec.graphInfo, + index: i, + restoreInto: restoreInto, + } + } + + objectOwner := make(map[*d2graph.Object]int, len(g.Objects)) + findOwner := func(obj *d2graph.Object) (int, bool) { + if owner, ok := objectOwner[obj]; ok { + return owner, true + } + for ancestor := obj; ancestor != nil; ancestor = ancestor.Parent { + owner, ok := ownerIndex[ancestor] + if !ok { + continue + } + if specs[owner].includeSelf || ancestor != obj { + return owner, true + } + break + } + return 0, false + } + + remainingObjects := make([]*d2graph.Object, 0, len(g.Objects)) + for _, obj := range g.Objects { + owner, ok := findOwner(obj) + if !ok { + remainingObjects = append(remainingObjects, obj) + continue + } + objectOwner[obj] = owner + extraction := extractions[specs[owner].container] + extraction.nestedGraph.Objects = append(extraction.nestedGraph.Objects, obj) + } + g.Objects = remainingObjects + + remainingEdges := make([]*d2graph.Edge, 0, len(g.Edges)) + for _, edge := range g.Edges { + srcOwner, srcNested := findOwner(edge.Src) + if d2sequence.IsLifelineEnd(edge.Dst) { + if srcNested { + extraction := extractions[specs[srcOwner].container] + extraction.nestedGraph.Edges = append(extraction.nestedGraph.Edges, edge) + } else { + remainingEdges = append(remainingEdges, edge) + } + continue + } + + dstOwner, dstNested := findOwner(edge.Dst) + if srcNested && dstNested && srcOwner == dstOwner { + extraction := extractions[specs[srcOwner].container] + extraction.nestedGraph.Edges = append(extraction.nestedGraph.Edges, edge) + continue + } + if !srcNested && !dstNested { + remainingEdges = append(remainingEdges, edge) + continue + } + + owner := srcOwner + if !srcNested || dstNested && dstOwner < owner { + owner = dstOwner + } + extraction := extractions[specs[owner].container] + extraction.externalEdges = append(extraction.externalEdges, edge) + extraction.externalEdgeIDs = append(extraction.externalEdgeIDs, edgeIDs{ + srcID: edge.Src.AbsID(), + dstID: edge.Dst.AbsID(), + }) + } + g.Edges = remainingEdges + + // Mutate parent/root references only after all memberships have been + // classified; doing so earlier would change ancestry for later diagrams. + for _, spec := range specs { + extraction := extractions[spec.container] + for _, obj := range extraction.nestedGraph.Objects { + obj.Graph = extraction.nestedGraph + } + if spec.includeSelf { + if spec.container.Parent != nil { + spec.container.Parent.RemoveChild(spec.container) + } + extraction.nestedGraph.Root.ChildrenArray = []*d2graph.Object{spec.container} + spec.container.Parent = extraction.nestedGraph.Root + extraction.nestedGraph.Root.Children[strings.ToLower(spec.container.ID)] = spec.container + } else { + extraction.nestedGraph.Root.ChildrenArray = append(extraction.nestedGraph.Root.ChildrenArray, spec.container.ChildrenArray...) + for _, child := range spec.container.ChildrenArray { + child.Parent = extraction.nestedGraph.Root + extraction.nestedGraph.Root.Children[strings.ToLower(child.ID)] = child + } + for key := range spec.container.Children { + delete(spec.container.Children, key) + } + spec.container.ChildrenArray = nil + } + } + + return batch +} + +// rollbackAfter restores sibling diagrams that the batched fast path extracted +// ahead of the diagram whose recursive layout failed. The failing diagram and +// all earlier diagrams remain extracted, matching sequential ExtractSubgraph +// side effects at the same error point. +func (b *subgraphExtractionBatch) rollbackAfter(index int) { + for i := index + 1; i < len(b.specs); i++ { + spec := b.specs[i] + extraction := b.extractions[spec.container] + InjectNested(extraction.restoreInto, extraction.nestedGraph, false) + b.g.Edges = append(b.g.Edges, extraction.externalEdges...) + } + for _, restoreOrder := range b.restoreParentOrder { + restoreOrder() + } +} + func ExtractSubgraph(container *d2graph.Object, includeSelf bool) (nestedGraph *d2graph.Graph, externalEdges []*d2graph.Edge, externalEdgeIDs []edgeIDs) { // includeSelf: when we have a constant near or a grid cell that is a container, // we want to include itself in the nested graph, not just its descendants, diff --git a/d2layouts/d2layouts_test.go b/d2layouts/d2layouts_test.go new file mode 100644 index 0000000000..265c75d4ff --- /dev/null +++ b/d2layouts/d2layouts_test.go @@ -0,0 +1,315 @@ +package d2layouts + +import ( + "context" + "errors" + "fmt" + "reflect" + "sort" + "strings" + "testing" + + "github.com/d2lang/d2/d2compiler" + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/d2layouts/d2dagrelayout" + "github.com/d2lang/d2/d2themes/d2themescatalog" + "github.com/d2lang/d2/lib/log" + "github.com/d2lang/d2/lib/textmeasure" +) + +func TestExtractSubgraphsMatchesSequentialExtraction(t *testing.T) { + t.Parallel() + input := ` +gridA: { + grid-columns: 2 + a -> b -> c +} +sequenceB: { + shape: sequence_diagram + x -> y: request +} +ordinary: { + inner: { + grid-rows: 1 + p -> q + } +} +gridA.c -> sequenceB.x +ordinary.inner.q -> gridA.a +noteA: { + near: center-right + n1 -> n2 +} +noteB: { + near: bottom-right + m1 -> m2 +} +noteA.n2 -> noteB.m1 +` + + sequentialGraph := compileLayoutTestGraph(t, input) + sequentialSpecs := collectNestedExtractions(sequentialGraph) + sequential := make(map[string]extractionSignature, len(sequentialSpecs)) + for _, spec := range sequentialSpecs { + id := spec.container.AbsID() + nestedGraph, externalEdges, externalEdgeIDs := ExtractSubgraph(spec.container, spec.includeSelf) + sequential[id] = makeExtractionSignature(nestedGraph, externalEdges, externalEdgeIDs) + } + + batchedGraph := compileLayoutTestGraph(t, input) + batchedSpecs := collectNestedExtractions(batchedGraph) + batchedExtractions := extractSubgraphs(batchedGraph, batchedSpecs).extractions + batched := make(map[string]extractionSignature, len(batchedSpecs)) + for _, spec := range batchedSpecs { + extraction := batchedExtractions[spec.container] + batched[spec.container.AbsID()] = makeExtractionSignature(extraction.nestedGraph, extraction.externalEdges, extraction.externalEdgeIDs) + } + + if got, want := graphMembershipSignature(batchedGraph), graphMembershipSignature(sequentialGraph); !reflect.DeepEqual(got, want) { + t.Fatalf("remaining parent graph differs:\n got: %#v\nwant: %#v", got, want) + } + if !reflect.DeepEqual(batched, sequential) { + t.Fatalf("extractions differ:\n got: %#v\nwant: %#v", batched, sequential) + } +} + +func TestLayoutNestedBatchRollsBackLaterSiblingsOnError(t *testing.T) { + t.Parallel() + input := ` +base +first: { + near: center-right + a -> b +} +middle +second: { + grid-columns: 1 + c -> d +} +third: { + near: bottom-right + e -> f +} +last +first.b -> second.c +base -> second.d +first.b -> third.e +base -> third.f +` + wantErr := errors.New("injected layout failure") + failingLayout := func(context.Context, *d2graph.Graph) error { + return wantErr + } + ctx := log.WithDefault(context.Background()) + + batchedGraph := compileLayoutTestGraph(t, input) + batchedTracked := trackLayoutObjects(batchedGraph) + err := LayoutNested(ctx, batchedGraph, GraphInfo{}, failingLayout, DefaultRouter) + if !errors.Is(err, wantErr) { + t.Fatalf("batched LayoutNested error = %v, want %v", err, wantErr) + } + got := layoutErrorState(batchedGraph, batchedTracked) + + sequentialGraph := compileLayoutTestGraph(t, input) + sequentialTracked := trackLayoutObjects(sequentialGraph) + restoreOrder := SaveOrder(sequentialGraph) + specs := collectNestedExtractions(sequentialGraph) + if len(specs) < 2 { + t.Fatalf("test needs at least two nested diagrams, got %d", len(specs)) + } + first := specs[0] + nestedGraph, _, _ := ExtractSubgraph(first.container, first.includeSelf) + nestedInfo := first.graphInfo + if first.graphInfo.IsConstantNear { + nestedInfo = GraphInfo{} + first.container.NearKey = nil + } + err = LayoutNested(ctx, nestedGraph, nestedInfo, failingLayout, DefaultRouter) + if !errors.Is(err, wantErr) { + t.Fatalf("sequential reference error = %v, want %v", err, wantErr) + } + restoreOrder() + want := layoutErrorState(sequentialGraph, sequentialTracked) + + if !reflect.DeepEqual(got, want) { + t.Fatalf("batched error state differs from sequential extraction:\n got: %#v\nwant: %#v", got, want) + } +} + +type layoutErrorGraphState struct { + parent graphMembership + objects []string +} + +func trackLayoutObjects(g *d2graph.Graph) map[string]*d2graph.Object { + tracked := make(map[string]*d2graph.Object, len(g.Objects)) + for _, obj := range g.Objects { + tracked[obj.AbsID()] = obj + } + return tracked +} + +func layoutErrorState(parentGraph *d2graph.Graph, tracked map[string]*d2graph.Object) layoutErrorGraphState { + state := layoutErrorGraphState{parent: graphMembershipSignature(parentGraph)} + ids := make([]string, 0, len(tracked)) + for id := range tracked { + ids = append(ids, id) + } + sort.Strings(ids) + for _, originalID := range ids { + obj := tracked[originalID] + parentID := "" + if obj.Parent != nil { + parentID = obj.Parent.AbsID() + } + var children []string + for _, child := range obj.ChildrenArray { + children = append(children, child.AbsID()) + } + var graphObjects, graphEdges []string + for _, graphObject := range obj.Graph.Objects { + graphObjects = append(graphObjects, graphObject.AbsID()) + } + for _, graphEdge := range obj.Graph.Edges { + graphEdges = append(graphEdges, graphEdge.AbsID()) + } + state.objects = append(state.objects, fmt.Sprintf( + "%s current=%s parent=%s parentGraph=%t rootLevel=%d nearNil=%t children=%v graphObjects=%v graphEdges=%v", + originalID, + obj.AbsID(), + parentID, + obj.Graph == parentGraph, + obj.Graph.RootLevel, + obj.NearKey == nil, + children, + graphObjects, + graphEdges, + )) + } + return state +} + +type graphMembership struct { + objects []string + edges []string + rootChildren []string +} + +type extractionSignature struct { + graphMembership + externalEdgeCount int + externalIDs []string +} + +func graphMembershipSignature(g *d2graph.Graph) graphMembership { + signature := graphMembership{} + for _, obj := range g.Objects { + signature.objects = append(signature.objects, obj.AbsID()) + } + for _, edge := range g.Edges { + signature.edges = append(signature.edges, edge.AbsID()) + } + for _, obj := range g.Root.ChildrenArray { + signature.rootChildren = append(signature.rootChildren, obj.AbsID()) + } + return signature +} + +func makeExtractionSignature(g *d2graph.Graph, externalEdges []*d2graph.Edge, externalEdgeIDs []edgeIDs) extractionSignature { + signature := extractionSignature{ + graphMembership: graphMembershipSignature(g), + externalEdgeCount: len(externalEdges), + } + for _, ids := range externalEdgeIDs { + signature.externalIDs = append(signature.externalIDs, ids.srcID+" -> "+ids.dstID) + } + return signature +} + +func compileLayoutTestGraph(tb testing.TB, input string) *d2graph.Graph { + tb.Helper() + g, _, err := d2compiler.Compile("index.d2", strings.NewReader(input), nil) + if err != nil { + tb.Fatal(err) + } + return g +} + +func nestedPartitionSource(diagrams, children int) string { + var out strings.Builder + for diagram := 0; diagram < diagrams; diagram++ { + fmt.Fprintf(&out, "g%d: {\n grid-columns: 2\n", diagram) + for child := 0; child < children; child++ { + fmt.Fprintf(&out, " n%d\n", child) + if child > 0 { + fmt.Fprintf(&out, " n%d -> n%d\n", child-1, child) + } + } + out.WriteString("}\n") + if diagram > 0 { + fmt.Fprintf(&out, "g%d.n%d -> g%d.n0\n", diagram-1, children-1, diagram) + } + } + return out.String() +} + +var layoutBenchmarkGraphSink *d2graph.Graph + +func BenchmarkNestedSubgraphPartition(b *testing.B) { + for _, diagrams := range []int{8, 32, 128} { + input := nestedPartitionSource(diagrams, 4) + b.Run(fmt.Sprintf("diagrams-%d", diagrams), func(b *testing.B) { + b.Run("sequential", func(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileLayoutTestGraph(b, input) + specs := collectNestedExtractions(g) + b.StartTimer() + for _, spec := range specs { + ExtractSubgraph(spec.container, spec.includeSelf) + } + } + }) + b.Run("one-pass", func(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileLayoutTestGraph(b, input) + specs := collectNestedExtractions(g) + b.StartTimer() + extractSubgraphs(g, specs) + } + }) + }) + } +} + +func BenchmarkLayoutNestedPartitions(b *testing.B) { + ctx := log.WithDefault(context.Background()) + ruler, err := textmeasure.NewRuler() + if err != nil { + b.Fatal(err) + } + for _, diagrams := range []int{8, 32, 128} { + input := nestedPartitionSource(diagrams, 4) + b.Run(fmt.Sprintf("diagrams-%d", diagrams), func(b *testing.B) { + b.ReportAllocs() + for i := 0; i < b.N; i++ { + b.StopTimer() + g := compileLayoutTestGraph(b, input) + if err := g.ApplyTheme(d2themescatalog.NeutralDefault.ID); err != nil { + b.Fatal(err) + } + if err := g.SetDimensions(nil, ruler, nil, nil); err != nil { + b.Fatal(err) + } + b.StartTimer() + if err := LayoutNested(ctx, g, GraphInfo{}, d2dagrelayout.DefaultLayout, DefaultRouter); err != nil { + b.Fatal(err) + } + layoutBenchmarkGraphSink = g + } + }) + } +} diff --git a/d2lib/d2.go b/d2lib/d2.go index efcee10e9e..aafb99f681 100644 --- a/d2lib/d2.go +++ b/d2lib/d2.go @@ -30,6 +30,13 @@ type CompileOptions struct { RouterResolver func(engine string) (d2graph.RouteEdges, error) LayoutResolver func(engine string) (d2graph.LayoutGraph, error) + // LayoutReuse allows scenarios and steps whose layout inputs are unchanged + // to reuse the geometry of their base board. Callers should enable this only + // when LayoutResolver and RouterResolver return a stable built-in Dagre or + // ELK configuration for the duration of Compile. It is disabled by default + // so custom resolvers retain their existing per-board behavior. + LayoutReuse bool + Layout *string // FontFamily controls the font family used for all texts that are not the following: @@ -57,6 +64,10 @@ func Parse(ctx context.Context, input string, compileOpts *CompileOptions) (*d2a } func Compile(ctx context.Context, input string, compileOpts *CompileOptions, renderOpts *d2svg.RenderOpts) (*d2target.Diagram, *d2graph.Graph, error) { + return compileInput(ctx, input, compileOpts, renderOpts) +} + +func compileInput(ctx context.Context, input string, compileOpts *CompileOptions, renderOpts *d2svg.RenderOpts) (*d2target.Diagram, *d2graph.Graph, error) { if compileOpts == nil { compileOpts = &CompileOptions{} } @@ -95,60 +106,90 @@ func Compile(ctx context.Context, input string, compileOpts *CompileOptions, ren } func compile(ctx context.Context, g *d2graph.Graph, compileOpts *CompileOptions, renderOpts *d2svg.RenderOpts) (*d2target.Diagram, error) { + d, _, err := compileBoard(ctx, g, compileOpts, renderOpts, nil, false) + return d, err +} + +func compileBoard(ctx context.Context, g *d2graph.Graph, compileOpts *CompileOptions, renderOpts *d2svg.RenderOpts, reuse *layoutGeometry, captureForCaller bool) (*d2target.Diagram, *layoutGeometry, error) { err := g.ApplyTheme(*renderOpts.ThemeID) if err != nil { - return nil, err + return nil, nil, err } + var geometry *layoutGeometry if len(g.Objects) > 0 { err := g.SetDimensions(compileOpts.MeasuredTexts, compileOpts.Ruler, compileOpts.FontFamily, compileOpts.MonoFontFamily) if err != nil { - return nil, err + return nil, nil, err } - coreLayout, err := getLayout(compileOpts) - if err != nil { - return nil, err + needsGeometry := compileOpts.LayoutReuse && (reuse != nil || captureForCaller || len(g.Scenarios) > 0 || len(g.Steps) > 0) + var signature layoutInputSignature + reusable := false + if needsGeometry { + engine := "" + if compileOpts.Layout != nil { + engine = *compileOpts.Layout + } + signature, reusable, err = newLayoutInputSignature(g, engine) + if err != nil { + return nil, nil, err + } } - edgeRouter, err := getEdgeRouter(compileOpts) - if err != nil { - return nil, err + // A built-in layout may surface context cancellation at the start of + // every board. Do not let geometry replay bypass that error path. + reused := ctx.Err() == nil && reusable && compileOpts.LayoutReuse && reuse.apply(g, signature) + if !reused { + coreLayout, err := getLayout(compileOpts) + if err != nil { + return nil, nil, err + } + edgeRouter, err := getEdgeRouter(compileOpts) + if err != nil { + return nil, nil, err + } + graphInfo := d2layouts.NestedGraphInfo(g.Root) + err = d2layouts.LayoutNested(ctx, g, graphInfo, coreLayout, edgeRouter) + if err != nil { + return nil, nil, err + } } - - graphInfo := d2layouts.NestedGraphInfo(g.Root) - err = d2layouts.LayoutNested(ctx, g, graphInfo, coreLayout, edgeRouter) - if err != nil { - return nil, err + if reusable && (captureForCaller || len(g.Scenarios) > 0 || len(g.Steps) > 0) { + geometry = captureLayoutGeometry(g, signature) } } d, err := d2exporter.Export(ctx, g, compileOpts.FontFamily, compileOpts.MonoFontFamily) if err != nil { - return nil, err + return nil, nil, err } for _, l := range g.Layers { - ld, err := compile(ctx, l, compileOpts, renderOpts) + // Layers are independent boards rather than overlays of their parent, so + // retain their existing always-layout behavior. + ld, _, err := compileBoard(ctx, l, compileOpts, renderOpts, nil, false) if err != nil { - return nil, err + return nil, nil, err } d.Layers = append(d.Layers, ld) } for _, l := range g.Scenarios { - ld, err := compile(ctx, l, compileOpts, renderOpts) + ld, _, err := compileBoard(ctx, l, compileOpts, renderOpts, geometry, false) if err != nil { - return nil, err + return nil, nil, err } d.Scenarios = append(d.Scenarios, ld) } - for _, l := range g.Steps { - ld, err := compile(ctx, l, compileOpts, renderOpts) + previous := geometry + for i, l := range g.Steps { + ld, stepGeometry, err := compileBoard(ctx, l, compileOpts, renderOpts, previous, i+1 < len(g.Steps)) if err != nil { - return nil, err + return nil, nil, err } d.Steps = append(d.Steps, ld) + previous = stepGeometry } - return d, nil + return d, geometry, nil } func getLayout(opts *CompileOptions) (d2graph.LayoutGraph, error) { diff --git a/d2lib/layout_reuse.go b/d2lib/layout_reuse.go new file mode 100644 index 0000000000..fadf78e00a --- /dev/null +++ b/d2lib/layout_reuse.go @@ -0,0 +1,400 @@ +package d2lib + +import ( + "bytes" + "encoding/binary" + "encoding/json" + "math" + + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/lib/geo" +) + +// layoutInputSignature is an exact, length-delimited encoding of the graph +// fields consumed by D2's layout pipeline. It is captured after theme and text +// dimensions have been applied, but before layout mutates geometry. +// +// Deliberately omitted fields are render-only metadata (colors, opacity, +// tooltips, links, classes, and AST references). Text styling is represented by +// the resulting label dimensions. The two visual modifiers that affect routing +// bounds, 3d and multiple, are included explicitly. +type layoutInputSignature string + +type layoutSignatureBuilder struct { + bytes.Buffer + scratch [8]byte +} + +func newLayoutInputSignature(g *d2graph.Graph, engine string) (layoutInputSignature, bool, error) { + if !supportsLayoutReuse(g, engine) { + return "", false, nil + } + + b := &layoutSignatureBuilder{} + b.writeString(engine) + b.writeInt(g.RootLevel) + if err := b.writeObject(g.Root); err != nil { + return "", false, err + } + b.writeInt(len(g.Objects)) + for _, obj := range g.Objects { + if err := b.writeObject(obj); err != nil { + return "", false, err + } + } + b.writeInt(len(g.Edges)) + for _, edge := range g.Edges { + if err := b.writeEdge(edge); err != nil { + return "", false, err + } + } + return layoutInputSignature(b.String()), true, nil +} + +// Sequence, grid, and constant-near layouts can synthesize or temporarily +// restructure graph topology. Geometry-only replay is intentionally disabled +// for those graph types until their generated topology can be snapshotted too. +func supportsLayoutReuse(g *d2graph.Graph, engine string) bool { + // The built-in Dagre and ELK adapters consume the geometry inputs encoded + // below. Arbitrary layout plugins receive the whole graph and may choose to + // make render-only styling affect geometry, so they remain opt-out by + // default until the layout API exposes an explicit reuse capability. + if engine != "dagre" && engine != "elk" { + return false + } + objects := make([]*d2graph.Object, 0, len(g.Objects)+1) + objects = append(objects, g.Root) + objects = append(objects, g.Objects...) + for _, obj := range objects { + if obj.IsSequenceDiagram() || obj.IsGridDiagram() || obj.IsConstantNear() { + return false + } + } + return true +} + +func (b *layoutSignatureBuilder) writeObject(obj *d2graph.Object) error { + b.writeString(obj.AbsID()) + if obj.Parent == nil { + b.writeOptionalString(nil) + } else { + parentID := obj.Parent.AbsID() + b.writeOptionalString(&parentID) + } + b.writeInt(len(obj.ChildrenArray)) + for _, child := range obj.ChildrenArray { + b.writeString(child.AbsID()) + } + b.writeInt(len(obj.Children)) + b.writeBool(obj.IsContainer()) + b.writeBox(obj.Box) + b.writeOptionalString(obj.LabelPosition) + b.writeOptionalString(obj.IconPosition) + b.writeOptionalFloat(obj.ContentAspectRatio) + b.writeBool(obj.HasLabel()) + b.writeBool(obj.HasIcon()) + b.writeBool(obj.Icon != nil) + b.writeBool(obj.Is3D()) + b.writeBool(obj.IsMultiple()) + + if err := b.writeJSON(obj.Class); err != nil { + return err + } + if err := b.writeJSON(obj.SQLTable); err != nil { + return err + } + b.writeAttributes(&obj.Attributes) + return nil +} + +func (b *layoutSignatureBuilder) writeEdge(edge *d2graph.Edge) error { + b.writeString(edge.AbsID()) + b.writeString(edge.Src.AbsID()) + b.writeString(edge.Dst.AbsID()) + b.writeInt(edge.Index) + b.writeOptionalInt(edge.SrcTableColumnIndex) + b.writeOptionalInt(edge.DstTableColumnIndex) + b.writeBool(edge.SrcArrow) + b.writeBool(edge.DstArrow) + b.writeBool(edge.IsCurve) + b.writePoints(edge.Route) + b.writeOptionalString(edge.LabelPosition) + b.writeOptionalFloat(edge.LabelPercentage) + b.writeAttributes(&edge.Attributes) + + b.writeBool(edge.SrcArrowhead != nil) + if edge.SrcArrowhead != nil { + b.writeAttributes(edge.SrcArrowhead) + } + b.writeBool(edge.DstArrowhead != nil) + if edge.DstArrowhead != nil { + b.writeAttributes(edge.DstArrowhead) + } + return nil +} + +func (b *layoutSignatureBuilder) writeAttributes(attrs *d2graph.Attributes) { + b.writeBool(attrs.Label.Value != "") + b.writeInt(attrs.LabelDimensions.Width) + b.writeInt(attrs.LabelDimensions.Height) + b.writeString(attrs.Shape.Value) + b.writeString(attrs.Direction.Value) + b.writeStrings(attrs.Constraint) + b.writeString(attrs.Language) + b.writeOptionalScalar(attrs.WidthAttr) + b.writeOptionalScalar(attrs.HeightAttr) + b.writeOptionalScalar(attrs.Top) + b.writeOptionalScalar(attrs.Left) + b.writeOptionalScalar(attrs.GridRows) + b.writeOptionalScalar(attrs.GridColumns) + b.writeOptionalScalar(attrs.GridGap) + b.writeOptionalScalar(attrs.VerticalGap) + b.writeOptionalScalar(attrs.HorizontalGap) + b.writeOptionalScalar(attrs.LabelPosition) + b.writeOptionalScalar(attrs.IconPosition) + + if attrs.NearKey == nil { + b.writeBool(false) + } else { + b.writeBool(true) + b.writeStrings(d2graph.Key(attrs.NearKey)) + } +} + +func (b *layoutSignatureBuilder) writeJSON(value any) error { + encoded, err := json.Marshal(value) + if err != nil { + return err + } + b.writeBytes(encoded) + return nil +} + +func (b *layoutSignatureBuilder) writeBytes(value []byte) { + b.writeUint64(uint64(len(value))) + _, _ = b.Write(value) +} + +func (b *layoutSignatureBuilder) writeString(value string) { + b.writeBytes([]byte(value)) +} + +func (b *layoutSignatureBuilder) writeStrings(values []string) { + b.writeInt(len(values)) + for _, value := range values { + b.writeString(value) + } +} + +func (b *layoutSignatureBuilder) writeBool(value bool) { + if value { + _ = b.WriteByte(1) + } else { + _ = b.WriteByte(0) + } +} + +func (b *layoutSignatureBuilder) writeInt(value int) { + b.writeUint64(uint64(value)) +} + +func (b *layoutSignatureBuilder) writeUint64(value uint64) { + binary.LittleEndian.PutUint64(b.scratch[:], value) + _, _ = b.Write(b.scratch[:]) +} + +func (b *layoutSignatureBuilder) writeFloat(value float64) { + b.writeUint64(math.Float64bits(value)) +} + +func (b *layoutSignatureBuilder) writeOptionalFloat(value *float64) { + b.writeBool(value != nil) + if value != nil { + b.writeFloat(*value) + } +} + +func (b *layoutSignatureBuilder) writeOptionalInt(value *int) { + b.writeBool(value != nil) + if value != nil { + b.writeInt(*value) + } +} + +func (b *layoutSignatureBuilder) writeOptionalString(value *string) { + b.writeBool(value != nil) + if value != nil { + b.writeString(*value) + } +} + +func (b *layoutSignatureBuilder) writeOptionalScalar(value *d2graph.Scalar) { + b.writeBool(value != nil) + if value != nil { + b.writeString(value.Value) + } +} + +func (b *layoutSignatureBuilder) writeBox(box *geo.Box) { + b.writeBool(box != nil) + if box == nil { + return + } + b.writePoint(box.TopLeft) + b.writeFloat(box.Width) + b.writeFloat(box.Height) +} + +func (b *layoutSignatureBuilder) writePoint(point *geo.Point) { + b.writeBool(point != nil) + if point != nil { + b.writeFloat(point.X) + b.writeFloat(point.Y) + } +} + +func (b *layoutSignatureBuilder) writePoints(points []*geo.Point) { + b.writeBool(points != nil) + if points == nil { + return + } + b.writeInt(len(points)) + for _, point := range points { + b.writePoint(point) + } +} + +type layoutGeometry struct { + signature layoutInputSignature + root objectGeometry + objects map[string]objectGeometry + edges map[string]edgeGeometry +} + +type objectGeometry struct { + box *geo.Box + labelPosition *string + iconPosition *string +} + +type edgeGeometry struct { + route []*geo.Point + labelPosition *string + labelPercentage *float64 + isCurve bool +} + +func captureLayoutGeometry(g *d2graph.Graph, signature layoutInputSignature) *layoutGeometry { + geometry := &layoutGeometry{ + signature: signature, + root: captureObjectGeometry(g.Root), + objects: make(map[string]objectGeometry, len(g.Objects)), + edges: make(map[string]edgeGeometry, len(g.Edges)), + } + for _, obj := range g.Objects { + geometry.objects[obj.AbsID()] = captureObjectGeometry(obj) + } + for _, edge := range g.Edges { + geometry.edges[edge.AbsID()] = captureEdgeGeometry(edge) + } + return geometry +} + +func captureObjectGeometry(obj *d2graph.Object) objectGeometry { + return objectGeometry{ + box: copyBox(obj.Box), + labelPosition: copyString(obj.LabelPosition), + iconPosition: copyString(obj.IconPosition), + } +} + +func captureEdgeGeometry(edge *d2graph.Edge) edgeGeometry { + return edgeGeometry{ + route: copyPoints(edge.Route), + labelPosition: copyString(edge.LabelPosition), + labelPercentage: copyFloat(edge.LabelPercentage), + isCurve: edge.IsCurve, + } +} + +// apply replays only geometry and layout-selected label/icon placement. Every +// structural key must be present; otherwise the caller falls back to layout. +func (geometry *layoutGeometry) apply(g *d2graph.Graph, signature layoutInputSignature) bool { + if geometry == nil || geometry.signature != signature || + len(geometry.objects) != len(g.Objects) || len(geometry.edges) != len(g.Edges) { + return false + } + for _, obj := range g.Objects { + if _, ok := geometry.objects[obj.AbsID()]; !ok { + return false + } + } + for _, edge := range g.Edges { + if _, ok := geometry.edges[edge.AbsID()]; !ok { + return false + } + } + + applyObjectGeometry(g.Root, geometry.root) + for _, obj := range g.Objects { + applyObjectGeometry(obj, geometry.objects[obj.AbsID()]) + } + for _, edge := range g.Edges { + applyEdgeGeometry(edge, geometry.edges[edge.AbsID()]) + } + return true +} + +func applyObjectGeometry(obj *d2graph.Object, geometry objectGeometry) { + obj.Box = copyBox(geometry.box) + obj.LabelPosition = copyString(geometry.labelPosition) + obj.IconPosition = copyString(geometry.iconPosition) +} + +func applyEdgeGeometry(edge *d2graph.Edge, geometry edgeGeometry) { + edge.Route = copyPoints(geometry.route) + edge.LabelPosition = copyString(geometry.labelPosition) + edge.LabelPercentage = copyFloat(geometry.labelPercentage) + edge.IsCurve = geometry.isCurve +} + +func copyBox(box *geo.Box) *geo.Box { + if box == nil { + return nil + } + return geo.NewBox(copyPoint(box.TopLeft), box.Width, box.Height) +} + +func copyPoints(points []*geo.Point) []*geo.Point { + if points == nil { + return nil + } + result := make([]*geo.Point, len(points)) + for i, point := range points { + result[i] = copyPoint(point) + } + return result +} + +func copyPoint(point *geo.Point) *geo.Point { + if point == nil { + return nil + } + return geo.NewPoint(point.X, point.Y) +} + +func copyString(value *string) *string { + if value == nil { + return nil + } + result := *value + return &result +} + +func copyFloat(value *float64) *float64 { + if value == nil { + return nil + } + result := *value + return &result +} diff --git a/d2lib/layout_reuse_test.go b/d2lib/layout_reuse_test.go new file mode 100644 index 0000000000..126a816118 --- /dev/null +++ b/d2lib/layout_reuse_test.go @@ -0,0 +1,407 @@ +package d2lib + +import ( + "bytes" + "context" + "errors" + "fmt" + "reflect" + "strings" + "testing" + + "github.com/d2lang/d2/d2graph" + "github.com/d2lang/d2/d2layouts/d2dagrelayout" + "github.com/d2lang/d2/d2layouts/d2elklayout" + "github.com/d2lang/d2/d2renderers/d2svg" + "github.com/d2lang/d2/d2target" + "github.com/d2lang/d2/lib/geo" + d2log "github.com/d2lang/d2/lib/log" + "github.com/d2lang/d2/lib/textmeasure" +) + +func TestCompileReusesStyleOnlyScenarioAndStepGeometry(t *testing.T) { + input := `direction: right +a: Alpha +b: Beta +c: Gamma +a -> b: one +b -> c: two + +scenarios: { + recolor: { + a.style.fill: red + (a -> b)[0].style.stroke: blue + } + faded: { + b.style.opacity: 0.4 + } +} + +steps: { + first: { + c.style.fill: green + } + second: { + a.style.stroke-width: 5 + } +} +` + + optimized, optimizedCalls := compileForLayoutReuseTest(t, input, true) + baseline, baselineCalls := compileForLayoutReuseTest(t, input, false) + if optimizedCalls != 1 { + t.Fatalf("optimized layout calls = %d, want 1", optimizedCalls) + } + if baselineCalls != 5 { + t.Fatalf("baseline layout calls = %d, want 5", baselineCalls) + } + assertExactDiagramAndSVG(t, optimized, baseline) + + baseGeometry := diagramGeometryOf(optimized) + for _, scenario := range optimized.Scenarios { + if got := diagramGeometryOf(scenario); !reflect.DeepEqual(got, baseGeometry) { + t.Fatalf("scenario %q geometry differs from base:\ngot %#v\nwant %#v", scenario.Name, got, baseGeometry) + } + } + for _, step := range optimized.Steps { + if got := diagramGeometryOf(step); !reflect.DeepEqual(got, baseGeometry) { + t.Fatalf("step %q geometry differs from base:\ngot %#v\nwant %#v", step.Name, got, baseGeometry) + } + } + if got := shapeByID(t, optimized.Scenarios[0], "a").Fill; got != "red" { + t.Fatalf("scenario style output was not preserved: fill = %q, want red", got) + } + if got := shapeByID(t, optimized.Steps[1], "a").StrokeWidth; got != 5 { + t.Fatalf("step style output was not preserved: stroke width = %d, want 5", got) + } +} + +func TestCompileLayoutReuseRejectsGeometryChangesAndLayers(t *testing.T) { + input := `a -> b + +layers: { + independent: { + a -> b + } +} + +scenarios: { + wider: { + a.width: 240 + } +} + +steps: { + step-wider: { + a.width: 240 + } + recolor: { + a.style.fill: red + } +} +` + + optimized, optimizedCalls := compileForLayoutReuseTest(t, input, true) + baseline, baselineCalls := compileForLayoutReuseTest(t, input, false) + // Root, layer, geometry-changing scenario, and first step lay out. The + // style-only cumulative second step reuses the first step. + if optimizedCalls != 4 { + t.Fatalf("optimized layout calls = %d, want 4", optimizedCalls) + } + if baselineCalls != 5 { + t.Fatalf("baseline layout calls = %d, want 5", baselineCalls) + } + assertExactDiagramAndSVG(t, optimized, baseline) + + if reflect.DeepEqual(diagramGeometryOf(optimized), diagramGeometryOf(optimized.Scenarios[0])) { + t.Fatal("geometry-changing scenario unexpectedly matched base geometry") + } + if got, want := diagramGeometryOf(optimized.Steps[1]), diagramGeometryOf(optimized.Steps[0]); !reflect.DeepEqual(got, want) { + t.Fatalf("style-only cumulative step did not reuse prior-step geometry:\ngot %#v\nwant %#v", got, want) + } +} + +func TestLayoutInputSignatureIgnoresOnlyGeometryNeutralStyles(t *testing.T) { + styleOnly := `a -> b +scenarios: { + changed: { + a.style.fill: red + a.style.opacity: 0.5 + a.style.shadow: true + (a -> b)[0].style.stroke: blue + } +}` + _, calls := compileForLayoutReuseTest(t, styleOnly, true) + if calls != 1 { + t.Fatalf("style-only layout calls = %d, want 1", calls) + } + + modifier := `a -> b +scenarios: { + changed: { + a.style.3d: true + } +}` + _, calls = compileForLayoutReuseTest(t, modifier, true) + if calls != 2 { + t.Fatalf("geometry-modifier layout calls = %d, want 2", calls) + } + + _, calls = compileForLayoutReuseTestEngine(t, styleOnly, true, "custom") + if calls != 2 { + t.Fatalf("custom-layout calls = %d, want 2", calls) + } +} + +func TestCompileLayoutReuseRequiresExplicitStableResolver(t *testing.T) { + input := `a +scenarios: { + recolor: { a.style.fill: red } +}` + + engine := "dagre" + layoutCalls := 0 + opts := &CompileOptions{ + Layout: &engine, + Ruler: layoutReuseTestRuler, + // Deliberately use the built-in engine name with a resolver whose + // behavior changes between boards. LayoutReuse defaults to false, so + // arbitrary public resolvers retain their historical per-board calls. + LayoutResolver: func(string) (d2graph.LayoutGraph, error) { + return func(_ context.Context, g *d2graph.Graph) error { + layoutCalls++ + for i, obj := range g.Objects { + obj.TopLeft = geo.NewPoint(float64(layoutCalls*100+i), 0) + } + return nil + }, nil + }, + } + ctx := d2log.WithDefault(context.Background()) + diagram, _, err := Compile(ctx, input, opts, &d2svg.RenderOpts{}) + if err != nil { + t.Fatal(err) + } + if layoutCalls != 2 { + t.Fatalf("layout calls = %d, want 2", layoutCalls) + } + if got, want := shapeByID(t, diagram, "a").Pos.X, 100; got != want { + t.Fatalf("base x = %d, want %d", got, want) + } + if got, want := shapeByID(t, diagram.Scenarios[0], "a").Pos.X, 200; got != want { + t.Fatalf("scenario x = %d, want %d", got, want) + } +} + +func TestCompileLayoutReusePreservesPerBoardCancellation(t *testing.T) { + input := `a -> b +scenarios: { + recolor: { a.style.fill: red } +}` + + run := func(reuse bool) (int, error) { + ctx, cancel := context.WithCancel(d2log.WithDefault(context.Background())) + calls := 0 + engine := "elk" + opts := &CompileOptions{ + Layout: &engine, + LayoutReuse: reuse, + Ruler: layoutReuseTestRuler, + LayoutResolver: func(string) (d2graph.LayoutGraph, error) { + return func(ctx context.Context, g *d2graph.Graph) error { + calls++ + err := d2elklayout.DefaultLayout(ctx, g) + if calls == 1 && err == nil { + cancel() + } + return err + }, nil + }, + } + _, _, err := Compile(ctx, input, opts, &d2svg.RenderOpts{}) + return calls, err + } + + baselineCalls, baselineErr := run(false) + reuseCalls, reuseErr := run(true) + if baselineCalls != 2 || reuseCalls != 2 { + t.Fatalf("layout calls without/with reuse = %d/%d, want 2/2", baselineCalls, reuseCalls) + } + if !errors.Is(baselineErr, context.Canceled) || !errors.Is(reuseErr, context.Canceled) { + t.Fatalf("errors without/with reuse = %v/%v, want context cancellation", baselineErr, reuseErr) + } + if baselineErr.Error() != reuseErr.Error() { + t.Fatalf("error with reuse = %q, want %q", reuseErr, baselineErr) + } +} + +func BenchmarkCompileStyleOnlyBoards(b *testing.B) { + input := benchmarkStyleOnlyBoards(32, 8, 8) + for _, tc := range []struct { + name string + reuse bool + }{ + {name: "reuse", reuse: true}, + {name: "full-layout", reuse: false}, + } { + b.Run(tc.name, func(b *testing.B) { + b.ReportAllocs() + ctx := d2log.WithDefault(context.Background()) + for i := 0; i < b.N; i++ { + calls := 0 + opts := dagreCompileOptions(&calls) + renderOpts := &d2svg.RenderOpts{} + opts.LayoutReuse = tc.reuse + if _, _, err := compileInput(ctx, input, opts, renderOpts); err != nil { + b.Fatal(err) + } + wantCalls := 17 + if tc.reuse { + wantCalls = 1 + } + if calls != wantCalls { + b.Fatalf("layout calls = %d, want %d", calls, wantCalls) + } + } + }) + } +} + +func compileForLayoutReuseTest(t *testing.T, input string, allowLayoutReuse bool) (*d2target.Diagram, int) { + return compileForLayoutReuseTestEngine(t, input, allowLayoutReuse, "dagre") +} + +func compileForLayoutReuseTestEngine(t *testing.T, input string, allowLayoutReuse bool, engine string) (*d2target.Diagram, int) { + t.Helper() + calls := 0 + opts := dagreCompileOptions(&calls) + opts.Layout = &engine + opts.LayoutReuse = allowLayoutReuse + ctx := d2log.WithDefault(context.Background()) + diagram, _, err := compileInput(ctx, input, opts, &d2svg.RenderOpts{}) + if err != nil { + t.Fatal(err) + } + return diagram, calls +} + +func dagreCompileOptions(calls *int) *CompileOptions { + engine := "dagre" + return &CompileOptions{ + Layout: &engine, + Ruler: layoutReuseTestRuler, + LayoutResolver: func(string) (d2graph.LayoutGraph, error) { + return func(ctx context.Context, g *d2graph.Graph) error { + *calls++ + return d2dagrelayout.Layout(ctx, g, nil) + }, nil + }, + } +} + +var layoutReuseTestRuler = func() *textmeasure.Ruler { + ruler, err := textmeasure.NewRuler() + if err != nil { + panic(err) + } + return ruler +}() + +func assertExactDiagramAndSVG(t *testing.T, got, want *d2target.Diagram) { + t.Helper() + if !reflect.DeepEqual(got, want) { + t.Fatal("diagram output with layout reuse differs from full-layout output") + } + gotSVG, err := d2svg.RenderMultiboard(got, &d2svg.RenderOpts{}) + if err != nil { + t.Fatal(err) + } + wantSVG, err := d2svg.RenderMultiboard(want, &d2svg.RenderOpts{}) + if err != nil { + t.Fatal(err) + } + if len(gotSVG) != len(wantSVG) { + t.Fatalf("rendered board count = %d, want %d", len(gotSVG), len(wantSVG)) + } + for i := range gotSVG { + if !bytes.Equal(gotSVG[i], wantSVG[i]) { + t.Fatalf("rendered SVG board %d differs from full-layout output", i) + } + } +} + +type diagramGeometry struct { + shapes []shapeGeometry + connections []connectionGeometry +} + +type shapeGeometry struct { + id string + pos d2target.Point + width, height int + labelPosition, iconPosition string +} + +type connectionGeometry struct { + id string + route []geo.Point + isCurve bool + labelPosition string + labelPercentage float64 +} + +func diagramGeometryOf(diagram *d2target.Diagram) diagramGeometry { + result := diagramGeometry{ + shapes: make([]shapeGeometry, len(diagram.Shapes)), + connections: make([]connectionGeometry, len(diagram.Connections)), + } + for i, shape := range diagram.Shapes { + result.shapes[i] = shapeGeometry{ + id: shape.ID, pos: shape.Pos, width: shape.Width, height: shape.Height, + labelPosition: shape.LabelPosition, iconPosition: shape.IconPosition, + } + } + for i, connection := range diagram.Connections { + route := make([]geo.Point, len(connection.Route)) + for j, point := range connection.Route { + route[j] = *point + } + result.connections[i] = connectionGeometry{ + id: connection.ID, route: route, isCurve: connection.IsCurve, + labelPosition: connection.LabelPosition, labelPercentage: connection.LabelPercentage, + } + } + return result +} + +func shapeByID(t *testing.T, diagram *d2target.Diagram, id string) d2target.Shape { + t.Helper() + for _, shape := range diagram.Shapes { + if shape.ID == id { + return shape + } + } + t.Fatalf("shape %q not found", id) + return d2target.Shape{} +} + +func benchmarkStyleOnlyBoards(nodes, scenarios, steps int) string { + var b strings.Builder + b.WriteString("direction: right\n") + for i := 0; i < nodes; i++ { + fmt.Fprintf(&b, "n%d: node %d\n", i, i) + if i > 0 { + fmt.Fprintf(&b, "n%d -> n%d\n", i-1, i) + } + } + b.WriteString("scenarios: {\n") + for i := 0; i < scenarios; i++ { + fmt.Fprintf(&b, "s%d: { n%d.style.fill: red }\n", i, i%nodes) + } + b.WriteString("}\nsteps: {\n") + for i := 0; i < steps; i++ { + fmt.Fprintf(&b, "t%d: { n%d.style.opacity: 0.%d }\n", i, i%nodes, i+1) + } + b.WriteString("}\n") + return b.String() +} diff --git a/e2etests/e2e_test.go b/e2etests/e2e_test.go index 502bf63882..8d8a685df8 100644 --- a/e2etests/e2e_test.go +++ b/e2etests/e2e_test.go @@ -133,6 +133,7 @@ func runASCIITxtarTest(t *testing.T, tc testCase) { Ruler: ruler, Layout: go2.Pointer("elk"), LayoutResolver: layoutResolver, + LayoutReuse: true, } renderOpts := &d2svg.RenderOpts{ Pad: go2.Pointer(int64(0)), @@ -341,6 +342,7 @@ func run(t *testing.T, tc testCase) { MeasuredTexts: tc.mtexts, Layout: go2.Pointer(layoutName), LayoutResolver: layoutResolver, + LayoutReuse: true, } renderOpts := &d2svg.RenderOpts{ Pad: go2.Pointer(int64(0)), diff --git a/go.mod b/go.mod index b2f3d5a69f..073619d2dd 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,7 @@ require ( github.com/alecthomas/chroma/v2 v2.27.0 github.com/andybalholm/brotli v1.2.2 github.com/coder/websocket v1.8.15 - github.com/d2lang/dagro v0.1.0 + github.com/d2lang/dagro v0.1.1 github.com/d2lang/elk-go v0.1.0 github.com/d2lang/mathjax-go v0.1.0 github.com/d2lang/rough-go v0.1.0 diff --git a/go.sum b/go.sum index 64ab4c8f5e..cf9f301d99 100644 --- a/go.sum +++ b/go.sum @@ -17,8 +17,8 @@ github.com/coder/websocket v1.8.15/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6p github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/d2lang/dagro v0.1.0 h1:517f9fzr6p1eN5TdUXjUGy9DKZnHhPIScWOsmN0ot4w= -github.com/d2lang/dagro v0.1.0/go.mod h1:GYboiXSkXU1tuj7jYRXD8+lvHJBBZk3SAbfVT6qJsLU= +github.com/d2lang/dagro v0.1.1 h1:CkeHMpXiJVfWZCdnJ59Sp2R2W8vj0djvjFKEBVncgGw= +github.com/d2lang/dagro v0.1.1/go.mod h1:GYboiXSkXU1tuj7jYRXD8+lvHJBBZk3SAbfVT6qJsLU= github.com/d2lang/elk-go v0.1.0 h1:lR0Fx6N90PQCybxAfO6F6RunI87PKDvNiAipJzlppF8= github.com/d2lang/elk-go v0.1.0/go.mod h1:tvu+zORoU3aAbBetbyvmwsF8Tjdvj/+fG9owqahZ+BQ= github.com/d2lang/mathjax-go v0.1.0 h1:wwEYeMNpjqZrKqoZYNA3ZvVxQuN0EzBwEPClUT/KcwE= diff --git a/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json index 3ca4731d6f..d3905239f6 100644 --- a/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json +++ b/testdata/d2compiler/TestCompile/reserved_quoted/3.exp.json @@ -97,40 +97,6 @@ "id": "shape", "id_val": "shape", "references": [ - { - "key": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "double_quoted_string": { - "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:2:2-0:9:9", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "key_path_index": 1, - "map_key_edge_index": -1 - }, { "key": { "range": "d2/testdata/d2compiler/TestCompile/reserved_quoted/3.d2,0:0:0-0:9:9", diff --git a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json index 7b9cda9096..a6f4c2f96b 100644 --- a/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json +++ b/testdata/d2ir/TestCompile/filters/label-filter/1.exp.json @@ -536,115 +536,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:20:45", - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", - "raw": "0.1", - "value": "1/10" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } @@ -1081,115 +972,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:20:45", - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", - "raw": "0.1", - "value": "1/10" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } @@ -1799,142 +1581,33 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", + "value": [ { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", + "string": "p", + "raw_string": "p" + } + ] + }, + "key_path": { + "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:20:45", - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", - "raw": "0.1", - "value": "1/10" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", - "value": [ - { - "string": "p", - "raw_string": "p" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,3:0:5-3:1:6", - "value": [ - { - "string": "p", - "raw_string": "p" + "string": "p", + "raw_string": "p" } ] } @@ -2354,115 +2027,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:20:45", - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", - "raw": "0.1", - "value": "1/10" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } @@ -2968,115 +2532,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:20:45", - "key": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:15:40", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:0:25-6:1:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:2:27-6:7:32", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/filters/label-filter/1.d2,6:8:33-6:15:40", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/filters/label-filter/1.d2,6:17:42-6:20:45", - "raw": "0.1", - "value": "1/10" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } diff --git a/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json b/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json index c7031c8aea..f46b792bac 100644 --- a/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json +++ b/testdata/d2ir/TestCompile/filters/lazy-filter.exp.json @@ -402,134 +402,6 @@ "due_to_glob": false, "due_to_lazy_glob": false }, - { - "string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/lazy-filter.d2,2:2:8-2:11:17", - "ampersand": true, - "key": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:10:16-2:11:17", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - }, - "key_path": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/filters/lazy-filter.d2,2:2:8-2:11:17", - "ampersand": true, - "key": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", - "value": [ - { - "string": "label", - "raw_string": "label" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/filters/lazy-filter.d2,2:10:16-2:11:17", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, { "string": { "range": "TestCompile/filters/lazy-filter.d2,2:3:9-2:8:14", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json index 9ff260e57b..1d2273f127 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/1.exp.json @@ -293,117 +293,174 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", "value": [ { - "string": "multiple", - "raw_string": "multiple" + "string": "***", + "raw_string": "***" } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } + "string": "fill", + "raw_string": "fill" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } + "string": "fill", + "raw_string": "fill" } ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } }, { - "string": { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", "value": [ { @@ -411,5559 +468,122 @@ "raw_string": "multiple" } ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", - "value": [ - { - "string": "multiple", - "raw_string": "multiple" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "boolean": { - "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", - "value": true - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/1.d2,6:2:72-6:3:73", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + } } ] }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:22:63", + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:16:57", + "path": [ { - "string": "circle", - "raw_string": "circle" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:0:41-3:1:42", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:2:43-3:7:48", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:8:49-3:16:57", + "value": [ + { + "string": "multiple", + "raw_string": "multiple" } ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": { + "boolean": { + "range": "TestCompile/patterns/alixander-review/1.d2,3:18:59-3:22:63", + "value": true + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", + "value": [ + { + "string": "circle", + "raw_string": "circle" + } + ] + } + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", "value": [ { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": "**", + "raw_string": "**" } + ], + "pattern": [ + "*", + "", + "*" ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + } }, { - "string": { + "unquoted_string": { "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", "value": [ { @@ -5971,210 +591,263 @@ "raw_string": "shape" } ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ + { + "string": "shape", + "raw_string": "shape" } ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", "value": [ { - "string": "shape", - "raw_string": "shape" + "string": "circle", + "raw_string": "circle" } ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,6:2:72-6:3:73", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", "value": [ { - "string": "**", - "raw_string": "**" + "string": "fill", + "raw_string": "fill" } - ], - "pattern": [ - "*", - "", - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", + "path": [ { - "string": "shape", - "raw_string": "shape" + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", + "value": [ + { + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", + "key": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", + "path": [ { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", + "value": [ + { + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, { - "string": "shape", - "raw_string": "shape" + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } } ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", + "value": [ + { + "string": "yellow", + "raw_string": "yellow" + } + ] + } } } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", "value": [ { - "string": "shape", - "raw_string": "shape" + "string": "style", + "raw_string": "style" } ] }, "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", "value": [ { - "string": "**", - "raw_string": "**" + "string": "***", + "raw_string": "***" } ], "pattern": [ + "*", + "", "*", "", "*" @@ -6183,106 +856,22 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", "value": [ { - "string": "**", - "raw_string": "**" + "string": "style", + "raw_string": "style" } - ], - "pattern": [ - "*", - "", - "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", "value": [ { - "string": "shape", - "raw_string": "shape" + "string": "fill", + "raw_string": "fill" } ] } @@ -6292,20 +881,22 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", "value": [ { - "string": "**", - "raw_string": "**" + "string": "***", + "raw_string": "***" } ], "pattern": [ + "*", + "", "*", "", "*" @@ -6314,106 +905,22 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", - "value": [ - { - "string": "circle", - "raw_string": "circle" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:16:40", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:8:32", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:0:24-2:2:26", + "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", "value": [ { - "string": "**", - "raw_string": "**" + "string": "style", + "raw_string": "style" } - ], - "pattern": [ - "*", - "", - "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", "value": [ { - "string": "shape", - "raw_string": "shape" + "string": "fill", + "raw_string": "fill" } ] } @@ -6423,20 +930,44 @@ "primary": {}, "value": { "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", + "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", "value": [ { - "string": "circle", - "raw_string": "circle" + "string": "yellow", + "raw_string": "yellow" } ] } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/alixander-review/1.d2,2:10:34-2:16:40", + "value": [ + { + "string": "circle", + "raw_string": "circle" + } + ] + } + }, + "references": [ { "string": { "range": "TestCompile/patterns/alixander-review/1.d2,2:3:27-2:8:32", @@ -7119,248 +1650,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/1.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json index 80f5083dcc..96d5ac233a 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/2.exp.json @@ -312,360 +312,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:6:10", - "src": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:0:4-3:1:5", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/2.d2,3:5:9-3:6:10", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] }, diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json index 630ae91dc5..b452c8d68f 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/3.exp.json @@ -354,799 +354,301 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", "value": [ { - "string": "b", - "raw_string": "b" + "string": "a", + "raw_string": "a" } ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "key": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } + "string": "c", + "raw_string": "c" } ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", + "src": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } + "string": "b", + "raw_string": "b" } ] - }, - "src_arrow": "", - "dst": { + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } + "string": "c", + "raw_string": "c" } ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", + "edges": [ + { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", + "src": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", + "path": [ { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } + "string": "b", + "raw_string": "b" } ] - }, - "src_arrow": "", - "dst": { + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } + "string": "c", + "raw_string": "c" } ] - }, - "dst_arrow": ">" + } } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": true, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "string": "c", + "raw_string": "c" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", "value": [ { - "string": "b", - "raw_string": "b" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } + "string": "c", + "raw_string": "c" } ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", + "src": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } + "string": "b", + "raw_string": "b" } ] - }, - "src_arrow": "", - "dst": { + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,1:0:1-1:1:2", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" + "string": "c", + "raw_string": "c" } ] } @@ -1162,890 +664,114 @@ "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", "src": { "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/3.d2,5:0:16-5:6:22", - "value": [ - { - "string": "layers", - "raw_string": "layers" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/3.d2,6:2:28-6:3:29", - "value": [ - { - "string": "z", - "raw_string": "z" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/3.d2,7:4:37-7:5:38", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", + "value": [ + { + "string": "***", + "raw_string": "***" + } + ], + "pattern": [ + "*", + "", + "*", + "", + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,5:0:16-5:6:22", + "value": [ + { + "string": "layers", + "raw_string": "layers" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,6:2:28-6:3:29", + "value": [ + { + "string": "z", + "raw_string": "z" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,7:4:37-7:5:38", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "references": [ { "string": { "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", @@ -2597,154 +1323,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:10:14", - "src": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:5:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:0:4-3:3:7", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:4:8-3:5:9", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/3.d2,3:9:13-3:10:14", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json index 7014f53964..4673e5bf2b 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/4.exp.json @@ -107,771 +107,91 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/4.d2,4:0:13-4:1:14", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", "value": [ { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } + "string": "a", + "raw_string": "a" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "key": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/4.d2,3:0:11-3:1:12", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } + "string": "a", + "raw_string": "a" } ] - }, - "primary": {}, - "value": {} + } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,4:0:13-4:1:14", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", + "value": [ + { + "string": "child", + "raw_string": "child" + } + ] + }, + "references": [ { "string": { "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", @@ -1041,91 +361,6 @@ ] }, "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "key": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:8:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", - "value": [ - { - "string": "child", - "raw_string": "child" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, { "string": { "range": "TestCompile/patterns/alixander-review/4.d2,1:3:4-1:8:9", diff --git a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json index b8c58e7044..63b9c55c14 100644 --- a/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json +++ b/testdata/d2ir/TestCompile/patterns/alixander-review/5.exp.json @@ -309,1700 +309,296 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "value": [ { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "string": "a", + "raw_string": "a" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } + "string": "a", + "raw_string": "a" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", + "src": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } + "string": "a", + "raw_string": "a" } ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } + "string": "b", + "raw_string": "b" } ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", + "edges": [ + { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", + "src": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", - "src": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", - "edges": [ - { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:10:51", - "src": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:4:45-5:5:46", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,5:9:50-5:10:51", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } + "string": "red", + "raw_string": "red" } ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" } - ] - }, - "key_path": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", + "string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", "value": [ { - "string": "**", - "raw_string": "**" + "string": "fill", + "raw_string": "fill" } - ], - "pattern": [ - "*", - "", - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, { - "string": "fill", - "raw_string": "fill" + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", - "key": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:18:19", + "key": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:13:14", + "path": [ { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:0:1-1:2:3", + "value": [ + { + "string": "**", + "raw_string": "**" + } + ], + "pattern": [ + "*", + "", + "*" + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "fill", - "raw_string": "fill" + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:9:10-1:13:14", + "value": [ + { + "string": "fill", + "raw_string": "fill" + } + ] + } } ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } } } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/alixander-review/5.d2,1:15:16-1:18:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { "range": "TestCompile/patterns/alixander-review/5.d2,1:3:4-1:8:9", diff --git a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json index f1c6dcea9b..d898c4e391 100644 --- a/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/edge-glob-style-inherit/2.exp.json @@ -265,227 +265,286 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "y", + "raw_string": "y" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { @@ -592,7713 +651,158 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "value": [ { - "string": "style", - "raw_string": "style" + "string": "y", + "raw_string": "y" } ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "y", + "raw_string": "y" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,4:0:56-4:5:61", - "value": [ - { - "string": "steps", - "raw_string": "steps" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "value": [ - { - "string": "1", - "raw_string": "1" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - } - ], - "edges": [ - { - "edge_id": { - "src_path": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - ], - "src_arrow": false, - "dst_path": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - ], - "dst_arrow": true, - "index": 0, - "glob": false - }, - "map": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ] - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "value": [ - { - "string": "1", - "raw_string": "1" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "value": [ - { - "string": "1", - "raw_string": "1" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-7:3:98", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", - "value": [ - { - "string": "1", - "raw_string": "1" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:5:70-7:3:98", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - } - ] - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", - "value": [ - { - "string": "2", - "raw_string": "2" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", - "edges": [ + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" + "string": "y", + "raw_string": "y" } - } + ] } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,4:0:56-4:5:61", + "value": [ + { + "string": "steps", + "raw_string": "steps" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, + "composite": { + "fields": [ { "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "value": [ { - "string": "y", - "raw_string": "y" + "string": "x", + "raw_string": "x" } ] }, @@ -8328,9 +832,9 @@ }, "primary": { "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" } }, "references": [ @@ -8400,15 +904,118 @@ "string": "*", "raw_string": "*" } - ], - "pattern": [ - "*" + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", "value": [ { "string": "style", @@ -8419,7 +1026,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", "value": [ { "string": "opacity", @@ -8433,15 +1040,15 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" } } } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false } ] } @@ -8558,6 +1165,109 @@ "due_to_glob": true, "due_to_lazy_glob": true }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, { "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", @@ -8662,51 +1372,278 @@ "value": "0" } } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } }, { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", "value": [ { "string": "style", "raw_string": "style" } ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } - }, + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + }, + "references": [ { - "unquoted_string": { + "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { @@ -8714,68 +1651,112 @@ "raw_string": "opacity" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", @@ -8993,228 +1974,372 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "y", + "raw_string": "y" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "y", + "raw_string": "y" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" + "string": "x", + "raw_string": "x" + } + ] + } + ], + "src_arrow": false, + "dst_path": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + ], + "dst_arrow": true, + "index": 0, + "glob": false + }, + "map": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "raw": "0", + "value": "0" } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ { - "string": "style", - "raw_string": "style" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } } ] - } + }, + "dst_arrow": ">" }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "raw": "0", + "value": "0" + } } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -9223,25 +2348,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -9252,7 +2363,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { "string": "opacity", @@ -9264,15 +2375,34 @@ ] }, "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "value": [ { "string": "*", @@ -9283,10 +2413,69 @@ "*" ] } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -9297,7 +2486,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { "string": "opacity", @@ -9311,7 +2500,7 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", "raw": "0", "value": "0" } @@ -9328,31 +2517,6 @@ }, "references": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, "context": { "edge": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", @@ -9440,45 +2604,23 @@ "due_to_lazy_glob": false }, { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, "context": { "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "value": [ { - "string": "x", - "raw_string": "x" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } } @@ -9486,16 +2628,19 @@ }, "src_arrow": "", "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "value": [ { - "string": "y", - "raw_string": "y" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } } @@ -9504,21 +2649,24 @@ "dst_arrow": ">" }, "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", "edges": [ { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "value": [ - { - "string": "x", - "raw_string": "x" + { + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } } @@ -9526,16 +2674,19 @@ }, "src_arrow": "", "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "value": [ { - "string": "y", - "raw_string": "y" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } } @@ -9545,16 +2696,16 @@ } ], "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true }, "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -9565,7 +2716,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { "string": "opacity", @@ -9579,54 +2730,160 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "raw": "0", + "value": "0" } } } }, - "due_to_glob": false, - "due_to_lazy_glob": false + "due_to_glob": true, + "due_to_lazy_glob": true } ] } - ], - "edges": [ - { - "edge_id": { - "src_path": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", "value": [ { - "string": "x", - "raw_string": "x" + "string": "1", + "raw_string": "1" } ] } - ], - "src_arrow": false, - "dst_path": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-7:3:98", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:2:67-5:3:68", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,5:5:70-7:3:98", + "nodes": [ { - "string": "y", - "raw_string": "y" + "map_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } + } + } } ] } - ], - "dst_arrow": true, - "index": 0, - "glob": false + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] }, - "map": { + "composite": { "fields": [ { "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -9638,7 +2895,7 @@ "fields": [ { "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -9648,7 +2905,7 @@ }, "primary": { "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", "raw": "1", "value": "1" } @@ -9656,7 +2913,116 @@ "references": [ { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", "value": [ { "string": "opacity", @@ -9665,11 +3031,22 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", "value": [ { "string": "style", @@ -9680,7 +3057,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", "value": [ { "string": "opacity", @@ -9692,311 +3069,281 @@ ] }, "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", "value": [ { - "string": "*", - "raw_string": "*" + "string": "x", + "raw_string": "x" } - ], - "pattern": [ - "*" ] } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ + }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", "value": [ { - "string": "*", - "raw_string": "*" + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] } } ] }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "x", + "raw_string": "x" } ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", - "path": [ + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } + "string": "style", + "raw_string": "style" } ] - }, - "dst_arrow": ">" + } }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" - } } } - }, - "due_to_glob": false, - "due_to_lazy_glob": false + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } } - ] - } - ], - "edges": null - }, - "references": [ + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -10005,11 +3352,25 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -10020,7 +3381,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -10032,34 +3393,15 @@ ] }, "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { "string": "*", @@ -10070,69 +3412,10 @@ "*" ] } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -10143,7 +3426,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -10157,7 +3440,7 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", "raw": "0", "value": "0" } @@ -10169,7 +3452,7 @@ }, { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -10178,122 +3461,70 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { - "string": "style", - "raw_string": "style" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "style", + "raw_string": "style" } ] } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -10304,7 +3535,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -10318,15 +3549,15 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" } } } }, - "due_to_glob": false, - "due_to_lazy_glob": false + "due_to_glob": true, + "due_to_lazy_glob": true } ] } @@ -10335,239 +3566,40 @@ }, "references": [ { - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", - "int": null, - "glob": true - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", - "raw": "0", - "value": "0" + ] } } - } + ] }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { "context": { "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "value": [ { "string": "x", @@ -10580,11 +3612,11 @@ }, "src_arrow": "", "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "value": [ { "string": "y", @@ -10598,16 +3630,16 @@ "dst_arrow": ">" }, "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", "edges": [ { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", "value": [ { "string": "x", @@ -10620,11 +3652,11 @@ }, "src_arrow": "", "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "value": [ { "string": "y", @@ -10638,17 +3670,82 @@ "dst_arrow": ">" } ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", "value": [ { "string": "style", @@ -10659,7 +3756,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", "value": [ { "string": "opacity", @@ -10673,7 +3770,7 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", "raw": "1", "value": "1" } @@ -10682,176 +3779,166 @@ }, "due_to_glob": false, "due_to_lazy_glob": false - } - ] - } - ] - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", - "value": [ - { - "string": "2", - "raw_string": "2" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", - "path": [ + }, { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", "value": [ { - "string": "2", - "raw_string": "2" + "string": "x", + "raw_string": "x" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-10:3:142", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", - "value": [ - { - "string": "2", - "raw_string": "2" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:5:104-10:3:142", - "nodes": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ { - "map_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", - "edges": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", "value": [ { - "string": "style", - "raw_string": "style" + "string": "x", + "raw_string": "x" } ] } - }, + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "y", + "raw_string": "y" } ] } } ] }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] } } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" } } - ] - } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } - } + ] }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,11:2:145-11:3:146", - "value": [ - { - "string": "3", - "raw_string": "3" - } - ] - }, - "composite": { - "fields": [ { "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", "value": [ { - "string": "x", - "raw_string": "x" + "string": "y", + "raw_string": "y" } ] }, @@ -10881,124 +3968,15 @@ }, "primary": { "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + }, + "references": [ { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -11007,22 +3985,25 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { - "string": "x", - "raw_string": "x" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -11033,7 +4014,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -11047,24 +4028,27 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { - "string": "x", - "raw_string": "x" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { "string": "style", @@ -11075,7 +4059,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { "string": "opacity", @@ -11089,22 +4073,240 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" } } } - }, - "due_to_glob": false, - "due_to_lazy_glob": false + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } - ] - } - ], - "edges": null - }, - "references": [ + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, { "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", @@ -11199,460 +4401,697 @@ ] } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": [ + { + "edge_id": { + "src_path": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] + "string": "x", + "raw_string": "x" + } + ] + } + ], + "src_arrow": false, + "dst_path": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + ], + "dst_arrow": true, + "index": 0, + "glob": false + }, + "map": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, + ] + }, + "primary": { "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ { - "string": "style", - "raw_string": "style" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } } ] - } + }, + "dst_arrow": ">" }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "raw": "0", + "value": "0" + } } } - ] + }, + "due_to_glob": true, + "due_to_lazy_glob": true }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ { - "string": "style", - "raw_string": "style" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } } ] - } + }, + "dst_arrow": ">" }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" + } } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -11661,25 +5100,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -11690,7 +5115,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { "string": "opacity", @@ -11702,15 +5127,34 @@ ] }, "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", "value": [ { "string": "*", @@ -11721,10 +5165,69 @@ "*" ] } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", "value": [ { "string": "style", @@ -11735,7 +5238,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", "value": [ { "string": "opacity", @@ -11749,7 +5252,7 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", "raw": "0", "value": "0" } @@ -11761,7 +5264,7 @@ }, { "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", "value": [ { "string": "style", @@ -11770,25 +5273,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", "value": [ { "string": "style", @@ -11799,7 +5288,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", "value": [ { "string": "opacity", @@ -11811,1126 +5300,1336 @@ ] }, "context": { - "edge": null, + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", "value": [ { - "string": "*", - "raw_string": "*" + "string": "style", + "raw_string": "style" } - ], - "pattern": [ - "*" ] } }, { "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", "value": [ { - "string": "style", - "raw_string": "style" + "string": "opacity", + "raw_string": "opacity" } ] } - }, + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null + }, + "references": [ + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:0:19-1:28:47", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:7:26", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:1:20-1:2:21", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:6:25-1:7:26", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:8:27-1:11:30", + "int": null, + "glob": true + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:25:44", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:12:31-1:17:36", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:18:37-1:25:44", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,1:27:46-1:28:47", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } } } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ] + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-10:3:142", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:2:101-8:3:102", + "value": [ + { + "string": "2", + "raw_string": "2" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,8:5:104-10:3:142", + "nodes": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + "map_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ { - "string": "style", - "raw_string": "style" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } } ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } } ] - } + }, + "dst_arrow": ">" } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" + } + } + ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,11:2:145-11:3:146", + "value": [ + { + "string": "3", + "raw_string": "3" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } } - ] + }, + "due_to_glob": true, + "due_to_lazy_glob": true }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } ] } - }, + ], + "edges": null + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "style", + "raw_string": "style" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "x", - "raw_string": "x" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - }, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", - "edges": [ - { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", - "src": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "src_arrow": "", - "dst": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - } - ] - }, - "dst_arrow": ">" - } - ], - "edge_index": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", - "int": 0, - "glob": false - }, - "edge_key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "style", - "raw_string": "style" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", - "value": [ + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } } } - ] + }, + "due_to_glob": false, + "due_to_lazy_glob": false }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:21:171-12:22:172", - "raw": "1", - "value": "1" + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" } - }, - "references": [ + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", + "string": "style", + "raw_string": "style" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", "value": [ { - "string": "opacity", - "raw_string": "opacity" + "string": "*", + "raw_string": "*" } + ], + "pattern": [ + "*" ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:19:169", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:5:155", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - }, + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:6:156-12:11:161", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:22:172", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:19:169", - "path": [ + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:5:155", - "value": [ - { - "string": "y", - "raw_string": "y" - } - ] - } - }, + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:6:156-12:11:161", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:21:171-12:22:172", - "raw": "1", - "value": "1" - } } } - }, - "due_to_glob": false, - "due_to_lazy_glob": false + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } - ] - } - ], - "edges": null - }, - "references": [ + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + }, { "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", @@ -13026,278 +6725,437 @@ } } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:6:54", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:0:48-2:1:49", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + } + ] + }, + "dst_arrow": ">" + } + ], + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:22:94", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:19:91", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:4:76-6:5:77", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:6:78-6:11:83", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:12:84-6:19:91", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,6:21:93-6:22:94", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + }, + { + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + } + ] + }, + "context": { + "edge": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] + } + ] + }, + "dst_arrow": ">" + }, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:4:110-9:32:138", + "edges": [ + { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:11:117", + "src": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:5:111-9:6:112", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] + ] + }, + "src_arrow": "", + "dst": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:10:116-9:11:117", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, + ] + }, + "dst_arrow": ">" + } + ], + "edge_index": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:12:118-9:15:121", + "int": 0, + "glob": false + }, + "edge_key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:29:135", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:16:122-9:21:127", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:22:128-9:29:135", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "opacity", + "raw_string": "opacity" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,9:31:137-9:32:138", + "raw": "1", + "value": "1" + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,2:5:53-2:6:54", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } - }, + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:21:171-12:22:172", + "raw": "1", + "value": "1" + } + }, + "references": [ { - "unquoted_string": { + "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", "value": [ { @@ -13305,177 +7163,215 @@ "raw_string": "opacity" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } } - ] + }, + "due_to_glob": true, + "due_to_lazy_glob": true }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:19:169", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:5:155", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:6:156-12:11:161", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:22:172", + "key": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:19:169", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:4:154-12:5:155", + "value": [ + { + "string": "y", + "raw_string": "y" + } + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:6:156-12:11:161", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:12:162-12:19:169", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,12:21:171-12:22:172", + "raw": "1", + "value": "1" + } } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { "range": "TestCompile/patterns/edge-glob-style-inherit/2.d2,0:2:2-0:7:7", diff --git a/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json b/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json index 60ef25b06c..49ea15119f 100644 --- a/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json +++ b/testdata/d2ir/TestCompile/patterns/field-glob-style-inherit.exp.json @@ -427,1260 +427,182 @@ }, "due_to_glob": false, "due_to_lazy_glob": false - }, + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "value": [ { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", "value": [ { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-3:1:44", + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "value": [ { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } + "string": "x", + "raw_string": "x" } ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } } } - }, - "due_to_glob": true, - "due_to_lazy_glob": true + ] }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, + "primary": {}, + "value": { + "map": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:3:22-3:1:44", + "nodes": [ { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" + "map_key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", + "raw": "1", + "value": "1" } - ] + } } } ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-3:1:44", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:3:22-3:1:44", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", - "raw": "1", - "value": "1" - } - } - } - } - ] - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,5:0:46-5:9:55", - "value": [ - { - "string": "scenarios", - "raw_string": "scenarios" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,6:2:61-6:3:62", - "value": [ - { - "string": "1", - "raw_string": "1" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", - "raw": "1", - "value": "1" - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", - "raw": "1", - "value": "1" - } - } - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] + } + } + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,5:0:46-5:9:55", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,6:2:61-6:3:62", + "value": [ + { + "string": "1", + "raw_string": "1" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,1:0:19-1:1:20", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" } - }, + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", + "raw": "1", + "value": "1" + } + }, + "references": [ { - "unquoted_string": { + "string": { "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", "value": [ { @@ -1688,286 +610,193 @@ "raw_string": "opacity" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ - { - "string": "opacity", - "raw_string": "opacity" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", + "value": [ + { + "string": "*", + "raw_string": "*" + } + ], + "pattern": [ + "*" + ] + } + }, { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", + "raw": "0", + "value": "0" + } } } - ] + }, + "due_to_glob": true, + "due_to_lazy_glob": true }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", + "string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", "value": [ { - "string": "*", - "raw_string": "*" + "string": "opacity", + "raw_string": "opacity" } - ], - "pattern": [ - "*" ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", - "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", + "key": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", + "path": [ { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", + "value": [ + { + "string": "style", + "raw_string": "style" + } + ] + } + }, { - "string": "opacity", - "raw_string": "opacity" + "unquoted_string": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", + "value": [ + { + "string": "opacity", + "raw_string": "opacity" + } + ] + } } ] + }, + "primary": {}, + "value": { + "number": { + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", + "raw": "1", + "value": "1" + } } } - ] - }, - "primary": {}, - "value": { - "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" - } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + ] + } + ], + "edges": null + }, + "references": [ { "string": { "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", @@ -2079,7 +908,7 @@ }, { "string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", "value": [ { "string": "style", @@ -2088,25 +917,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", "value": [ { "string": "style", @@ -2117,7 +932,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", "value": [ { "string": "opacity", @@ -2131,27 +946,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:18:18", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:18:42", "key": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:15:15", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:15:39", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:0:0-0:1:1", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:2:2-0:7:7", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:2:26-2:7:31", "value": [ { "string": "style", @@ -2162,7 +963,7 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:8:8-0:15:15", + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:8:32-2:15:39", "value": [ { "string": "opacity", @@ -2176,15 +977,15 @@ "primary": {}, "value": { "number": { - "range": "TestCompile/patterns/field-glob-style-inherit.d2,0:17:17-0:18:18", - "raw": "0", - "value": "0" + "range": "TestCompile/patterns/field-glob-style-inherit.d2,2:17:41-2:18:42", + "raw": "1", + "value": "1" } } } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": { diff --git a/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json index 2d7375ac93..a7c8bc927d 100644 --- a/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json @@ -177,618 +177,13 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } } ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, + } + ], + "edges": null + }, + "references": [ { "string": { "range": "rules.d2,0:4:4-0:9:9", @@ -1275,127 +670,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "rules.d2,0:0:0-0:19:19", - "key": { - "range": "rules.d2,0:0:0-0:14:14", - "path": [ - { - "unquoted_string": { - "range": "rules.d2,0:0:0-0:3:3", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:4:4-0:9:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "rules.d2,0:10:10-0:14:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "rules.d2,0:16:16-0:19:19", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } diff --git a/testdata/d2ir/TestCompile/patterns/override/1.exp.json b/testdata/d2ir/TestCompile/patterns/override/1.exp.json index 2829984b4e..0fde6a9449 100644 --- a/testdata/d2ir/TestCompile/patterns/override/1.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/1.exp.json @@ -279,240 +279,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:18:41", - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:15:38-2:18:41", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:18:41", - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:15:38-2:18:41", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } @@ -753,357 +519,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:18:41", - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:15:38-2:18:41", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/1.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/1.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/1.d2,1:0:1-1:21:22", - "key": { - "range": "TestCompile/patterns/override/1.d2,1:0:1-1:13:14", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:0:1-1:2:3", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:3:4-1:8:9", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:9:10-1:13:14", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,1:15:16-1:21:22", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:18:41", - "key": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:13:36", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:0:23-2:2:25", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:3:26-2:8:31", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:9:32-2:13:36", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/1.d2,2:15:38-2:18:41", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } diff --git a/testdata/d2ir/TestCompile/patterns/override/2.exp.json b/testdata/d2ir/TestCompile/patterns/override/2.exp.json index 644c7691fb..8b2ff5d4dc 100644 --- a/testdata/d2ir/TestCompile/patterns/override/2.exp.json +++ b/testdata/d2ir/TestCompile/patterns/override/2.exp.json @@ -307,240 +307,6 @@ }, "due_to_glob": true, "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:22:65", - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:19:62-5:22:65", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:22:65", - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:19:62-5:22:65", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true } ] } @@ -786,482 +552,6 @@ "due_to_glob": true, "due_to_lazy_glob": true }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:22:65", - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:19:62-5:22:65", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:22:65", - "key": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:17:60", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:4:47-5:6:49", - "value": [ - { - "string": "**", - "raw_string": "**" - } - ], - "pattern": [ - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:7:50-5:12:55", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:13:56-5:17:60", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,5:19:62-5:22:65", - "value": [ - { - "string": "red", - "raw_string": "red" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:22:23", - "key": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:14:15", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:0:1-1:3:4", - "value": [ - { - "string": "***", - "raw_string": "***" - } - ], - "pattern": [ - "*", - "", - "*", - "", - "*" - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", - "value": [ - { - "string": "style", - "raw_string": "style" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:10:11-1:14:15", - "value": [ - { - "string": "fill", - "raw_string": "fill" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/override/2.d2,1:16:17-1:22:23", - "value": [ - { - "string": "yellow", - "raw_string": "yellow" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, { "string": { "range": "TestCompile/patterns/override/2.d2,1:4:5-1:9:10", diff --git a/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json b/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json index 963bfa7737..645cc02945 100644 --- a/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json +++ b/testdata/d2ir/TestCompile/patterns/single-glob/defaults.exp.json @@ -1051,126 +1051,6 @@ "due_to_glob": true, "due_to_lazy_glob": true }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, { "string": { "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", @@ -1248,7 +1128,7 @@ }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -1257,11 +1137,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -1272,15 +1152,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", "value": [ { - "string": "*", - "raw_string": "*" + "string": "c", + "raw_string": "c" } - ], - "pattern": [ - "*" ] } } @@ -1289,13 +1166,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -1306,69 +1183,27 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", "value": [ { - "string": "*", - "raw_string": "*" + "string": "c", + "raw_string": "c" } - ], - "pattern": [ - "*" ] } } ] }, "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } + "value": {} } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -1377,11 +1212,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -1392,15 +1227,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", "value": [ { - "string": "*", - "raw_string": "*" + "string": "d", + "raw_string": "d" } - ], - "pattern": [ - "*" ] } } @@ -1409,13 +1241,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -1426,128 +1258,11 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", "value": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" + "string": "d", + "raw_string": "d" } ] } @@ -1560,94 +1275,59 @@ }, "due_to_glob": false, "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:0:70-9:9:79", + "value": [ + { + "string": "scenarios", + "raw_string": "scenarios" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:10:80-9:11:81", + "value": [ + { + "string": "x", + "raw_string": "x" } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", + "value": [ { - "unquoted_string": { + "string": "a", + "raw_string": "a" + } + ] + }, + "composite": { + "fields": [ + { + "name": { "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", "value": [ { @@ -1655,2665 +1335,450 @@ "raw_string": "shape" } ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:0:70-9:9:79", - "value": [ - { - "string": "scenarios", - "raw_string": "scenarios" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:10:80-9:11:81", - "value": [ - { - "string": "x", - "raw_string": "x" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ - { - "string": "c", - "raw_string": "c" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ - { - "string": "d", - "raw_string": "d" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - }, - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", - "value": [ - { - "string": "p", - "raw_string": "p" - } - ] - }, - "composite": { - "fields": [ - { - "name": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "primary": { - "value": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", - "value": [ - { - "string": "p", - "raw_string": "p" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", - "value": [ - { - "string": "p", - "raw_string": "p" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:25:95", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", - "value": [ - { - "string": "p", - "raw_string": "p" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - } - ] - } - ], - "edges": null - }, - "references": [ - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", - "value": [ - { - "string": "a", - "raw_string": "a" - } - ] - } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "primary": { + "value": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", "value": [ { - "string": "*", - "raw_string": "*" + "string": "page", + "raw_string": "page" } - ], - "pattern": [ - "*" ] } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ + }, + "references": [ { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ { - "string": "page", - "raw_string": "page" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } } ] - } - } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" - } - ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", - "value": [ - { - "string": "b", - "raw_string": "b" + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } + } } - ] + }, + "due_to_glob": true, + "due_to_lazy_glob": true } - } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ + ] + } + ], + "edges": null + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", "value": [ { - "string": "wrapper", - "raw_string": "wrapper" + "string": "a", + "raw_string": "a" } ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } } - ], - "pattern": [ - "*" ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", + "path": [ { - "string": "wrapper", - "raw_string": "wrapper" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", + "value": [ + { + "string": "a", + "raw_string": "a" + } + ] + } } ] - } + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "primary": { + "value": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", "value": [ { - "string": "*", - "raw_string": "*" + "string": "page", + "raw_string": "page" } - ], - "pattern": [ - "*" ] } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ + }, + "references": [ { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ { - "string": "page", - "raw_string": "page" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } } ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } } } - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } ] } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ + ], + "edges": null + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", "value": [ { - "string": "wrapper", - "raw_string": "wrapper" + "string": "b", + "raw_string": "b" } ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", + "value": [ + { + "string": "b", + "raw_string": "b" + } + ] + } } - ], - "pattern": [ - "*" ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", + "path": [ { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] - } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" } - } - ] + ] + } }, - "primary": {}, - "value": { + { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", "value": [ { - "string": "page", - "raw_string": "page" + "string": "b", + "raw_string": "b" } ] } } - } - } - ] - } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" + ] + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false } ] }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "primary": { + "value": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } + }, + "references": [ { - "string": "wrapper", - "raw_string": "wrapper" + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } + } + } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } ] } - }, + ], + "edges": null + }, + "references": [ { - "unquoted_string": { + "string": { "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", "value": [ { @@ -4321,363 +1786,438 @@ "raw_string": "c" } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", - "value": [ + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", + "path": [ { - "string": "c", - "raw_string": "c" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", + "value": [ + { + "string": "c", + "raw_string": "c" + } + ] + } } ] - } + }, + "primary": {}, + "value": {} } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" + }, + "due_to_glob": false, + "due_to_lazy_glob": false } ] }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ - { - "string": "*", - "raw_string": "*" - } - ], - "pattern": [ - "*" - ] + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", + "value": [ + { + "string": "d", + "raw_string": "d" } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "primary": { + "value": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", "value": [ { - "string": "*", - "raw_string": "*" + "string": "page", + "raw_string": "page" } - ], - "pattern": [ - "*" ] } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ + }, + "references": [ { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ { - "string": "page", - "raw_string": "page" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } } ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } } } - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } ] } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ + ], + "edges": null + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", "value": [ { - "string": "wrapper", - "raw_string": "wrapper" + "string": "d", + "raw_string": "d" } ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", + "path": [ { - "string": "*", - "raw_string": "*" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } } - ], - "pattern": [ - "*" ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", + "path": [ { - "string": "wrapper", - "raw_string": "wrapper" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", + "value": [ + { + "string": "d", + "raw_string": "d" + } + ] + } } ] - } + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + }, + "composite": { + "fields": [ + { + "name": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "primary": { + "value": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", "value": [ { - "string": "*", - "raw_string": "*" + "string": "page", + "raw_string": "page" } - ], - "pattern": [ - "*" ] } - } - ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ + }, + "references": [ { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "path": [ { - "string": "page", - "raw_string": "page" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", + "value": [ + { + "string": "shape", + "raw_string": "shape" + } + ] + } } ] + }, + "primary": {}, + "value": { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", + "value": [ + { + "string": "page", + "raw_string": "page" + } + ] + } } } - } + }, + "due_to_glob": true, + "due_to_lazy_glob": true } ] } - } - } - }, - "due_to_glob": true, - "due_to_lazy_glob": true - }, - { - "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ - { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - }, - "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ + ], + "edges": null + }, + "references": [ { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", + "string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", "value": [ { - "string": "wrapper", - "raw_string": "wrapper" + "string": "p", + "raw_string": "p" } ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ + }, + "key_path": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", + "path": [ { - "string": "d", - "raw_string": "d" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, + { + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } } ] - } - } - ] - }, - "context": { - "edge": null, - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", - "value": [ + }, + "context": { + "edge": null, + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:25:95", + "key": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", + "path": [ { - "string": "wrapper", - "raw_string": "wrapper" - } - ] - } - }, - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", - "value": [ + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", + "value": [ + { + "string": "wrapper", + "raw_string": "wrapper" + } + ] + } + }, { - "string": "d", - "raw_string": "d" + "unquoted_string": { + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "value": [ + { + "string": "p", + "raw_string": "p" + } + ] + } } ] - } + }, + "primary": {}, + "value": {} } - ] - }, - "primary": {}, - "value": {} - } - }, - "due_to_glob": false, - "due_to_lazy_glob": false - }, + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null + }, + "references": [ { "string": { "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", @@ -4796,11 +2336,11 @@ } }, "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_lazy_glob": false }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", "value": [ { "string": "wrapper", @@ -4809,11 +2349,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", "value": [ { "string": "wrapper", @@ -4824,15 +2364,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", "value": [ { - "string": "*", - "raw_string": "*" + "string": "a", + "raw_string": "a" } - ], - "pattern": [ - "*" ] } } @@ -4841,13 +2378,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:9:38", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:0:29-4:7:36", "value": [ { "string": "wrapper", @@ -4858,65 +2395,23 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,4:8:37-4:9:38", "value": [ { - "string": "*", - "raw_string": "*" + "string": "a", + "raw_string": "a" } - ], - "pattern": [ - "*" ] } } ] - }, - "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } + }, + "primary": {}, + "value": {} } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": { @@ -5040,7 +2535,7 @@ }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", "value": [ { "string": "wrapper", @@ -5049,11 +2544,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", "value": [ { "string": "wrapper", @@ -5064,11 +2559,11 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", "value": [ { - "string": "p", - "raw_string": "p" + "string": "b", + "raw_string": "b" } ] } @@ -5078,13 +2573,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:25:95", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:9:48", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:0:39-5:7:46", "value": [ { "string": "wrapper", @@ -5095,11 +2590,11 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", + "range": "TestCompile/patterns/single-glob/defaults.d2,5:8:47-5:9:48", "value": [ { - "string": "p", - "raw_string": "p" + "string": "b", + "raw_string": "b" } ] } @@ -5115,7 +2610,7 @@ }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -5124,11 +2619,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -5139,15 +2634,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", "value": [ { - "string": "*", - "raw_string": "*" + "string": "c", + "raw_string": "c" } - ], - "pattern": [ - "*" ] } } @@ -5156,13 +2648,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:9:58", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:0:49-6:7:56", "value": [ { "string": "wrapper", @@ -5173,69 +2665,27 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,6:8:57-6:9:58", "value": [ { - "string": "*", - "raw_string": "*" + "string": "c", + "raw_string": "c" } - ], - "pattern": [ - "*" ] } } ] }, "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } + "value": {} } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -5244,11 +2694,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -5259,15 +2709,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", "value": [ { - "string": "*", - "raw_string": "*" + "string": "d", + "raw_string": "d" } - ], - "pattern": [ - "*" ] } } @@ -5276,13 +2723,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:9:68", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:0:59-7:7:66", "value": [ { "string": "wrapper", @@ -5293,69 +2740,27 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,7:8:67-7:9:68", "value": [ { - "string": "*", - "raw_string": "*" + "string": "d", + "raw_string": "d" } - ], - "pattern": [ - "*" ] } } ] }, "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } + "value": {} } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", "value": [ { "string": "wrapper", @@ -5364,11 +2769,11 @@ ] }, "key_path": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", "value": [ { "string": "wrapper", @@ -5379,15 +2784,12 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", "value": [ { - "string": "*", - "raw_string": "*" + "string": "p", + "raw_string": "p" } - ], - "pattern": [ - "*" ] } } @@ -5396,13 +2798,13 @@ "context": { "edge": null, "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-2:1:27", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:25:95", "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:24:94", "path": [ { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:0:0-0:7:7", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:15:85-9:22:92", "value": [ { "string": "wrapper", @@ -5413,65 +2815,23 @@ }, { "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:8:8-0:9:9", + "range": "TestCompile/patterns/single-glob/defaults.d2,9:23:93-9:24:94", "value": [ { - "string": "*", - "raw_string": "*" + "string": "p", + "raw_string": "p" } - ], - "pattern": [ - "*" ] } } ] }, "primary": {}, - "value": { - "map": { - "range": "TestCompile/patterns/single-glob/defaults.d2,0:11:11-2:1:27", - "nodes": [ - { - "map_key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:12:25", - "key": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "path": [ - { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:1:14-1:6:19", - "value": [ - { - "string": "shape", - "raw_string": "shape" - } - ] - } - } - ] - }, - "primary": {}, - "value": { - "unquoted_string": { - "range": "TestCompile/patterns/single-glob/defaults.d2,1:8:21-1:12:25", - "value": [ - { - "string": "page", - "raw_string": "page" - } - ] - } - } - } - } - ] - } - } + "value": {} } }, - "due_to_glob": true, - "due_to_lazy_glob": true + "due_to_glob": false, + "due_to_lazy_glob": false }, { "string": {