cmd/cue: use concrete mode for vet on data files

Closes #98

Change-Id: I50b14d235aed6568ff8a1a5d4ae286bead141ad5
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/3100
Reviewed-by: Marcel van Lohuizen <mpvl@google.com>
diff --git a/cmd/cue/cmd/testdata/vet/data.yaml b/cmd/cue/cmd/testdata/vet/data.yaml
index 06bc87d..1d53144 100644
--- a/cmd/cue/cmd/testdata/vet/data.yaml
+++ b/cmd/cue/cmd/testdata/vet/data.yaml
@@ -6,6 +6,10 @@
 ---
 translations:
   hello:
+    text: Hoi
+---
+translations:
+  hello:
     lang: no
     text: Hallo
 ---
diff --git a/cmd/cue/cmd/testdata/vet/vet_file.out b/cmd/cue/cmd/testdata/vet/vet_file.out
index 132f05c..8d8a23d 100644
--- a/cmd/cue/cmd/testdata/vet/vet_file.out
+++ b/cmd/cue/cmd/testdata/vet/vet_file.out
@@ -1,3 +1,5 @@
+translations.hello.lang: incomplete value (string):
+    ./testdata/vet/vet.cue:2:24
 translations.hello.lang: conflicting values false and string (mismatched types bool and string):
-    ./testdata/vet/data.yaml:9:11
+    ./testdata/vet/data.yaml:13:11
     ./testdata/vet/vet.cue:2:24
diff --git a/cmd/cue/cmd/vet.go b/cmd/cue/cmd/vet.go
index 5399551..5c9818c 100644
--- a/cmd/cue/cmd/vet.go
+++ b/cmd/cue/cmd/vet.go
@@ -179,7 +179,13 @@
 			body, err := r.CompileExpr(expr)
 			exitIfErr(cmd, inst, err, false)
 			v := body.Value().Unify(check)
-			exitIfErr(cmd, inst, v.Err(), false)
+			if err := v.Err(); err != nil {
+				exitIfErr(cmd, inst, err, false)
+			} else {
+				// Always concrete when checking against concrete files.
+				err = v.Validate(cue.Concrete(true))
+				exitIfErr(cmd, inst, err, false)
+			}
 		}
 	}
 }