コード例 #1
0
 private void extendCallSink(ExtensionSinkPoint point, FlowOutputSet inSet)
 {
     inSet.StartTransaction();
     inSet.Extend(point.OwningExtension.Owner.OutSet);
     //Services.FlowResolver.CallDispatchMerge(_inSet, OwningExtension.Branches);
     inSet.CommitTransaction();
 }
コード例 #2
0
        public override void VisitExtensionSink(ExtensionSinkPoint p)
        {
            var ends = p.OwningExtension.Branches.Select(c => c.Graph.End.OutSet).ToArray();

            OutputSet.MergeWithCallLevel(p.OwningExtension.Owner, ends);

            p.ResolveReturnValue();
        }
コード例 #3
0
        internal FlowExtension(ProgramPointBase owner)
        {
            Owner = owner;

            if (Owner is ExtensionSinkPoint)
            {
                //Because of avoiding recursion - extension sink is also sink for self
                Sink = owner as ExtensionSinkPoint;
            }
            else
            {
                Sink = new ExtensionSinkPoint(this);
            }
        }