using MonoFN.Cecil; using MonoFN.Cecil.Cil; using System; using System.Collections.Generic; using System.IO; using System.Linq; using Unity.CompilationPipeline.Common.Diagnostics; namespace FishNet.CodeGenerating.Helping { internal static class Diagnostics { internal static void AddError(this List diagnostics, string message) { diagnostics.AddMessage(DiagnosticType.Error, (SequencePoint)null, message); } internal static void AddWarning(this List diagnostics, string message) { diagnostics.AddMessage(DiagnosticType.Warning, (SequencePoint)null, message); } internal static void AddError(this List diagnostics, MethodDefinition methodDef, string message) { diagnostics.AddMessage(DiagnosticType.Error, methodDef.DebugInformation.SequencePoints.FirstOrDefault(), message); } internal static void AddMessage(this List diagnostics, DiagnosticType diagnosticType, SequencePoint sequencePoint, string message) { diagnostics.Add(new DiagnosticMessage { DiagnosticType = diagnosticType, File = sequencePoint?.Document.Url.Replace($"{Environment.CurrentDirectory}{Path.DirectorySeparatorChar}", ""), Line = sequencePoint?.StartLine ?? 0, Column = sequencePoint?.StartColumn ?? 0, MessageData = $" - {message}" }); } } }