-
Notifications
You must be signed in to change notification settings - Fork 595
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hcldec must use WithoutOptionalAttributesDeep #635
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
When hcldec needs to return a synthetic value, it must use WithoutOptionalAttributesDeep to ensure the correct type for Null or Unknown values. Optional attributes are normally removed from the value type when decoding, but since hcldec is dealing with the decoder spec directly, the optional attr types are still going to be present in these cases.
apparentlymart
approved these changes
Oct 17, 2023
1 task
mraerino
referenced
this pull request
in ffddorf/terraform-backend
Apr 28, 2024
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [github.com/hashicorp/hcl/v2](https://togithub.com/hashicorp/hcl) | `v2.16.2` -> `v2.20.1` | [![age](https://developer.mend.io/api/mc/badges/age/go/github.com%2fhashicorp%2fhcl%2fv2/v2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/go/github.com%2fhashicorp%2fhcl%2fv2/v2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/go/github.com%2fhashicorp%2fhcl%2fv2/v2.16.2/v2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/go/github.com%2fhashicorp%2fhcl%2fv2/v2.16.2/v2.20.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>hashicorp/hcl (github.com/hashicorp/hcl/v2)</summary> ### [`v2.20.1`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2201-March-26-2024) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.20.0...v2.20.1) ##### Bugs Fixed - Return `ExprSyntaxError` when an invalid namespaced function is encountered during parsing ([#​668](https://togithub.com/hashicorp/hcl/pull/668)) ##### Internal - Standardize on only two value dumping/diffing libraries ([#​669](https://togithub.com/hashicorp/hcl/pull/669)) ### [`v2.20.0`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2200-February-29-2024) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.19.1...v2.20.0) ##### Enhancements - Support for namespaced functions ([#​639](https://togithub.com/hashicorp/hcl/pull/639)) ##### Bugs Fixed - ext/dynblock: if `iterator` is invalid return this error instead of consequential errors ([#​656](https://togithub.com/hashicorp/hcl/pull/656)) ### [`v2.19.1`](https://togithub.com/hashicorp/hcl/releases/tag/v2.19.1) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.19.0...v2.19.1) #### What's Changed - hcldec must use WithoutOptionalAttributesDeep by [@​jbardin](https://togithub.com/jbardin) in [https://github.com/hashicorp/hcl/pull/635](https://togithub.com/hashicorp/hcl/pull/635) **Full Changelog**: hashicorp/hcl@v2.19.0...v2.19.1 ### [`v2.19.0`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2190-October-16-2023) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.18.1...v2.19.0) ##### Enhancements - ext/dynblock: `dynblock.Expand` now supports an optional hook for calling applications to check and potentially veto (by returning error diagnostics) particular `for_each` values. The behavior is unchanged for callers that don't set the new option. ([#​634](https://togithub.com/hashicorp/hcl/pull/634)) ##### Bugs Fixed - hclsyntax: Further fixes for treatment of "marked" values in the conditional expression, and better tracking of refined values into the conditional expression results, building on the fixes from v2.18.1. ([#​633](https://togithub.com/hashicorp/hcl/pull/633)) ### [`v2.18.1`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2181-October-5-2023) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.18.0...v2.18.1) ##### Bugs Fixed - hclsyntax: Conditional expressions will no longer panic when one or both of their results are "marked", as is the case for situations like how HashiCorp Terraform tracks its concept of "sensitive values". ([#​630](https://togithub.com/hashicorp/hcl/pull/630)) ### [`v2.18.0`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2180-August-30-2023) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.17.1...v2.18.0) ##### Enhancements - HCL now uses the tables from Unicode 15 when performing string normalization and character segmentation. HCL was previously using the Unicode 13 tables. For calling applications where consistent Unicode support is important, consider also upgrading to Go 1.21 at the same time as adopting HCL v2.18.0 so that the standard library unicode tables (used for case folding, etc) will also be from Unicode 15. ### [`v2.17.1`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2171-August-30-2023) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.17.0...v2.17.1) ##### Enhancements - hclsyntax: When evaluating string templates that have a long known constant prefix, HCL will truncate the known prefix to avoid creating excessively-large refinements. String prefix refinements are intended primarily for relatively-short fixed prefixes, such as `https://` at the start of a URL known to use that scheme. ([#​617](https://togithub.com/hashicorp/hcl/pull/617)) - ext/tryfunc: The "try" and "can" functions now handle unknown values slightly more precisely, and so can return known values in more situations when given expressions referring to unknown symbols. ([#​622](https://togithub.com/hashicorp/hcl/pull/622)) ##### Bugs Fixed - ext/typeexpr: Will no longer try to refine unknown values of unknown type when dealing with a user-specified type constraint containing the `any` keyword, avoiding an incorrect panic at runtime. ([#​625](https://togithub.com/hashicorp/hcl/pull/625)) - ext/typeexpr: Now correctly handles attempts to declare the same object type attribute multiple times by returning an error. Previously this could potentially panic by creating an incoherent internal state. ([#​624](https://togithub.com/hashicorp/hcl/pull/624)) ### [`v2.17.0`](https://togithub.com/hashicorp/hcl/blob/HEAD/CHANGELOG.md#v2170-May-31-2023) [Compare Source](https://togithub.com/hashicorp/hcl/compare/v2.16.2...v2.17.0) ##### Enhancements - HCL now uses a newer version of the upstream `cty` library which has improved treatment of unknown values: it can now track additional optional information that reduces the range of an unknown value, which allows some operations against unknown values to return known or partially-known results. ([#​590](https://togithub.com/hashicorp/hcl/pull/590)) **Note:** This change effectively passes on [`cty`'s notion of backward compatibility](https://togithub.com/zclconf/go-cty/blob/main/COMPATIBILITY.md) whereby unknown values can become "more known" in later releases. In particular, if your caller is using `cty.Value.RawEquals` in its tests against the results of operations with unknown values then you may see those tests begin failing after upgrading, due to the values now being more "refined". If so, you should review the refinements with consideration to [the `cty` refinements docs](https://togithub.com/zclconf/go-cty/blob/7dcbae46a6f247e983efb1fa774d2bb68781a333/docs/refinements.md) and update your expected results to match only if the reported refinements seem correct for the given situation. The `RawEquals` method is intended only for making exact value comparisons in test cases, so main application code should not use it; use `Equals` instead for real logic, which will take refinements into account automatically. </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/ffddorf/terraform-backend). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When hcldec needs to return a synthetic value, it must use WithoutOptionalAttributesDeep to ensure the correct type for Null or Unknown values. Optional attributes are normally removed from the value type when decoding, but since hcldec is dealing with the decoder spec directly, the optional attr types are still going to be present in these cases.