protected override IEnumerable <IHighlighting> DoRun(IInvocationExpression invocationExpression, ContractRequires contractAssertion, MemberWithAccess preconditionContainer) { var preconditionException = contractAssertion.GenericArgumentDeclaredType .With(x => x.Resolve()) .With(x => x.DeclaredElement as IClass); if (preconditionException != null) { if (ExceptionIsLessVisible(preconditionContainer, preconditionException)) { yield return (new RequiresExceptionInconsistentVisibiityHighlighting(invocationExpression, preconditionException, preconditionContainer)); } if (DoesntHaveAppropriateConstructor(preconditionException)) { yield return(new RequiresExceptionValidityHighlighting(invocationExpression, preconditionException, preconditionContainer)); } } if (!MessageIsAppropriateForContractRequires(contractAssertion.Message)) { yield return(new InvalidRequiresMessageHighlighting(invocationExpression, contractAssertion.Message)); } }
protected override IEnumerable <IHighlighting> DoRun(IInvocationExpression invocationExpression, ContractRequires contractAssertion, MemberWithAccess preconditionContainer) { Contract.Requires(invocationExpression != null); Contract.Requires(contractAssertion != null); Contract.Requires(preconditionContainer != null); Contract.Ensures(Contract.Result <IEnumerable <IHighlighting> >() != null); throw new System.NotImplementedException(); }
protected abstract IEnumerable <IHighlighting> DoRun(IInvocationExpression invocationExpression, ContractRequires contractAssertion, MemberWithAccess preconditionContainer);