# DO NOT EDIT; generated by go run testdata/gen.go
#
#name: detectIncompleteJSON
#evalFull
-- in.cue --
package foobar

import "encoding/json"

#Spec: {
	_vars: {something: string}
	data: {
		#foo: {
			use: _vars.something
		}
		baz:    json.Marshal(_vars.something)
		foobar: json.Marshal(#foo)
	}
}
Val: #Spec & {
	_vars: something: "var-string"
}
-- out/def --
package foobar

import "encoding/json"

#Spec: {
	_vars: {
		something: string
	}
	data: {
		#foo: {
			use: _vars.something
		}
		baz:    json.Marshal(_vars.something)
		foobar: json.Marshal(#foo)
	}
}
Val: #Spec & {
	_vars: {
		something: "var-string"
	}
}
-- out/export --
Val: {
	data: {
		baz:    "\"var-string\""
		foobar: "{\"use\":\"var-string\"}"
	}
}
-- out/yaml --
Val:
  data:
    baz: '"var-string"'
    foobar: '{"use":"var-string"}'
-- out/json --
{"Val":{"data":{"baz":"\"var-string\"","foobar":"{\"use\":\"var-string\"}"}}}
-- out/legacy-debug --
<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\"}"}}}
-- out/eval --
(struct){
  #Spec: (#struct){
    _vars: (#struct){
      something: (string){ string }
    }
    data: (#struct){
      #foo: (#struct){
        use: (string){ string }
      }
      baz: (_|_){
        // [incomplete] non-concrete argument 0
      }
      foobar: (_|_){
        // [incomplete] cannot convert incomplete value "string" to JSON
      }
    }
  }
  Val: (#struct){
    _vars: (#struct){
      something: (string){ "var-string" }
    }
    data: (#struct){
      #foo: (#struct){
        use: (string){ "var-string" }
      }
      baz: (string){ "\"var-string\"" }
      foobar: (string){ "{\"use\":\"var-string\"}" }
    }
  }
}
