Replaces all ReferenceTargets pointing at instances with InstanceTargets.
Holds the mapping from original module to the new, duplicated modules The original module target is unaffected by renaming
Holds the mapping from original module to the new, duplicated modules The original module target is unaffected by renaming
Instance target of what the original module now points to
Original module
For a set of non-local targets, modify the instance/module hierarchy of the circuit such that the paths in each non-local target can be removed
For a set of non-local targets, modify the instance/module hierarchy of the circuit such that the paths in each non-local target can be removed
In other words, if targeting a specific instance of a module, duplicate that module with a unique name and instantiate the new module instead.
Consumes ResolvePaths
E.g. for non-local target A/b:B/c:C/d, rename the following A/b:B/c:C/d -> C_/d A/b:B/c:C -> B_/c:C_ A/b:B -> A/b:B_ B/x -> (B/x, B_/x) // where x is any reference in B C/x -> (C/x, C_/x) // where x is any reference in C
Group of targets that should become local targets
Replaces all ReferenceTargets pointing at instances with InstanceTargets.
This exists because of Named where a ComponentName is the only way to refer to an instance, but this is resolved incorrectly to a ReferenceTarget.