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  }