コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }