refactoring: Move nested modules #30233
Merged
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 applying module
moved
statements by iterating through modules in state, we previously required an exact match from themoved
statement'sfrom
field and the module address. This permitted moving resources directly inside a module, but did not recur into module calls within those moved modules.This commit moves that exact match requirement so that it only applies to
moved
statements targeting resources. In turn this allows nested modules to be moved.As of this commit, we are relying on the logic in
ModuleInstance.MoveDestination()
to control whether or not a given module instance is relevant to a moved statement. This method will return afalse
match result if the move statement doesn't apply:terraform/internal/addrs/move_endpoint_module.go
Lines 461 to 468 in cd72771
Fixes #30197