/// <summary> /// Evaluates all named values and all reachable file modules via local import/export relation. /// </summary> protected internal async Task <bool> EvaluateAllTransitiveClosureAsync( ImmutableContextBase context, ModuleEvaluationMode mode, VisitedModuleTracker tracker) { var evaluateTasks = new List <Task <object> >(); EvaluateAllNamedValues(context, evaluateTasks); object[] results = await TaskUtilities.WithCancellationHandlingAsync( context.LoggingContext, Task.WhenAll(evaluateTasks), context.Logger.EvaluationCanceled, s_errorValueAsObjectArray, context.EvaluationScheduler.CancellationToken); return(results.All(result => !result.IsErrorValue())); }
/// <summary> /// Evaluates all. /// </summary> public Task <bool> EvaluateAllAsync(ImmutableContextBase context, VisitedModuleTracker moduleTracker, ModuleEvaluationMode mode = ModuleEvaluationMode.None) { if (mode == ModuleEvaluationMode.None) { moduleTracker.Track(this, context); return(EvaluateAllNamedValuesAsync(context)); } return(EvaluateAllTransitiveClosureAsync(context, mode, moduleTracker)); }