コード例 #1
0
        private void AppendInvariant(ContractStateEnum invariantState, string methodCallReceiver, Type declaringType, Invariant invariant, StringBuilder code)
        {
            if (invariantState == ContractStateEnum.Ok)
            {
                code.Append(InvariantComment);
                var expression = ComputeInvariantExpression(invariant.Expression, invariant.Fields, methodCallReceiver, declaringType);
                code.Append(Assertion(expression));
            }

            if (invariantState == ContractStateEnum.Invalid)
            {
                code.Append(InvalidInvariantComment);
            }
        }
コード例 #2
0
        private void AppendStaticInvariant(Type declaringType, ContractStateEnum staticInvariantState, StaticInvariant staticInvariant, StringBuilder code)
        {
            if (staticInvariantState == ContractStateEnum.Ok)
            {
                code.Append(StaticInvariantComment);
                var expression = ComputeStaticInvariantExpression(staticInvariant.Expression, staticInvariant.Fields, declaringType);
                code.Append(Assertion(expression));
            }

            if (staticInvariantState == ContractStateEnum.Invalid)
            {
                code.Append(InvalidStaticInvariantComment);
            }
        }
コード例 #3
0
        private void AppendPostcondition(ContractStateEnum postconditionState, string methodCallResult, Postcondition postcondition, StringBuilder code)
        {
            if (postconditionState == ContractStateEnum.Ok)
            {
                code.Append(PostconditionComment);
                var expression = ComputePostconditionExpression(postcondition.Expression, methodCallResult);
                code.Append(Assertion(expression));
            }

            if (postconditionState == ContractStateEnum.Invalid)
            {
                code.Append(InvalidPostconditionComment);
            }
        }