コード例 #1
0
        private void AddInstanceExpr(ITypeReference type, IExpression expr)
        {
            Contract.Requires(type != null);
            Contract.Requires(expr != null);
            Contract.Ensures(InstanceExpressions.ContainsKey(type));
            Contract.Ensures(InstanceExpressions[type].Contains(expr));
            Contract.Ensures(InstanceExpressionsReferredTypes.ContainsKey(expr));
            Contract.Ensures(InstanceExpressionsReferredTypes[expr] == type);

            if (!InstanceExpressions.ContainsKey(type))
            {
                InstanceExpressions.Add(type, new HashSet <IExpression>());
            }
            InstanceExpressions[type].Add(expr);

            if (!InstanceExpressionsReferredTypes.ContainsKey(expr))
            {
                InstanceExpressionsReferredTypes.Add(expr, type);
            }
            else
            {
                Debug.Assert(InstanceExpressionsReferredTypes[expr] == type);
            }
        }