@@ -914,7 +914,7 @@ type FSharpErrorSeverity =
914914 | Warning
915915 | Error
916916
917- type FSharpErrorInfo ( fileName , s : pos , e : pos , severity : FSharpErrorSeverity , message : string , subcategory : string ) =
917+ type FSharpErrorInfo ( fileName , s : pos , e : pos , severity : FSharpErrorSeverity , message : string , subcategory : string , errorNum : int ) =
918918 member __.StartLine = Line.toZ s.Line
919919 member __.StartLineAlternate = s.Line
920920 member __.EndLine = Line.toZ e.Line
@@ -925,18 +925,20 @@ type FSharpErrorInfo(fileName, s:pos, e:pos, severity: FSharpErrorSeverity, mess
925925 member __.Message = message
926926 member __.Subcategory = subcategory
927927 member __.FileName = fileName
928- member __.WithStart ( newStart ) = FSharpErrorInfo( fileName, newStart, e, severity, message, subcategory)
929- member __.WithEnd ( newEnd ) = FSharpErrorInfo( fileName, s, newEnd, severity, message, subcategory)
928+ member __.ErrorNumber = errorNum
929+ member __.WithStart ( newStart ) = FSharpErrorInfo( fileName, newStart, e, severity, message, subcategory, errorNum)
930+ member __.WithEnd ( newEnd ) = FSharpErrorInfo( fileName, s, newEnd, severity, message, subcategory, errorNum)
930931 override __.ToString ()= sprintf " %s (%d ,%d )-(%d ,%d ) %s %s %s " fileName ( int s.Line) ( s.Column + 1 ) ( int e.Line) ( e.Column + 1 ) subcategory ( if severity= FSharpErrorSeverity.Warning then " warning" else " error" ) message
931932
932- /// Decompose a warning or error into parts: position, severity, message
933+ /// Decompose a warning or error into parts: position, severity, message, error number
933934 static member (* internal*) CreateFromException ( exn , warn , trim : bool , fallbackRange : range ) =
934935 let m = match GetRangeOfError exn with Some m -> m | None -> fallbackRange
935936 let e = if trim then m.Start else m.End
936937 let msg = bufs ( fun buf -> OutputPhasedError buf exn false )
937- FSharpErrorInfo( m.FileName, m.Start, e, ( if warn then FSharpErrorSeverity.Warning else FSharpErrorSeverity.Error), msg, exn.Subcategory())
938+ let errorNum = GetErrorNumber exn
939+ FSharpErrorInfo( m.FileName, m.Start, e, ( if warn then FSharpErrorSeverity.Warning else FSharpErrorSeverity.Error), msg, exn.Subcategory(), errorNum)
938940
939- /// Decompose a warning or error into parts: position, severity, message
941+ /// Decompose a warning or error into parts: position, severity, message, error number
940942 static member internal CreateFromExceptionAndAdjustEof ( exn , warn , trim : bool , fallbackRange : range , ( linesCount : int , lastLength : int )) =
941943 let r = FSharpErrorInfo.CreateFromException( exn, warn, trim, fallbackRange)
942944
0 commit comments