Skip to content
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 1 commit into from Oct 18, 2023

Conversation

jbardin
Copy link
Member

@jbardin jbardin commented Oct 17, 2023

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.

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.
@jbardin jbardin merged commit 341ffa4 into main Oct 18, 2023
7 checks passed
mraerino pushed a commit to ffddorf/terraform-backend that referenced this pull request 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
([#&#8203;668](https://togithub.com/hashicorp/hcl/pull/668))

##### Internal

- Standardize on only two value dumping/diffing libraries
([#&#8203;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
([#&#8203;639](https://togithub.com/hashicorp/hcl/pull/639))

##### Bugs Fixed

- ext/dynblock: if `iterator` is invalid return this error instead of
consequential errors
([#&#8203;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
[@&#8203;jbardin](https://togithub.com/jbardin) in
[hashicorp/hcl#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.
([#&#8203;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.
([#&#8203;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".
([#&#8203;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.
([#&#8203;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.
([#&#8203;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.
([#&#8203;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.
([#&#8203;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.
([#&#8203;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
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants