cuelang.org/go@v0.13.0/cue/testdata/fulleval/052_detectIncompleteJSON.txtar (about) 1 #name: detectIncompleteJSON 2 #evalFull 3 -- in.cue -- 4 package foobar 5 6 import "encoding/json" 7 8 #Spec: { 9 _vars: {something: string} 10 data: { 11 #foo: { 12 use: _vars.something 13 } 14 baz: json.Marshal(_vars.something) 15 foobar: json.Marshal(#foo) 16 } 17 } 18 Val: #Spec & { 19 _vars: something: "var-string" 20 } 21 -- out/def -- 22 package foobar 23 24 import "encoding/json" 25 26 #Spec: { 27 _vars: { 28 something: string 29 } 30 data: { 31 #foo: { 32 use: _vars.something 33 } 34 baz: json.Marshal(_vars.something) 35 foobar: json.Marshal(#foo) 36 } 37 } 38 Val: #Spec & { 39 _vars: { 40 something: "var-string" 41 } 42 } 43 -- out/export -- 44 Val: { 45 data: { 46 baz: "\"var-string\"" 47 foobar: "{\"use\":\"var-string\"}" 48 } 49 } 50 -- out/yaml -- 51 Val: 52 data: 53 baz: '"var-string"' 54 foobar: '{"use":"var-string"}' 55 -- out/json -- 56 {"Val":{"data":{"baz":"\"var-string\"","foobar":"{\"use\":\"var-string\"}"}}} 57 -- out/legacy-debug -- 58 <0>{#Spec: <1>C{_vars: <2>C{something: string}, data: <3>C{#foo: <4>C{use: string}, baz: <5>.Marshal (<6>._vars.something), foobar: <5>.Marshal (<7>.#foo)}}, Val: <8>C{_vars: <9>C{something: "var-string"}, data: <10>C{#foo: <11>C{use: "var-string"}, baz: "\"var-string\"", foobar: "{\"use\":\"var-string\"}"}}} 59 -- out/eval/stats -- 60 Leaks: 0 61 Freed: 17 62 Reused: 12 63 Allocs: 5 64 Retain: 0 65 66 Unifications: 17 67 Conjuncts: 32 68 Disjuncts: 17 69 -- out/eval -- 70 (struct){ 71 #Spec: (#struct){ 72 _vars(:foobar): (#struct){ 73 something: (string){ string } 74 } 75 data: (#struct){ 76 #foo: (#struct){ 77 use: (string){ string } 78 } 79 baz: (_|_){ 80 // [incomplete] #Spec.data.baz: non-concrete argument 0: 81 // ./in.cue:11:11 82 } 83 foobar: (_|_){ 84 // [incomplete] cannot convert incomplete value "string" to JSON: 85 // ./in.cue:6:21 86 } 87 } 88 } 89 Val: (#struct){ 90 _vars(:foobar): (#struct){ 91 something: (string){ "var-string" } 92 } 93 data: (#struct){ 94 #foo: (#struct){ 95 use: (string){ "var-string" } 96 } 97 baz: (string){ "\"var-string\"" } 98 foobar: (string){ "{\"use\":\"var-string\"}" } 99 } 100 } 101 } 102 -- out/compile -- 103 --- in.cue 104 { 105 #Spec: { 106 _vars: { 107 something: string 108 } 109 data: { 110 #foo: { 111 use: 〈2;_vars〉.something 112 } 113 baz: 〈import;"encoding/json"〉.Marshal(〈1;_vars〉.something) 114 foobar: 〈import;"encoding/json"〉.Marshal(〈0;#foo〉) 115 } 116 } 117 Val: (〈0;#Spec〉 & { 118 _vars: { 119 something: "var-string" 120 } 121 }) 122 }