public static void AddPostCondition <Local, Parameter, Method, Field, Property, Event, Type, Expression, Variable, Attribute, Assembly>( IExpressionContext <Local, Parameter, Method, Field, Type, Expression, Variable> context, System.Collections.Generic.List <string> postconditions, int rank, string symptom, IOutput output, IDecodeMetaData <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly> mdDecoder) where Type : IEquatable <Type> { var isProperty = mdDecoder.IsPropertyGetter(context.MethodContext.CurrentMethod) || mdDecoder.IsPropertySetter(context.MethodContext.CurrentMethod); if (!output.LogOptions.SuggestNonNullReturn && !output.LogOptions.SuggestEnsures(isProperty)) { return; } APC sourcePC = GetPCForMethodEntry(context); foreach (string post in postconditions) { output.Suggestion("postcondition", sourcePC, MakePostconditionString(post)); try { SuggestPostConditionViaPex <Local, Parameter, Method, Field, Property, Event, Type, Expression, Variable, Attribute, Assembly>(context, rank, symptom, output, mdDecoder, post); } catch { // guard against errors in ExtendedReflection version/VS integration } } }