terraform/internal/addrs
Martin Atkins 5a6d11e375 addrs: Factor out MoveEndpointInModule module prefix matching
All of our MoveDestination methods have the common problem of deciding
whether the receiver is even potentially in the scope of a particular
MoveEndpointInModule, which requires that the receiver belong to an
instance of the module where the move statement was found.

Previously we had this logic inline in all three cases, but now we'll
factor it out into a shared helper function.

At first it seemed like there ought to be more factoring possible for
the AbsResource vs. AbsResourceInstance implementations, since textually
they look very similar, but in practice they only look similar because
those two types have a lot of method names in common, but the Go compiler
sees them as completely distinct and thus we must write the same logic
out twice. I did try some further refactoring to address that but it
made the resulting code significantly more complicated and, by my
judgement, harder to follow. Consequently I decided that a little
duplication was okay and warranted here because this logic is already
quite fiddly to read through and isn't likely to change significantly once
released (due to backward-compatibility promises).
2021-07-28 13:33:26 -07:00
..
count_attr.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
doc.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
for_each_attr.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
input_variable.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
instance_key.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
local_value.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
module.go addrs: AbsMoveable, ConfigMoveable, and MoveableEndpoint 2021-07-01 08:28:02 -07:00
module_call.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
module_instance.go addrs: ModuleInstance and AbsResourceInstance are UniqueKeyers 2021-07-14 17:37:48 -07:00
module_instance_test.go states: new `Move` funcs for Resource, ResourceInstance, and ModuleInstances (#29068) 2021-07-13 16:10:46 -04:00
module_package.go addrs: ModuleRegistryPackage for representing module registry packages 2021-06-03 08:50:34 -07:00
module_source.go addrs: ModuleRegistryPackage for representing module registry packages 2021-06-03 08:50:34 -07:00
module_source_test.go addrs: ModuleRegistryPackage for representing module registry packages 2021-06-03 08:50:34 -07:00
module_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
move_endpoint.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
move_endpoint_kind.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
move_endpoint_module.go addrs: Factor out MoveEndpointInModule module prefix matching 2021-07-28 13:33:26 -07:00
move_endpoint_module_test.go addrs: MoveDestination for AbsResourceInstance-based move endpoints 2021-07-28 13:33:26 -07:00
move_endpoint_test.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
moveable.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
moveendpointkind_string.go addrs: MoveEndpointInModule 2021-07-14 17:37:48 -07:00
output_value.go addrs: Rename AbsModuleCallOutput to ModuleCallInstanceOutput 2021-07-01 08:28:02 -07:00
output_value_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
parse_ref.go addrs: Rename AbsModuleCallOutput to ModuleCallInstanceOutput 2021-07-01 08:28:02 -07:00
parse_ref_test.go addrs: Rename AbsModuleCallOutput to ModuleCallInstanceOutput 2021-07-01 08:28:02 -07:00
parse_target.go addrs: AbsMoveable, ConfigMoveable, and MoveableEndpoint 2021-07-01 08:28:02 -07:00
parse_target_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
path_attr.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
provider.go addrs: Rename DefaultRegistryHost to DefaultProviderRegistryHost 2021-06-03 08:50:34 -07:00
provider_config.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
provider_config_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
provider_test.go addrs: Rename DefaultRegistryHost to DefaultProviderRegistryHost 2021-06-03 08:50:34 -07:00
referenceable.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
resource.go addrs: ModuleInstance and AbsResourceInstance are UniqueKeyers 2021-07-14 17:37:48 -07:00
resource_phase.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
resource_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
resourcemode_string.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
self.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
set.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
target_test.go Move addrs/ to internal/addrs/ 2021-05-17 14:09:07 -07:00
targetable.go configs: add decodeMovedBlock behind a locked gate. (#28973) 2021-06-21 10:53:16 -04:00
terraform_attr.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
unique_key.go addrs: UniqueKey and UniqueKeyer 2021-07-14 17:37:48 -07:00
unique_key_test.go addrs: ModuleInstance and AbsResourceInstance are UniqueKeyers 2021-07-14 17:37:48 -07:00