diff options
author | appilon <apilon@hashicorp.com> | 2019-02-27 16:43:31 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-27 16:43:31 -0500 |
commit | 844b5a68d8af4791755b8f0ad293cc99f5959183 (patch) | |
tree | 255c250a5c9d4801c74092d33b7337d8c14438ff /vendor/github.com/zclconf/go-cty/cty/convert/conversion_dynamic.go | |
parent | 303b299eeb6b06e939e35905e4b34cb410dd9dc3 (diff) | |
parent | 15c0b25d011f37e7c20aeca9eaf461f78285b8d9 (diff) | |
download | terraform-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/convert/conversion_dynamic.go')
-rw-r--r-- | vendor/github.com/zclconf/go-cty/cty/convert/conversion_dynamic.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vendor/github.com/zclconf/go-cty/cty/convert/conversion_dynamic.go b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_dynamic.go new file mode 100644 index 0000000..4d19cf6 --- /dev/null +++ b/vendor/github.com/zclconf/go-cty/cty/convert/conversion_dynamic.go | |||
@@ -0,0 +1,33 @@ | |||
1 | package convert | ||
2 | |||
3 | import ( | ||
4 | "github.com/zclconf/go-cty/cty" | ||
5 | ) | ||
6 | |||
7 | // dynamicFixup deals with just-in-time conversions of values that were | ||
8 | // input-typed as cty.DynamicPseudoType during analysis, ensuring that | ||
9 | // we end up with the desired output type once the value is known, or | ||
10 | // failing with an error if that is not possible. | ||
11 | // | ||
12 | // This is in the spirit of the cty philosophy of optimistically assuming that | ||
13 | // DynamicPseudoType values will become the intended value eventually, and | ||
14 | // dealing with any inconsistencies during final evaluation. | ||
15 | func dynamicFixup(wantType cty.Type) conversion { | ||
16 | return func(in cty.Value, path cty.Path) (cty.Value, error) { | ||
17 | ret, err := Convert(in, wantType) | ||
18 | if err != nil { | ||
19 | // Re-wrap this error so that the returned path is relative | ||
20 | // to the caller's original value, rather than relative to our | ||
21 | // conversion value here. | ||
22 | return cty.NilVal, path.NewError(err) | ||
23 | } | ||
24 | return ret, nil | ||
25 | } | ||
26 | } | ||
27 | |||
28 | // dynamicPassthrough is an identity conversion that is used when the | ||
29 | // target type is DynamicPseudoType, indicating that the caller doesn't care | ||
30 | // which type is returned. | ||
31 | func dynamicPassthrough(in cty.Value, path cty.Path) (cty.Value, error) { | ||
32 | return in, nil | ||
33 | } | ||