in src/Analyzer.TemplateProcessor/ArmTemplateProcessor.cs [466:487]
private void MapTopLevelResources(Template template, Dictionary<string, (string, int)> copyNameMap)
{
// Set OriginalName back on resources that were copied
// and map them to their original resource
for (int i = 0; i < template.Resources.Length; i++)
{
var resource = template.Resources[i];
if (resource.Copy != null && copyNameMap.TryGetValue(resource.Copy.Name.Value, out (string, int) originalValues))
{
// Copied resource. Update OriginalName and
// add mapping to original resource
resource.OriginalName = originalValues.Item1;
resource.Path = $"resources[{originalValues.Item2}]";
AddResourceMapping($"resources[{i}]", resource.Path);
continue;
}
AddResourceMapping($"resources[{i}]", resource.Path);
}
}