@@ -471,27 +471,27 @@ let ParseInput
471471type Tokenizer = unit -> Parser.token
472472
473473// Show all tokens in the stream, for testing purposes
474- let ShowAllTokensAndExit ( shortFilename , tokenizer : Tokenizer , lexbuf : LexBuffer < char >) =
474+ let ShowAllTokensAndExit ( shortFilename , tokenizer : Tokenizer , lexbuf : LexBuffer < char >, exiter : Exiter ) =
475475 while true do
476476 printf " tokenize - getting one token from %s \n " shortFilename
477477 let t = tokenizer ()
478478 printf " tokenize - got %s @ %a \n " ( Parser.token_ to_ string t) outputRange lexbuf.LexemeRange
479479
480480 match t with
481- | Parser.EOF _ -> exit 0
481+ | Parser.EOF _ -> exiter.Exit 0
482482 | _ -> ()
483483
484484 if lexbuf.IsPastEndOfStream then
485485 printf " !!! at end of stream\n "
486486
487487// Test one of the parser entry points, just for testing purposes
488- let TestInteractionParserAndExit ( tokenizer : Tokenizer , lexbuf : LexBuffer < char >) =
488+ let TestInteractionParserAndExit ( tokenizer : Tokenizer , lexbuf : LexBuffer < char >, exiter : Exiter ) =
489489 while true do
490490 match ( Parser.interaction ( fun _ -> tokenizer ()) lexbuf) with
491491 | ParsedScriptInteraction.Definitions ( l, m) -> printfn " Parsed OK, got %d defs @ %a " l.Length outputRange m
492492 | ParsedScriptInteraction.HashDirective (_, m) -> printfn " Parsed OK, got hash @ %a " outputRange m
493493
494- exit 0
494+ exiter.Exit 0
495495
496496// Report the statistics for testing purposes
497497let ReportParsingStatistics res =
@@ -606,11 +606,11 @@ let ParseOneInputLexbuf (tcConfig: TcConfig, lexResourceManager, lexbuf, fileNam
606606
607607 // If '--tokenize' then show the tokens now and exit
608608 if tokenizeOnly then
609- ShowAllTokensAndExit( shortFilename, tokenizer, lexbuf)
609+ ShowAllTokensAndExit( shortFilename, tokenizer, lexbuf, tcConfig.exiter )
610610
611611 // Test hook for one of the parser entry points
612612 if tcConfig.testInteractionParser then
613- TestInteractionParserAndExit( tokenizer, lexbuf)
613+ TestInteractionParserAndExit( tokenizer, lexbuf, tcConfig.exiter )
614614
615615 // Parse the input
616616 let res =
@@ -741,7 +741,6 @@ let ParseInputFiles
741741 lexResourceManager ,
742742 sourceFiles ,
743743 diagnosticsLogger : DiagnosticsLogger ,
744- exiter : Exiter ,
745744 createDiagnosticsLogger : Exiter -> CapturingDiagnosticsLogger ,
746745 retryLocked
747746 ) =
@@ -764,7 +763,7 @@ let ParseInputFiles
764763 sourceFiles
765764 |> Array.map ( fun ( fileName , _ ) ->
766765 checkInputFile tcConfig fileName
767- createDiagnosticsLogger ( delayedExiter) )
766+ createDiagnosticsLogger delayedExiter)
768767
769768 let results =
770769 try
@@ -790,7 +789,7 @@ let ParseInputFiles
790789 delayedDiagnosticsLoggers
791790 |> Array.iter ( fun delayedDiagnosticsLogger -> delayedDiagnosticsLogger.CommitDelayedDiagnostics diagnosticsLogger)
792791 with StopProcessing ->
793- exiter.Exit exitCode
792+ tcConfig. exiter.Exit exitCode
794793
795794 results |> List.ofArray
796795 else
@@ -806,7 +805,7 @@ let ParseInputFiles
806805
807806 with e ->
808807 errorRecoveryNoRange e
809- exiter.Exit 1
808+ tcConfig. exiter.Exit 1
810809
811810let ProcessMetaCommandsFromInput
812811 ( nowarnF : 'state -> range * string -> 'state ,
0 commit comments