Module Output Deprecation through structural analysis #37881
+826
−2
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.
This is the younger sibling of #37795 where instead of using deprecation marks and therefore working on values we reason about the structure (so looking at all references written in the config instead of only the ones actually used in the config).
I reconstructed the issue @dbanck and I ran into a year ago:
module.mod[*].oldis failing us. We need at leastmodule.modas a reference and[*].oldas the remainder to piece it together as a module call output.During
langrefs.ReferencesIn*we callexpr.Variables()(expr beinghcl.Expression) but HCL seems to stop the parsing aftermodule.modwhich means we need to change HCL to include the remainder of the reference so we can continue.Fixes #
Target Release
1.15.x
Rollback Plan
Changes to Security Controls
Are there any changes to security controls (access controls, encryption, logging) in this pull request? If so, explain.
CHANGELOG entry