static string CanonicalFormat(string methodName, WarningKind kind, ProofOutcome outcome, string message, int primaryILOffset, int methodILOffset, BaseLiningOptions baselineStrategy)
            {
                switch (baselineStrategy)
                {
                case BaseLiningOptions.ilBased:
                    return(String.Format("{0}:{1} PrimaryIL={2} MethodIL={3}", methodName, message, primaryILOffset, methodILOffset));

                case BaseLiningOptions.typeBased:
                    return(String.Format("{0}:{1}", methodName, kind.ToString()));

                case BaseLiningOptions.mixed:
                default:
                    switch (kind)
                    {
                    case WarningKind.Invariant:
                    case WarningKind.Assert:
                    case WarningKind.Requires:
                    case WarningKind.Ensures:
                        return(String.Format("{0} PrimaryIL={1}", message, primaryILOffset));

                    default:
                        return(message);
                    }
                }
            }
        private void EmitOutcomeToBaseLine(WarningKind kind, ProofOutcome outcome, APC pc, string message)
        {
            int primaryILOffset, methodILOffset;

            GetILOffsets(pc, this.currentMethod, out primaryILOffset, out methodILOffset);
            xmlWriter.WriteStartElement("Outcome");
            xmlWriter.WriteAttributeString("Kind", kind.ToString());
            xmlWriter.WriteAttributeString("Outcome", outcome.ToString());
            xmlWriter.WriteAttributeString("Message", message);
            xmlWriter.WriteAttributeString("PrimaryILOffset", primaryILOffset.ToString("x"));
            xmlWriter.WriteAttributeString("MethodILOffset", methodILOffset.ToString("x"));
            xmlWriter.WriteEndElement();
        }