Example #1
0
File: DDG.cs Project: pdiemi/PTVS
        public override bool Walk(AssertStatement node)
        {
            TryPushIsInstanceScope(node, node.Test);

            _eval.EvaluateMaybeNull(node.Test);
            _eval.EvaluateMaybeNull(node.Message);
            return(false);
        }
        internal static void WalkComprehension(ExpressionEvaluator ee, Comprehension comp, int start = 1)
        {
            foreach (var compFor in comp.Iterators.Skip(start).OfType <ComprehensionFor>())
            {
                var listTypes = ee.Evaluate(compFor.List);
                ee.AssignTo(comp, compFor.Left, listTypes.GetEnumeratorTypes(comp, ee._unit));
            }

            foreach (var compIf in comp.Iterators.OfType <ComprehensionIf>())
            {
                ee.EvaluateMaybeNull(compIf.Test);
            }
        }
        private static IAnalysisSet EvaluateDictionary(ExpressionEvaluator ee, Node node)
        {
            var          n      = (DictionaryExpression)node;
            IAnalysisSet result = ee.Scope.GetOrMakeNodeValue(node, NodeValueKind.DictLiteral, _ => {
                var dictInfo = new DictionaryInfo(ee._unit.ProjectEntry, node);
                result       = dictInfo.SelfSet;

                var keys   = new HashSet <AnalysisValue>();
                var values = new HashSet <AnalysisValue>();
                foreach (var x in n.Items)
                {
                    dictInfo.SetIndex(
                        node,
                        ee._unit,
                        ee.EvaluateMaybeNull(x.SliceStart) ?? AnalysisSet.Empty,
                        ee.EvaluateMaybeNull(x.SliceStop) ?? AnalysisSet.Empty
                        );
                }

                return(result);
            });

            return(result);
        }