aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/zclconf/go-cty/cty/function/error.go
diff options
context:
space:
mode:
authorappilon <apilon@hashicorp.com>2019-02-27 16:43:31 -0500
committerGitHub <noreply@github.com>2019-02-27 16:43:31 -0500
commit844b5a68d8af4791755b8f0ad293cc99f5959183 (patch)
tree255c250a5c9d4801c74092d33b7337d8c14438ff /vendor/github.com/zclconf/go-cty/cty/function/error.go
parent303b299eeb6b06e939e35905e4b34cb410dd9dc3 (diff)
parent15c0b25d011f37e7c20aeca9eaf461f78285b8d9 (diff)
downloadterraform-provider-statuscake-844b5a68d8af4791755b8f0ad293cc99f5959183.tar.gz
terraform-provider-statuscake-844b5a68d8af4791755b8f0ad293cc99f5959183.tar.zst
terraform-provider-statuscake-844b5a68d8af4791755b8f0ad293cc99f5959183.zip
Merge pull request #27 from terraform-providers/go-modules-2019-02-22
[MODULES] Switch to Go Modules
Diffstat (limited to 'vendor/github.com/zclconf/go-cty/cty/function/error.go')
-rw-r--r--vendor/github.com/zclconf/go-cty/cty/function/error.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/vendor/github.com/zclconf/go-cty/cty/function/error.go b/vendor/github.com/zclconf/go-cty/cty/function/error.go
new file mode 100644
index 0000000..2b56779
--- /dev/null
+++ b/vendor/github.com/zclconf/go-cty/cty/function/error.go
@@ -0,0 +1,50 @@
1package function
2
3import (
4 "fmt"
5 "runtime/debug"
6)
7
8// ArgError represents an error with one of the arguments in a call. The
9// attribute Index represents the zero-based index of the argument in question.
10//
11// Its error *may* be a cty.PathError, in which case the error actually
12// pertains to a nested value within the data structure passed as the argument.
13type ArgError struct {
14 error
15 Index int
16}
17
18func NewArgErrorf(i int, f string, args ...interface{}) error {
19 return ArgError{
20 error: fmt.Errorf(f, args...),
21 Index: i,
22 }
23}
24
25func NewArgError(i int, err error) error {
26 return ArgError{
27 error: err,
28 Index: i,
29 }
30}
31
32// PanicError indicates that a panic occurred while executing either a
33// function's type or implementation function. This is captured and wrapped
34// into a normal error so that callers (expected to be language runtimes)
35// are freed from having to deal with panics in buggy functions.
36type PanicError struct {
37 Value interface{}
38 Stack []byte
39}
40
41func errorForPanic(val interface{}) error {
42 return PanicError{
43 Value: val,
44 Stack: debug.Stack(),
45 }
46}
47
48func (e PanicError) Error() string {
49 return fmt.Sprintf("panic in function implementation: %s\n%s", e.Value, e.Stack)
50}