public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp) { if (this.dependencies == null) { DependencyDisposition dd; var dependencies = new List <BuildObject>(); // This method's implementation is dependent upon transitiveDepsVerb being the only element of verbs. Trace.Assert(this.verbs.Length == 1 && this.verbs[0] is DafnyTransitiveDepsVerb); dependencies.AddRange(this.transitiveDepsVerb.getAvailableDeps(out dd)); dependencies.AddRange(DafnyExecutableDependencies.getDafnyExecutableDependencies()); if (dd != DependencyDisposition.Complete) { ddisp = dd; // Dependency resolution isn't complete yet and we don't want to cache the incomplete list. return(dependencies); } this.dependencies = dependencies; } Trace.Assert(this.dependencies != null); ddisp = DependencyDisposition.Complete; return(this.dependencies); }
public override IEnumerable <BuildObject> getDependencies(out DependencyDisposition ddisp) { TransitiveDepsVerb depsVerb = this.getTransitiveDepsVerb(); HashSet <BuildObject> result = depsVerb.getAvailableDeps(out ddisp); result.UnionWith(DafnyExecutableDependencies.getDafnyExecutableDependencies()); return(result); }