pkg/tool/os: check error of value

Fatal errors were actually ignored before. The test
tests for this, but there was a bug where the tested
test itself was converted into something else.

The new evaluator fixes the error mode, causing the
tests in this package to fail without this fix.

Change-Id: I62d0fc32da54bbd26e990256d71b41490c8e04e8
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/6701
Reviewed-by: CUE cueckoo <cueckoo@gmail.com>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/pkg/tool/os/env.go b/pkg/tool/os/env.go
index df64b97..0d0a535 100644
--- a/pkg/tool/os/env.go
+++ b/pkg/tool/os/env.go
@@ -63,6 +63,10 @@
 		}
 		v := iter.Value()
 
+		if err := v.Err(); err != nil {
+			return nil, err
+		}
+
 		if err := validateEntry(name, v); err != nil {
 			return nil, err
 		}
@@ -117,7 +121,11 @@
 		if strings.HasPrefix(name, "$") {
 			continue
 		}
-		if err := validateEntry(name, iter.Value()); err != nil {
+		v := iter.Value()
+		if err := v.Err(); err != nil {
+			return nil, err
+		}
+		if err := validateEntry(name, v); err != nil {
 			return nil, err
 		}
 		if _, ok := update[name]; !ok {