private void EmitDependsOn(DeclaredSymbol declaredSymbol) { var dependencies = context.ResourceDependencies[declaredSymbol]; if (!dependencies.Any()) { return; } writer.WritePropertyName("dependsOn"); writer.WriteStartArray(); // need to put dependencies in a deterministic order to generate a deterministic template foreach (var dependency in dependencies.OrderBy(x => x.Name)) { switch (dependency) { case ResourceSymbol resourceDependency: emitter.EmitResourceIdReference(resourceDependency); break; case ModuleSymbol moduleDependency: emitter.EmitResourceIdReference(moduleDependency); break; default: throw new InvalidOperationException($"Found dependency '{dependency.Name}' of unexpected type {dependency.GetType()}"); } } writer.WriteEndArray(); }
private void EmitDependsOn(ResourceSymbol resourceSymbol) { var dependencies = context.ResourceDependencies[resourceSymbol]; if (!dependencies.Any()) { return; } writer.WritePropertyName("dependsOn"); writer.WriteStartArray(); // need to put dependencies in a deterministic order to generate a deterministic template foreach (var dependency in dependencies.OrderBy(x => x.Name)) { var typeReference = EmitHelpers.GetTypeReference(dependency); emitter.EmitResourceIdReference(dependency.DeclaringResource, typeReference); } writer.WriteEndArray(); }