@@ -111,7 +111,8 @@ module CompilerAssert =
111111 Assert.IsEmpty( typeCheckResults.Errors, sprintf " Type Check errors: %A " typeCheckResults.Errors)
112112
113113
114- let TypeCheckSingleError ( source : string ) ( expectedErrorNumber : int ) ( expectedErrorRange : int * int * int * int ) ( expectedErrorMsg : string ) =
114+
115+ let TypeCheckWithErrors ( source : string ) expectedTypeErrors =
115116 lock gate <| fun () ->
116117 let parseResults , fileAnswer = checker.ParseAndCheckFileInProject( " test.fs" , 0 , SourceText.ofString source, defaultProjectOptions) |> Async.RunSynchronously
117118
@@ -125,15 +126,20 @@ module CompilerAssert =
125126 typeCheckResults.Errors
126127 |> Array.distinctBy ( fun e -> e.Severity, e.ErrorNumber, e.StartLineAlternate, e.StartColumn, e.EndLineAlternate, e.EndColumn, e.Message)
127128
128- Assert.AreEqual( 1 , errors.Length, sprintf " Expected one type check error: %A " typeCheckResults.Errors)
129- errors
130- |> Array.iter ( fun info ->
131- Assert.AreEqual( FSharpErrorSeverity.Error, info.Severity)
129+ Assert.AreEqual( Array.length expectedTypeErrors, errors.Length, sprintf " Type check errors: %A " typeCheckResults.Errors)
130+
131+ Array.zip errors expectedTypeErrors
132+ |> Array.iter ( fun ( info , expectedError ) ->
133+ let ( expectedServerity : FSharpErrorSeverity , expectedErrorNumber : int , expectedErrorRange : int * int * int * int , expectedErrorMsg : string ) = expectedError
134+ Assert.AreEqual( expectedServerity, info.Severity)
132135 Assert.AreEqual( expectedErrorNumber, info.ErrorNumber, " expectedErrorNumber" )
133136 Assert.AreEqual( expectedErrorRange, ( info.StartLineAlternate, info.StartColumn + 1 , info.EndLineAlternate, info.EndColumn + 1 ), " expectedErrorRange" )
134137 Assert.AreEqual( expectedErrorMsg, info.Message, " expectedErrorMsg" )
135138 )
136139
140+ let TypeCheckSingleError ( source : string ) ( expectedServerity : FSharpErrorSeverity ) ( expectedErrorNumber : int ) ( expectedErrorRange : int * int * int * int ) ( expectedErrorMsg : string ) =
141+ TypeCheckWithErrors ( source: string) [| expectedServerity, expectedErrorNumber, expectedErrorRange, expectedErrorMsg |]
142+
137143 let CompileExe ( source : string ) =
138144 compile true source ( fun ( errors , _ ) ->
139145 if errors.Length > 0 then
0 commit comments