internal static void _LinkDependenciesImpl(IPlan plan, TaskMap<ModuleName, ITarget> taskMap, Application instance, ITargetDescription instanceDescription, CancellationToken token) { foreach (var dependency in instanceDescription.Dependencies) { if (instance.IsLinkedTo(dependency)) continue; var dependencyDescription = plan.TargetDescriptions[dependency]; token.ThrowIfCancellationRequested(); var dependencyInstance = new Application(taskMap[dependency].Value.Result.Module); Application.Link(instance, dependencyInstance); _LinkDependenciesImpl(plan, taskMap, dependencyInstance, dependencyDescription, token); } }