From c6e6d85de0df495fd37e524e8e29744e789cd4eb Mon Sep 17 00:00:00 2001 From: cartermp Date: Mon, 18 Dec 2017 16:20:35 -0800 Subject: [PATCH 1/2] Remove error logger pushing code --- src/fsharp/service/service.fs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/fsharp/service/service.fs b/src/fsharp/service/service.fs index 80b55834f02..e5ef55e03f7 100644 --- a/src/fsharp/service/service.fs +++ b/src/fsharp/service/service.fs @@ -1554,8 +1554,6 @@ module internal Parser = let parseFile(source, fileName, options: FSharpParsingOptions, userOpName: string) = Trace.TraceInformation("FCS: {0}.{1} ({2})", userOpName, "parseFile", fileName) let errHandler = new ErrorHandler(true, fileName, options.ErrorSeverityOptions, source) - use unwindEL = PushErrorLoggerPhaseUntilUnwind (fun _oldLogger -> errHandler.ErrorLogger) - use unwindBP = PushThreadBuildPhaseUntilUnwind BuildPhase.Parse let parseResult = Lexhelp.usingLexbufForParsing(UnicodeLexing.StringAsLexbuf(addNewLine source), fileName) (fun lexbuf -> From 5cdc5091c126bca2c7c980b4fce103f8256f8003 Mon Sep 17 00:00:00 2001 From: Don Syme Date: Fri, 12 Jan 2018 18:21:55 +0000 Subject: [PATCH 2/2] Update service.fs --- src/fsharp/service/service.fs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/fsharp/service/service.fs b/src/fsharp/service/service.fs index e5ef55e03f7..34e6bc675f7 100644 --- a/src/fsharp/service/service.fs +++ b/src/fsharp/service/service.fs @@ -1521,6 +1521,12 @@ module internal Parser = let matchBraces(source, fileName, options: FSharpParsingOptions, userOpName: string) = Trace.TraceInformation("FCS: {0}.{1} ({2})", userOpName, "matchBraces", fileName) + + // Make sure there is an ErrorLogger installed whenever we do stuff that might record errors, even if we ultimately ignore the errors + let delayedLogger = CapturingErrorLogger("matchBraces") + use _unwindEL = PushErrorLoggerPhaseUntilUnwind (fun _ -> delayedLogger) + use _unwindBP = PushThreadBuildPhaseUntilUnwind BuildPhase.Parse + let matchingBraces = new ResizeArray<_>() Lexhelp.usingLexbufForParsing(UnicodeLexing.StringAsLexbuf(addNewLine source), fileName) (fun lexbuf -> let errHandler = ErrorHandler(false, fileName, options.ErrorSeverityOptions, source) @@ -1554,6 +1560,8 @@ module internal Parser = let parseFile(source, fileName, options: FSharpParsingOptions, userOpName: string) = Trace.TraceInformation("FCS: {0}.{1} ({2})", userOpName, "parseFile", fileName) let errHandler = new ErrorHandler(true, fileName, options.ErrorSeverityOptions, source) + use unwindEL = PushErrorLoggerPhaseUntilUnwind (fun _oldLogger -> errHandler.ErrorLogger) + use unwindBP = PushThreadBuildPhaseUntilUnwind BuildPhase.Parse let parseResult = Lexhelp.usingLexbufForParsing(UnicodeLexing.StringAsLexbuf(addNewLine source), fileName) (fun lexbuf ->