Convert non-string errors to string

This commit is contained in:
Stanisław Barzowski 2018-01-18 00:49:14 +01:00 committed by Dave Cunningham
parent d6623a98cb
commit eedf6760ad
5 changed files with 28 additions and 0 deletions

View File

@ -364,6 +364,12 @@ func (i *interpreter) evaluate(a ast.Node, tc tailCallStatus) (value, error) {
// error when evaluating error message // error when evaluating error message
return nil, err return nil, err
} }
if msgVal.getType() != stringType {
msgVal, err = builtinToString(e, &readyValue{msgVal})
if err != nil {
return nil, err
}
}
msg, err := e.getString(msgVal) msg, err := e.getString(msgVal)
if err != nil { if err != nil {
return nil, err return nil, err

10
testdata/error_function_fail.golden vendored Normal file
View File

@ -0,0 +1,10 @@
RUNTIME ERROR: Couldn't manifest function in JSON output.
-------------------------------------------------
testdata/error_function_fail:1:1-22 $
error (function(x) 42)
-------------------------------------------------
During evaluation

1
testdata/error_function_fail.jsonnet vendored Normal file
View File

@ -0,0 +1 @@
error (function(x) 42)

10
testdata/error_object.golden vendored Normal file
View File

@ -0,0 +1,10 @@
RUNTIME ERROR: {"blah": 42}
-------------------------------------------------
testdata/error_object:1:1-21 $
error { "blah": 42 }
-------------------------------------------------
During evaluation

1
testdata/error_object.jsonnet vendored Normal file
View File

@ -0,0 +1 @@
error { "blah": 42 }