cue: rename RequireConcrete to Concrete

This is more consistent and also allows it to be used
for Syntax to select less evaluation.

Change-Id: I0103c7edd3d523c33df0d0575299b02e2d38adfe
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/1922
Reviewed-by: Marcel van Lohuizen <mpvl@google.com>
diff --git a/cmd/cue/cmd/eval.go b/cmd/cue/cmd/eval.go
index 4f6d9f6..99bf30b 100644
--- a/cmd/cue/cmd/eval.go
+++ b/cmd/cue/cmd/eval.go
@@ -68,7 +68,7 @@
 				cue.Optional(*all || *optional),
 			}
 			if *compile {
-				syn = append(syn, cue.RequireConcrete())
+				syn = append(syn, cue.Concrete(true))
 			}
 			if *hidden || *all {
 				syn = append(syn, cue.Hidden(true))
@@ -80,7 +80,7 @@
 			if exprs == nil {
 				v := inst.Value()
 				if *compile {
-					err := v.Validate(cue.RequireConcrete())
+					err := v.Validate(cue.Concrete(true))
 					exitIfErr(cmd, inst, err, false)
 					continue
 				}
diff --git a/cmd/cue/cmd/vet.go b/cmd/cue/cmd/vet.go
index c2799f3..cfceecc 100644
--- a/cmd/cue/cmd/vet.go
+++ b/cmd/cue/cmd/vet.go
@@ -59,7 +59,7 @@
 		opt := []cue.Option{
 			cue.Attributes(true),
 			cue.Optional(true),
-			cue.RequireConcrete(),
+			cue.Concrete(true),
 			cue.Hidden(true),
 		}
 		err := inst.Value().Validate(opt...)
diff --git a/cue/types.go b/cue/types.go
index 3bf6637..11be127 100644
--- a/cue/types.go
+++ b/cue/types.go
@@ -1006,15 +1006,19 @@
 
 // TODO: could also be used for subsumption.
 
-// RequireConcrete ensures that all values are concrete.
+// Concrete ensures that all values are concrete.
 //
 // For Validate this means it returns an error if this is not the case.
 // In other cases a non-concrete value will be replaced with an error.
-func RequireConcrete() Option {
+func Concrete(concrete bool) Option {
 	return func(p *options) {
-		p.concrete = true
-		if !p.hasHidden {
-			p.omitHidden = true
+		if concrete {
+			p.concrete = true
+			if !p.hasHidden {
+				p.omitHidden = true
+			}
+		} else {
+			p.raw = true
 		}
 	}
 }