Exemple #1
0
        public void FlowAnalysis(FlowAnalysisContext fc)
        {
            if (ArgType == AType.Out)
            {
                var vr = Expr as VariableReference;
                if (vr != null)
                {
                    if (vr.VariableInfo != null)
                    {
                        fc.SetVariableAssigned(vr.VariableInfo);
                    }

                    return;
                }

                var fe = Expr as FieldExpr;
                if (fe != null)
                {
                    fe.SetFieldAssigned(fc);
                    return;
                }

                return;
            }

            Expr.FlowAnalysis(fc);
        }
Exemple #2
0
 public override void FlowAnalysis(FlowAnalysisContext fc)
 {
     InstanceExpr.FlowAnalysis(fc);
     if (arguments != null)
     {
         arguments.FlowAnalysis(fc);
     }
 }
Exemple #3
0
        protected override bool DoFlowAnalysis(FlowAnalysisContext fc)
        {
            expr.FlowAnalysis(fc);

            RegisterResumePoint();

            return(false);
        }
Exemple #4
0
        public override void FlowAnalysis(FlowAnalysisContext fc)
        {
            source.FlowAnalysis(fc);

            if (target is ArrayAccess || target is IndexerExpr)
            {
                target.FlowAnalysis(fc);
                return;
            }

            var pe = target as PropertyExpr;

            if (pe != null && !pe.IsAutoPropertyAccess)
            {
                target.FlowAnalysis(fc);
            }
        }
Exemple #5
0
 public override void FlowAnalysis(FlowAnalysisContext fc)
 {
     source.FlowAnalysis(fc);
     foreach (var expr in targetExprs)
     {
         expr.FlowAnalysis(fc);
     }
 }
Exemple #6
0
        public override void FlowAnalysis(FlowAnalysisContext fc)
        {
            source.FlowAnalysis(fc);

            if (target is ArrayAccess || target is IndexerExpr || target is PropertyExpr)
            {
                target.FlowAnalysis(fc);
            }
        }
Exemple #7
0
        public override void FlowAnalysis(FlowAnalysisContext fc)
        {
            expr.FlowAnalysis(fc);

            stmt.RegisterResumePoint();
        }