From 64c2c8467a00933f10280e7dac2533adddbde520 Mon Sep 17 00:00:00 2001 From: Anmol Sethi Date: Mon, 4 Sep 2023 13:08:04 -0700 Subject: [PATCH] d2ir: Fixup lazy globs across imports --- d2ir/compile.go | 3 - d2ir/pattern_test.go | 22 +- .../1.exp.json} | 0 .../patterns/import-glob/2.exp.json | 1415 +++++++++++++++++ 4 files changed, 1436 insertions(+), 4 deletions(-) rename testdata/d2ir/TestCompile/patterns/{import-glob.exp.json => import-glob/1.exp.json} (100%) create mode 100644 testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json diff --git a/d2ir/compile.go b/d2ir/compile.go index 471bc3f885..2c46f70e45 100644 --- a/d2ir/compile.go +++ b/d2ir/compile.go @@ -475,9 +475,6 @@ func (c *compiler) compileMap(dst *Map, ast, scopeAST *d2ast.Map) { if !gctx.refctx.Key.HasTripleGlob() { continue } - if gctx.refctx.ScopeMap != impn.Map() { - continue - } gctx2 := gctx.copy() gctx2.refctx.ScopeMap = dst c.compileKey(gctx2.refctx) diff --git a/d2ir/pattern_test.go b/d2ir/pattern_test.go index e60ec0b11d..941db07855 100644 --- a/d2ir/pattern_test.go +++ b/d2ir/pattern_test.go @@ -735,7 +735,7 @@ two }, }, { - name: "import-glob", + name: "import-glob/1", run: func(t testing.TB) { m, err := compileFS(t, "index.d2", map[string]string{ "index.d2": "before; ...@globs.d2; after", @@ -750,6 +750,26 @@ two assertQuery(t, m, 0, 0, "meow", "after") }, }, + { + name: "import-glob/2", + run: func(t testing.TB) { + m, err := compileFS(t, "index.d2", map[string]string{ + "index.d2": `...@rules.d2 +hi +`, + "rules.d2": `***.style.fill: red +***: meow +x`, + }) + assert.Success(t, err) + + assertQuery(t, m, 6, 0, nil, "") + assertQuery(t, m, 2, 0, "meow", "hi") + assertQuery(t, m, 2, 0, "meow", "x") + assertQuery(t, m, 0, 0, "red", "hi.style.fill") + assertQuery(t, m, 0, 0, "red", "x.style.fill") + }, + }, } runa(t, tca) diff --git a/testdata/d2ir/TestCompile/patterns/import-glob.exp.json b/testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json similarity index 100% rename from testdata/d2ir/TestCompile/patterns/import-glob.exp.json rename to testdata/d2ir/TestCompile/patterns/import-glob/1.exp.json diff --git a/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json new file mode 100644 index 0000000000..a55fa2287b --- /dev/null +++ b/testdata/d2ir/TestCompile/patterns/import-glob/2.exp.json @@ -0,0 +1,1415 @@ +{ + "fields": [ + { + "name": "x", + "primary": { + "value": { + "range": "rules.d2,1:5:25-1:9:29", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + } + }, + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "rules.d2,0:16:16-0:19:19", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "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 + }, + { + "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 + }, + { + "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,2:0:30-2:1:31", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + }, + "key_path": { + "range": "rules.d2,2:0:30-2:1:31", + "path": [ + { + "unquoted_string": { + "range": "rules.d2,2:0:30-2:1:31", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "rules.d2,2:0:30-2:1:31", + "key": { + "range": "rules.d2,2:0:30-2:1:31", + "path": [ + { + "unquoted_string": { + "range": "rules.d2,2:0:30-2:1:31", + "value": [ + { + "string": "x", + "raw_string": "x" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + }, + { + "name": "hi", + "primary": { + "value": { + "range": "rules.d2,1:5:25-1:9:29", + "value": [ + { + "string": "meow", + "raw_string": "meow" + } + ] + } + }, + "composite": { + "fields": [ + { + "name": "style", + "composite": { + "fields": [ + { + "name": "fill", + "primary": { + "value": { + "range": "rules.d2,0:16:16-0:19:19", + "value": [ + { + "string": "red", + "raw_string": "red" + } + ] + } + }, + "references": [ + { + "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 + } + ] + } + ], + "edges": null + }, + "references": [ + { + "string": { + "range": "index.d2,1:0:13-1:2:15", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + }, + "key_path": { + "range": "index.d2,1:0:13-1:2:15", + "path": [ + { + "unquoted_string": { + "range": "index.d2,1:0:13-1:2:15", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + } + } + ] + }, + "context": { + "edge": null, + "key": { + "range": "index.d2,1:0:13-1:2:15", + "key": { + "range": "index.d2,1:0:13-1:2:15", + "path": [ + { + "unquoted_string": { + "range": "index.d2,1:0:13-1:2:15", + "value": [ + { + "string": "hi", + "raw_string": "hi" + } + ] + } + } + ] + }, + "primary": {}, + "value": {} + } + }, + "due_to_glob": false, + "due_to_lazy_glob": false + } + ] + } + ], + "edges": null +}