diff --git a/azure-pipelines.yml b/azure-pipelines.yml
index d1ee7e1e3c4..9a7b19618fd 100644
--- a/azure-pipelines.yml
+++ b/azure-pipelines.yml
@@ -444,6 +444,8 @@ stages:
- checkout: self
clean: true
- script: ./eng/cibuild.sh --configuration $(_BuildConfig) --testcoreclr
+ env:
+ COMPlus_DefaultStackSize: 1000000
displayName: Build / Test
- task: PublishTestResults@2
displayName: Publish Test Results
diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs
index 806b516dccd..19d8f2cbaaa 100644
--- a/src/Compiler/Checking/CheckExpressions.fs
+++ b/src/Compiler/Checking/CheckExpressions.fs
@@ -6970,17 +6970,22 @@ and TcConstStringExpr cenv (overallTy: OverallTy) env m tpenv (s: string) litera
| _ -> false
let g = cenv.g
+
- if isFormat g overallTy.Commit then
- if literalType = LiteralArgumentType.StaticField then
- checkLanguageFeatureAndRecover g.langVersion LanguageFeature.NonInlineLiteralsAsPrintfFormat m
+ match isFormat g overallTy.Commit, literalType with
+ | true, LiteralArgumentType.StaticField ->
+ checkLanguageFeatureAndRecover g.langVersion LanguageFeature.NonInlineLiteralsAsPrintfFormat m
+ TcFormatStringExpr cenv overallTy env m tpenv s literalType
+ | true, LiteralArgumentType.Inline ->
TcFormatStringExpr cenv overallTy env m tpenv s literalType
- else
- if literalType = LiteralArgumentType.Inline && not (isObjTy g overallTy.Commit) then
- AddCxTypeEqualsType env.eContextInfo env.DisplayEnv cenv.css m overallTy.Commit g.string_ty
- mkString g m s, tpenv
+ | false, LiteralArgumentType.StaticField ->
+ Expr.Const (TcFieldInit m (ILFieldInit.String s), m, g.string_ty), tpenv
+
+ | false, LiteralArgumentType.Inline ->
+ TcPropagatingExprLeafThenConvert cenv overallTy g.string_ty env (* true *) m (fun () ->
+ mkString g m s, tpenv)
and TcFormatStringExpr cenv (overallTy: OverallTy) env m tpenv (fmtString: string) formatStringLiteralType =
let g = cenv.g
diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/LexicalFiltering/OffsideExceptions/OffsideExceptions.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/LexicalFiltering/OffsideExceptions/OffsideExceptions.fs
index f00e227c826..ffc44b00032 100644
--- a/tests/FSharp.Compiler.ComponentTests/Conformance/LexicalFiltering/OffsideExceptions/OffsideExceptions.fs
+++ b/tests/FSharp.Compiler.ComponentTests/Conformance/LexicalFiltering/OffsideExceptions/OffsideExceptions.fs
@@ -5,8 +5,10 @@ namespace FSharp.Compiler.ComponentTests.Conformance.LexicalFiltering.Basic
open Xunit
open FSharp.Test
open FSharp.Test.Compiler
+open FSharp.Test.Compiler.Assertions.StructuredResultsAsserts
module OffsideExceptions =
+
type FileAttribute(file) =
inherit DirectoryAttribute(__SOURCE_DIRECTORY__, Includes=[|file|])
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Enums.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Enums.fs
index 33217909d2a..98df4894328 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Enums.fs
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Enums.fs
@@ -4,6 +4,7 @@ namespace FSharp.Compiler.ComponentTests.EmittedIL
open Xunit
open FSharp.Test.Compiler
+open FSharp.Test.Compiler.Assertions.StructuredResultsAsserts
module Enums =
diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Literals.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Literals.fs
index 570f22d1377..c168d88fba4 100644
--- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Literals.fs
+++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Literals.fs
@@ -4,6 +4,7 @@ namespace FSharp.Compiler.ComponentTests.EmittedIL
open Xunit
open FSharp.Test.Compiler
+open FSharp.Test.Compiler.Assertions.StructuredResultsAsserts
module ``Literals`` =
diff --git a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/UnsupportedAttributes.fs b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/UnsupportedAttributes.fs
index fa981de2a14..be59b17509b 100644
--- a/tests/FSharp.Compiler.ComponentTests/ErrorMessages/UnsupportedAttributes.fs
+++ b/tests/FSharp.Compiler.ComponentTests/ErrorMessages/UnsupportedAttributes.fs
@@ -4,6 +4,7 @@ namespace FSharp.Compiler.ComponentTests.ErrorMessages
open Xunit
open FSharp.Test.Compiler
+open FSharp.Test.Compiler.Assertions.StructuredResultsAsserts
module ``Unsupported Attributes`` =
diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
index f6372bf61cf..d6bf558b6c1 100644
--- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
+++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj
@@ -227,6 +227,10 @@
+
+
+
+
diff --git a/tests/FSharp.Compiler.ComponentTests/Language/PrintfFormatTests.fs b/tests/FSharp.Compiler.ComponentTests/Language/PrintfFormatTests.fs
index be034de402a..065ca2070ce 100644
--- a/tests/FSharp.Compiler.ComponentTests/Language/PrintfFormatTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/Language/PrintfFormatTests.fs
@@ -4,6 +4,7 @@ module FSharp.Compiler.ComponentTests.Language.PrintfFormatTests
open Xunit
open FSharp.Test.Compiler
+open StructuredResultsAsserts
[]
let ``Constant defined in C# can be used as printf format``() =
@@ -32,7 +33,7 @@ module PrintfFormatTests
[]
let Format = "%d"
-if sprintf Format Format.Length <> "2" then
+if sprintf Format (Format.Length) <> "2" then
failwith "failed"
"""
|> withLangVersionPreview
diff --git a/tests/FSharp.Compiler.ComponentTests/Language/SequenceExpressionTests.fs b/tests/FSharp.Compiler.ComponentTests/Language/SequenceExpressionTests.fs
index 5542717a94a..9f87a5078eb 100644
--- a/tests/FSharp.Compiler.ComponentTests/Language/SequenceExpressionTests.fs
+++ b/tests/FSharp.Compiler.ComponentTests/Language/SequenceExpressionTests.fs
@@ -4,10 +4,10 @@ module FSharp.Compiler.ComponentTests.Language.SequenceExpressionTests
open Xunit
open FSharp.Test.Compiler
+open FSharp.Test.ScriptHelpers
-
-let fsiSession = getSessionForEval()
+let fsiSession = getSessionForEval [||] LangVersion.Preview
let runCode = evalInSharedSession fsiSession
diff --git a/tests/FSharp.Compiler.ComponentTests/Miscellaneous/FsharpSuiteMigrated.fs b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/FsharpSuiteMigrated.fs
new file mode 100644
index 00000000000..1b2c02d4b2b
--- /dev/null
+++ b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/FsharpSuiteMigrated.fs
@@ -0,0 +1,166 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace FSharp.Compiler.ComponentTests.Miscellaneous.FsharpSuiteMigrated
+
+open System
+open System.IO
+open Xunit
+open FSharp.Test
+open FSharp.Test.Compiler
+open FSharp.Test.ScriptHelpers
+
+
+
+module Configuration =
+ let supportedNames = set ["testlib.fsi";"testlib.fs";"test.mli";"test.ml";"test.fsi";"test.fs";"test2.fsi";"test2.fs";"test.fsx";"test2.fsx"]
+
+module ScriptRunner =
+ open Internal.Utilities.Library
+
+ let private createEngine(args,version) =
+ getSessionForEval args version
+
+ let defaultDefines =
+ [
+#if NETCOREAPP
+ "NETCOREAPP"
+#endif
+ ]
+
+ let runScriptFile version (cu:CompilationUnit) =
+ let cu = cu |> withDefines defaultDefines
+ match cu with
+ | FS fsSource ->
+ File.Delete("test.ok")
+ let engine = createEngine (fsSource.Options |> Array.ofList,version)
+ let res = evalScriptFromDiskInSharedSession engine cu
+ match res with
+ | CompilationResult.Failure _ -> res
+ | CompilationResult.Success s ->
+ if File.Exists("test.ok") then
+ res
+ else
+ failwith $"Results looked correct, but 'test.ok' file was not created. Result: %A{s}"
+
+ | _ -> failwith $"Compilation unit other than fsharp is not supported, cannot process %A{cu}"
+
+/// This test file was created by porting over (slower) FsharpSuite.Tests
+/// In order to minimize human error, the test definitions have been copy-pasted and this adapter provides implementations of the test functions
+module TestFrameworkAdapter =
+ open FSharp.Test.Compiler.Assertions.TextBasedDiagnosticAsserts
+
+ type ExecutionMode =
+ | FSC_DEBUG
+ | FSC_OPTIMIZED
+ | FSI
+ | COMPILED_EXE_APP
+ | NEG_TEST_BUILD of testName:string
+
+ let baseFolder = Path.Combine(__SOURCE_DIRECTORY__,"..","..","fsharp") |> Path.GetFullPath
+
+ let diffNegativeBaseline (cr:CompilationUnit) absFolder testName _version =
+ let expectedFiles = Directory.GetFiles(absFolder, testName + ".*")
+ let baselines =
+ [ for f in expectedFiles do
+ match Path.GetExtension(f) with
+ | ".bsl" -> cr, f
+ | ".vsbsl" -> cr |> withOptions ["--test:ContinueAfterParseFailure"], f
+ | _ -> () ]
+ [ for compilationUnit,baseline in baselines do
+ compilationUnit
+ |> typecheck
+ |> withResultsMatchingFile baseline ]
+ |> List.head
+
+
+ let adjustVersion version bonusArgs =
+ match version with
+ | LangVersion.V47 -> "4.7",bonusArgs
+ | LangVersion.V50 -> "5.0",bonusArgs
+ | LangVersion.V60 -> "6.0",bonusArgs
+ | LangVersion.V70 -> "7.0",bonusArgs
+ | LangVersion.Preview -> "preview",bonusArgs
+ | LangVersion.Latest -> "latest", bonusArgs
+ | LangVersion.SupportsMl -> "5.0", "--mlcompatibility" :: bonusArgs
+
+
+ let singleTestBuildAndRunAuxVersion (folder:string) bonusArgs mode langVersion =
+ let absFolder = Path.Combine(baseFolder,folder)
+ let supportedNames, files =
+ match mode with
+ | NEG_TEST_BUILD testName ->
+ let nameSet =
+ Configuration.supportedNames
+ .Add(testName+".fsx")
+ .Add(testName+".fs")
+ .Add(testName+".fsi")
+ .Add(testName+"-pre.fs")
+ let files = Directory.GetFiles(absFolder,"*.fs*") |> Array.filter(fun n -> nameSet.Contains(Path.GetFileName(n)))
+ nameSet, files
+ | _ -> Configuration.supportedNames, Directory.GetFiles(absFolder,"test*.fs*")
+
+ let mainFile,otherFiles =
+ match files.Length with
+ | 0 -> Directory.GetFiles(absFolder,"*.ml") |> Array.exactlyOne, [||]
+ | 1 -> files |> Array.exactlyOne, [||]
+ | _ ->
+ let mainFile,dependencies =
+ files
+ |> Array.filter (fun n -> supportedNames.Contains(Path.GetFileName(n)))
+ // Convention in older FsharpSuite: test2 goes last, longer names like testlib before test, .fsi before .fs on equal filenames
+ |> Array.sortBy (fun n -> n.Contains("test2"), -n.IndexOf('.'), n.EndsWith(".fsi") |> not)
+ |> Array.splitAt 1
+
+ mainFile[0],dependencies
+
+ let version,bonusArgs = adjustVersion langVersion bonusArgs
+
+ FsFromPath mainFile
+ |> withAdditionalSourceFiles [for f in otherFiles -> SourceFromPath f]
+ |> withLangVersion version
+ |> fun cu ->
+ match mode with
+ | FSC_DEBUG | FSC_OPTIMIZED | FSI | COMPILED_EXE_APP ->
+ cu
+ |> ignoreWarnings
+ |> withOptions (["--nowarn:0988;3370"] @ bonusArgs)
+ | NEG_TEST_BUILD _ ->
+ cu |>
+ withOptions (["--vserrors";"--maxerrors:10000";"--warnaserror";"--warn:3";"--nowarn:20;21;1178;52"] @ bonusArgs)
+ |> fun cu ->
+ match mode with
+ | FSC_DEBUG ->
+ cu
+ |> withDebug
+ |> withNoOptimize
+ |> ScriptRunner.runScriptFile langVersion
+ |> shouldSucceed
+ | FSC_OPTIMIZED ->
+ cu
+ |> withOptimize
+ |> withNoDebug
+ |> ScriptRunner.runScriptFile langVersion
+ |> shouldSucceed
+ | FSI ->
+ cu
+ |> ScriptRunner.runScriptFile langVersion
+ |> shouldSucceed
+ | COMPILED_EXE_APP ->
+ cu
+ |> withDefines ("TESTS_AS_APP" :: ScriptRunner.defaultDefines)
+ |> compileExeAndRun
+ |> shouldSucceed
+ | NEG_TEST_BUILD testName -> diffNegativeBaseline (cu |> withName mainFile) absFolder testName langVersion
+
+ |> ignore
+
+
+ let singleTestBuildAndRunAux folder bonusArgs mode = singleTestBuildAndRunAuxVersion folder bonusArgs mode LangVersion.Latest
+ let singleTestBuildAndRunVersion folder mode version = singleTestBuildAndRunAuxVersion folder [] mode version
+ let singleTestBuildAndRun folder mode = singleTestBuildAndRunVersion folder mode LangVersion.Latest
+
+ let singleVersionedNegTestAux folder bonusArgs version testName =
+ singleTestBuildAndRunAuxVersion folder bonusArgs (NEG_TEST_BUILD testName) version
+ let singleVersionedNegTest (folder:string) (version:LangVersion) (testName:string) =
+ singleVersionedNegTestAux folder [] version testName
+ let singleNegTest folder testName = singleVersionedNegTest folder LangVersion.Latest testName
\ No newline at end of file
diff --git a/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedCoreTests.fs b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedCoreTests.fs
new file mode 100644
index 00000000000..fe4437af9c8
--- /dev/null
+++ b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedCoreTests.fs
@@ -0,0 +1,477 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+module FSharp.Compiler.ComponentTests.Miscellaneous.FsharpSuiteMigrated.CoreTests
+
+open Xunit
+open FSharp.Test
+open FSharp.Test.ScriptHelpers
+open TestFrameworkAdapter
+
+
+// These tests are enabled for .NET Framework and .NET Core
+[]
+let ``access-FSC_DEBUG``() = singleTestBuildAndRun "core/access" FSC_DEBUG
+
+[]
+let ``access-FSC_OPTIMIZED``() = singleTestBuildAndRun "core/access" FSC_OPTIMIZED
+
+[]
+let ``access-FSI``() = singleTestBuildAndRun "core/access" FSI
+
+[]
+let ``apporder-FSC_DEBUG`` () = singleTestBuildAndRun "core/apporder" FSC_DEBUG
+
+[]
+let ``apporder-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/apporder" FSC_OPTIMIZED
+
+[]
+let ``apporder-FSI`` () = singleTestBuildAndRun "core/apporder" FSI
+
+[]
+let ``array-FSC_DEBUG-5.0`` () = singleTestBuildAndRunVersion "core/array" FSC_DEBUG LangVersion.V50
+
+[]
+let ``array-FSC_OPTIMIZED-5.0`` () = singleTestBuildAndRunVersion "core/array" FSC_OPTIMIZED LangVersion.V50
+
+[]
+let ``array-FSI-5.0`` () = singleTestBuildAndRunVersion "core/array" FSI LangVersion.V50
+
+[]
+let ``array-FSC_OPTIMIZED-preview`` () = singleTestBuildAndRunVersion "core/array" FSC_OPTIMIZED LangVersion.Preview
+
+[]
+let ``array-no-dot-FSC_DEBUG`` () = singleTestBuildAndRunVersion "core/array-no-dot" FSC_DEBUG LangVersion.Preview
+
+[]
+let ``array-no-dot-FSC_OPTIMIZED`` () = singleTestBuildAndRunVersion "core/array-no-dot" FSC_OPTIMIZED LangVersion.Preview
+
+[]
+let ``array-no-dot-FSI`` () = singleTestBuildAndRunVersion "core/array-no-dot" FSI LangVersion.Preview
+
+[]
+let ``array-no-dot-warnings-langversion-default`` () =
+ singleVersionedNegTest "core/array-no-dot-warnings" LangVersion.Latest "test-langversion-default"
+
+[]
+let ``array-no-dot-warnings-langversion-5_0`` () =
+ singleVersionedNegTest "core/array-no-dot-warnings" LangVersion.V50 "test-langversion-5.0"
+
+[]
+let ``ref-ops-deprecation-langversion-preview`` () =
+ singleVersionedNegTest "core/ref-ops-deprecation" LangVersion.Preview "test-langversion-preview"
+
+[]
+let ``auto-widen-version-5_0``() =
+ singleVersionedNegTest "core/auto-widen/5.0" LangVersion.V50 "test"
+
+[]
+let ``auto-widen-version-FSC_DEBUG-preview``() =
+ singleTestBuildAndRunVersion "core/auto-widen/preview" FSC_DEBUG LangVersion.Preview
+
+[]
+let ``auto-widen-version-FSC_OPTIMIZED-preview``() =
+ singleTestBuildAndRunVersion "core/auto-widen/preview" FSC_OPTIMIZED LangVersion.Preview
+
+[]
+let ``auto-widen-minimal``() =
+ singleTestBuildAndRunVersion "core/auto-widen/minimal" FSC_OPTIMIZED LangVersion.V70
+
+[]
+let ``auto-widen-version-preview-warns-on``() =
+ singleVersionedNegTestAux "core/auto-widen/preview" ["--warnon:3388";"--warnon:3389";"--warnon:3395";"--warnaserror+";"--define:NEGATIVE"] LangVersion.Preview "test"
+
+[]
+let ``auto-widen-version-preview-default-warns``() =
+ singleVersionedNegTestAux "core/auto-widen/preview-default-warns" ["--warnaserror+";"--define:NEGATIVE"] LangVersion.Preview "test"
+
+[]
+let ``comprehensions-FSC_DEBUG`` () = singleTestBuildAndRun "core/comprehensions" FSC_DEBUG
+
+[]
+let ``comprehensions-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/comprehensions" FSC_OPTIMIZED
+
+[]
+let ``comprehensions-FSI`` () = singleTestBuildAndRun "core/comprehensions" FSI
+
+[]
+let ``comprehensionshw-FSC_DEBUG`` () = singleTestBuildAndRun "core/comprehensions-hw" FSC_DEBUG
+
+[]
+let ``comprehensionshw-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/comprehensions-hw" FSC_OPTIMIZED
+
+[]
+let ``comprehensionshw-FSI`` () = singleTestBuildAndRun "core/comprehensions-hw" FSI
+
+[]
+let ``genericmeasures-FSC_DEBUG`` () = singleTestBuildAndRun "core/genericmeasures" FSC_DEBUG
+
+[]
+let ``genericmeasures-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/genericmeasures" FSC_OPTIMIZED
+
+[]
+let ``genericmeasures-FSI`` () = singleTestBuildAndRun "core/genericmeasures" FSI
+
+[]
+let ``innerpoly-FSC_DEBUG`` () = singleTestBuildAndRun "core/innerpoly" FSC_DEBUG
+
+[]
+let ``innerpoly-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/innerpoly" FSC_OPTIMIZED
+
+[]
+let ``innerpoly-FSI`` () = singleTestBuildAndRun "core/innerpoly" FSI
+
+[]
+let ``namespaceAttributes-FSC_DEBUG`` () = singleTestBuildAndRun "core/namespaces" COMPILED_EXE_APP
+
+[]
+let ``namespaceAttributes-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/namespaces" COMPILED_EXE_APP
+
+[]
+let ``unicode2-FSC_DEBUG`` () = singleTestBuildAndRun "core/unicode" FSC_DEBUG // TODO: fails on coreclr
+
+[]
+let ``unicode2-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/unicode" FSC_OPTIMIZED // TODO: fails on coreclr
+
+[]
+let ``unicode2-FSI`` () = singleTestBuildAndRun "core/unicode" FSI
+
+[]
+let ``lazy test-FSC_DEBUG`` () = singleTestBuildAndRun "core/lazy" FSC_DEBUG
+
+[]
+let ``lazy test-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/lazy" FSC_OPTIMIZED
+
+[]
+let ``lazy test-FSI`` () = singleTestBuildAndRun "core/lazy" FSI
+
+[]
+let ``letrec-FSC_DEBUG`` () = singleTestBuildAndRun "core/letrec" FSC_DEBUG
+
+[]
+let ``letrec-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/letrec" FSC_OPTIMIZED
+
+[]
+let ``letrec-FSI`` () = singleTestBuildAndRun "core/letrec" FSI
+
+[]
+let ``letrec (mutrec variations part one) FSC_DEBUG`` () = singleTestBuildAndRun "core/letrec-mutrec" FSC_DEBUG
+
+[]
+let ``letrec (mutrec variations part one) FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/letrec-mutrec" FSC_OPTIMIZED
+
+[]
+let ``letrec (mutrec variations part one) FSI`` () = singleTestBuildAndRun "core/letrec-mutrec" FSI
+
+[]
+let ``libtest-FSC_DEBUG`` () = singleTestBuildAndRun "core/libtest" FSC_DEBUG
+
+[]
+let ``libtest-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/libtest" FSC_OPTIMIZED
+
+[]
+let ``libtest-FSI`` () = singleTestBuildAndRun "core/libtest" FSI
+
+[]
+let ``lift-FSC_DEBUG`` () = singleTestBuildAndRun "core/lift" FSC_DEBUG
+
+[]
+let ``lift-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/lift" FSC_OPTIMIZED
+
+[]
+let ``lift-FSI`` () = singleTestBuildAndRun "core/lift" FSI
+
+[]
+let ``map-FSC_DEBUG`` () = singleTestBuildAndRun "core/map" FSC_DEBUG
+
+[]
+let ``map-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/map" FSC_OPTIMIZED
+
+[]
+let ``map-FSI`` () = singleTestBuildAndRun "core/map" FSI
+
+[]
+let ``measures-FSC_DEBUG`` () = singleTestBuildAndRun "core/measures" FSC_DEBUG
+
+[]
+let ``measures-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/measures" FSC_OPTIMIZED
+
+[]
+let ``measures-FSI`` () = singleTestBuildAndRun "core/measures" FSI
+
+[]
+let ``nested-FSC_DEBUG`` () = singleTestBuildAndRun "core/nested" FSC_DEBUG
+
+[]
+let ``nested-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/nested" FSC_OPTIMIZED
+
+[]
+let ``nested-FSI`` () = singleTestBuildAndRun "core/nested" FSI
+
+[]
+let ``members-basics-hw`` () = singleTestBuildAndRun "core/members/basics-hw" FSC_OPTIMIZED
+
+[]
+let ``members-basics-hw-mutrec`` () = singleTestBuildAndRun "core/members/basics-hw-mutrec" FSC_OPTIMIZED
+
+[]
+let ``members-incremental-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/incremental" FSC_OPTIMIZED
+
+[]
+let ``members-incremental-FSI`` () = singleTestBuildAndRun "core/members/incremental" FSI
+
+[]
+let ``members-incremental-hw-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/incremental-hw" FSC_OPTIMIZED
+
+[]
+let ``members-incremental-hw-FSI`` () = singleTestBuildAndRun "core/members/incremental-hw" FSI
+
+[]
+let ``members-incremental-hw-mutrec-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/incremental-hw-mutrec" FSC_OPTIMIZED
+
+[]
+let ``members-ops-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/ops" FSC_OPTIMIZED
+
+[]
+let ``members-ops-FSC_DEBUG`` () = singleTestBuildAndRun "core/members/ops" FSC_DEBUG
+
+[]
+let ``members-ops-FSI`` () = singleTestBuildAndRun "core/members/ops" FSI
+
+[]
+let ``members-ops-mutrec-FSC_DEBUG`` () = singleTestBuildAndRun "core/members/ops-mutrec" FSC_DEBUG
+
+[]
+let ``members-ops-mutrec-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/ops-mutrec" FSC_OPTIMIZED
+
+[]
+let ``members-ops-mutrec-FSI`` () = singleTestBuildAndRun "core/members/ops-mutrec" FSI
+
+[]
+let ``seq-FSC_DEBUG`` () = singleTestBuildAndRun "core/seq" FSC_DEBUG
+
+[]
+let ``seq-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/seq" FSC_OPTIMIZED
+
+[]
+let ``seq-FSI`` () = singleTestBuildAndRun "core/seq" FSI
+
+[]
+let ``math-numbers-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/math/numbers" FSC_OPTIMIZED
+
+[]
+let ``math-numbers-FSI`` () = singleTestBuildAndRun "core/math/numbers" FSI
+
+[]
+let ``members-ctree-FSC_DEBUG`` () = singleTestBuildAndRun "core/members/ctree" FSC_DEBUG
+
+[]
+let ``members-ctree-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/ctree" FSC_OPTIMIZED
+
+[]
+let ``members-ctree-FSI`` () = singleTestBuildAndRun "core/members/ctree" FSI
+
+[]
+let ``members-factors-FSC_DEBUG`` () = singleTestBuildAndRun "core/members/factors" FSC_DEBUG
+
+[]
+let ``members-factors-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/factors" FSC_OPTIMIZED
+
+[]
+let ``members-factors-FSI`` () = singleTestBuildAndRun "core/members/factors" FSI
+
+[]
+let ``members-factors-mutrec-FSC_DEBUG`` () = singleTestBuildAndRun "core/members/factors-mutrec" FSC_DEBUG
+
+[]
+let ``members-factors-mutrec-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/members/factors-mutrec" FSC_OPTIMIZED
+
+[]
+let ``members-factors-mutrec-FSI`` () = singleTestBuildAndRun "core/members/factors-mutrec" FSI
+
+[]
+let ``graph-FSC_DEBUG`` () = singleTestBuildAndRunVersion "perf/graph" FSC_DEBUG LangVersion.SupportsMl
+
+[]
+let ``graph-FSC_OPTIMIZED`` () = singleTestBuildAndRunVersion "perf/graph" FSC_OPTIMIZED LangVersion.SupportsMl
+
+[]
+let ``graph-FSI`` () = singleTestBuildAndRunVersion "perf/graph" FSI LangVersion.SupportsMl
+
+[]
+let ``nbody-FSC_DEBUG`` () = singleTestBuildAndRunVersion "perf/nbody" FSC_DEBUG LangVersion.SupportsMl
+
+[]
+let ``nbody-FSC_OPTIMIZED`` () = singleTestBuildAndRunVersion "perf/nbody" FSC_OPTIMIZED LangVersion.SupportsMl
+
+[]
+let ``nbody-FSI`` () = singleTestBuildAndRunVersion "perf/nbody" FSI LangVersion.SupportsMl
+
+[]
+let ``forexpression-FSC_DEBUG`` () = singleTestBuildAndRun "core/forexpression" FSC_DEBUG
+
+[]
+let ``forexpression-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/forexpression" FSC_OPTIMIZED
+
+[]
+let ``forexpression-FSI`` () = singleTestBuildAndRun "core/forexpression" FSI
+
+[]
+let ``letrec (mutrec variations part two) FSC_DEBUG`` () = singleTestBuildAndRun "core/letrec-mutrec2" FSC_DEBUG
+
+[]
+let ``letrec (mutrec variations part two) FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/letrec-mutrec2" FSC_OPTIMIZED
+
+[]
+let ``letrec (mutrec variations part two) FSI`` () = singleTestBuildAndRun "core/letrec-mutrec2" FSI
+
+[]
+let ``printf`` () = singleTestBuildAndRunVersion "core/printf" FSC_OPTIMIZED LangVersion.Preview
+
+[]
+let ``printf-interpolated`` () = singleTestBuildAndRunVersion "core/printf-interpolated" FSC_OPTIMIZED LangVersion.Preview
+
+[]
+let ``tlr-FSC_DEBUG`` () = singleTestBuildAndRun "core/tlr" FSC_DEBUG
+
+[]
+let ``tlr-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/tlr" FSC_OPTIMIZED
+
+[]
+let ``tlr-FSI`` () = singleTestBuildAndRun "core/tlr" FSI
+
+[]
+let ``subtype-FSC_DEBUG`` () = singleTestBuildAndRun "core/subtype" FSC_DEBUG
+
+[]
+let ``subtype-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/subtype" FSC_OPTIMIZED
+
+[]
+let ``subtype-FSI`` () = singleTestBuildAndRun "core/subtype" FSI
+
+[]
+let ``syntax-FSC_DEBUG`` () = singleTestBuildAndRun "core/syntax" FSC_DEBUG
+
+[]
+let ``syntax-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/syntax" FSC_OPTIMIZED
+
+[]
+let ``syntax-FSI`` () = singleTestBuildAndRun "core/syntax" FSI
+
+[]
+let ``test int32-FSC_DEBUG`` () = singleTestBuildAndRun "core/int32" FSC_DEBUG
+
+[]
+let ``test int32-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/int32" FSC_OPTIMIZED
+
+[]
+let ``test int32-FSI`` () = singleTestBuildAndRun "core/int32" FSI
+
+// This test stays in FsharpSuite for desktop framework for a later migration phases, it uses hardcoded #r to a C# compiled cslib.dll inside
+[]
+let ``quotes-FSC-FSC_DEBUG`` () = singleTestBuildAndRun "core/quotes" FSC_DEBUG
+
+[]
+let ``quotes-FSC-BASIC`` () = singleTestBuildAndRun "core/quotes" FSC_OPTIMIZED
+
+[]
+let ``quotes-FSI-BASIC`` () = singleTestBuildAndRun "core/quotes" FSI
+
+[]
+let ``recordResolution-FSC_DEBUG`` () = singleTestBuildAndRun "core/recordResolution" FSC_DEBUG
+
+[]
+let ``recordResolution-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/recordResolution" FSC_OPTIMIZED
+
+[]
+let ``recordResolution-FSI`` () = singleTestBuildAndRun "core/recordResolution" FSI
+
+// This test has hardcoded expectations about current synchronization context
+// Will be moved out of FsharpSuite.Tests in a later phase for desktop framework
+[]
+let ``control-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/control" FSC_OPTIMIZED
+
+[]
+let ``control-FSI`` () = singleTestBuildAndRun "core/control" FSI
+
+[]
+let ``control --tailcalls`` () =
+ let cfg = "core/control"
+ singleTestBuildAndRunAux cfg ["--tailcalls"] FSC_OPTIMIZED
+
+[]
+let ``controlChamenos-FSC_OPTIMIZED`` () =
+ let cfg = "core/controlChamenos"
+ singleTestBuildAndRunAux cfg ["--tailcalls"] FSC_OPTIMIZED
+
+[]
+let ``controlChamenos-FSI`` () =
+ let cfg = "core/controlChamenos"
+ singleTestBuildAndRunAux cfg ["--tailcalls"] FSI
+
+[]
+let ``controlMailbox-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/controlMailbox" FSC_OPTIMIZED
+
+[]
+let ``controlMailbox-FSI`` () = singleTestBuildAndRun "core/controlMailbox" FSI
+
+[]
+let ``controlMailbox --tailcalls`` () =
+ let cfg = "core/controlMailbox"
+ singleTestBuildAndRunAux cfg ["--tailcalls"] FSC_OPTIMIZED
+
+[]
+let ``csext-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/csext" FSC_OPTIMIZED
+
+[]
+let ``csext-FSI`` () = singleTestBuildAndRun "core/csext" FSI
+
+[]
+let ``enum-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/enum" FSC_OPTIMIZED
+
+[]
+let ``enum-FSI`` () = singleTestBuildAndRun "core/enum" FSI
+
+[]
+let ``longnames-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/longnames" FSC_OPTIMIZED
+
+[]
+let ``longnames-FSI`` () = singleTestBuildAndRun "core/longnames" FSI
+
+[]
+let ``math-numbersVS2008-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/math/numbersVS2008" FSC_OPTIMIZED
+
+[]
+let ``math-numbersVS2008-FSI`` () = singleTestBuildAndRun "core/math/numbersVS2008" FSI
+
+[]
+let ``patterns-FSC_OPTIMIZED`` () = singleTestBuildAndRunVersion "core/patterns" FSC_OPTIMIZED LangVersion.Preview
+
+// This requires --multiemit on by default, which is not the case for .NET Framework
+[]
+let ``patterns-FSI`` () = singleTestBuildAndRun "core/patterns" FSI
+
+[]
+let ``fsi_load-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/fsi-load" FSC_OPTIMIZED
+
+[]
+let ``fsi_load-FSI`` () = singleTestBuildAndRun "core/fsi-load" FSI
+
+[]
+let ``reflect-FSC_OPTIMIZED`` () = singleTestBuildAndRun "core/reflect" FSC_OPTIMIZED
+
+[]
+let ``reflect-FSI`` () = singleTestBuildAndRun "core/reflect" FSI
+
+module PInvokeTests =
+ open System.Runtime.InteropServices
+ let isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows)
+
+ []
+ let ``pinvoke-FSC_OPTIMIZED`` () =
+ if isWindows then
+ singleTestBuildAndRun "core/pinvoke" FSC_OPTIMIZED
+
+ []
+ let ``pinvoke-FSI`` () =
+ if isWindows then
+ singleTestBuildAndRun "core/pinvoke" FSI
\ No newline at end of file
diff --git a/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedOverloadTests.fs b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedOverloadTests.fs
new file mode 100644
index 00000000000..55286a6a656
--- /dev/null
+++ b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedOverloadTests.fs
@@ -0,0 +1,38 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+module FSharp.Compiler.ComponentTests.Miscellaneous.FsharpSuiteMigrated.OverloadResolution
+
+open Xunit
+open FSharp.Test
+open TestFrameworkAdapter
+
+module ``fsharpqa migrated tests`` =
+ let [] ``Conformance\Expressions\SyntacticSugar (E_Slices01_fs)`` () = singleNegTest ( "conformance/expressions/syntacticsugar") "E_Slices01"
+ let [] ``Conformance\Expressions\Type-relatedExpressions (E_RigidTypeAnnotation03_fsx)`` () = singleNegTest ( "conformance/expressions/type-relatedexpressions") "E_RigidTypeAnnotation03"
+ let [] ``Conformance\Inference (E_OneTypeVariable03_fs)`` () = singleNegTest ( "conformance/inference") "E_OneTypeVariable03"
+ let [] ``Conformance\Inference (E_OneTypeVariable03rec_fs)`` () = singleNegTest ( "conformance/inference") "E_OneTypeVariable03rec"
+ let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoDifferentTypeVariablesGen00"
+ let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoDifferentTypeVariables01"
+ let [] ``Conformance\Inference (E_TwoDifferentTypeVariables01rec_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoDifferentTypeVariables01rec"
+ let [] ``Conformance\Inference (E_TwoDifferentTypeVariablesGen00rec_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoDifferentTypeVariablesGen00rec"
+ let [] ``Conformance\Inference (E_TwoEqualTypeVariables02_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoEqualTypeVariables02"
+ let [] ``Conformance\Inference (E_TwoEqualYypeVariables02rec_fs)`` () = singleNegTest ( "conformance/inference") "E_TwoEqualYypeVariables02rec"
+ let [] ``Conformance\Inference (E_LeftToRightOverloadResolution01_fs)`` () = singleNegTest ( "conformance/inference") "E_LeftToRightOverloadResolution01"
+ let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass01_fs)`` () = singleNegTest ( "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass01"
+ let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass03_fs)`` () = singleNegTest ( "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass03"
+ let [] ``Conformance\WellFormedness (E_Clashing_Values_in_AbstractClass04_fs)`` () = singleNegTest ( "conformance/wellformedness") "E_Clashing_Values_in_AbstractClass04"
+ // note: this test still exist in fsharpqa to assert the compiler doesn't crash
+ // the part of the code generating a flaky error due to https://github.com/dotnet/fsharp/issues/6725
+ // is elided here to focus on overload resolution error messages
+ let [] ``Conformance\LexicalAnalysis\SymbolicOperators (E_LessThanDotOpenParen001_fs)`` () = singleNegTest ( "conformance/lexicalanalysis") "E_LessThanDotOpenParen001"
+
+module ``error messages using BCL``=
+ let [] ``neg_System_Convert_ToString_OverloadList``() = singleNegTest ( "typecheck/overloads") "neg_System.Convert.ToString.OverloadList"
+ let [] ``neg_System_Threading_Tasks_Task_Run_OverloadList``() = singleNegTest ( "typecheck/overloads") "neg_System.Threading.Tasks.Task.Run.OverloadList"
+ let [] ``neg_System_Drawing_Graphics_DrawRectangleOverloadList_fsx``() = singleNegTest ( "typecheck/overloads") "neg_System.Drawing.Graphics.DrawRectangleOverloadList"
+
+module ``ad hoc code overload error messages``=
+ let [] ``neg_many_many_overloads`` () = singleNegTest ( "typecheck/overloads") "neg_many_many_overloads"
+ let [] ``neg_interface_generics`` () = singleNegTest ( "typecheck/overloads") "neg_interface_generics"
+ let [] ``neg_known_return_type_and_known_type_arguments`` () = singleNegTest ( "typecheck/overloads") "neg_known_return_type_and_known_type_arguments"
+ let [] ``neg_generic_known_argument_types`` () = singleNegTest ( "typecheck/overloads") "neg_generic_known_argument_types"
+ let [] ``neg_tupled_arguments`` () = singleNegTest ( "typecheck/overloads") "neg_tupled_arguments"
\ No newline at end of file
diff --git a/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedTypeCheckTests.fs b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedTypeCheckTests.fs
new file mode 100644
index 00000000000..09a287838b3
--- /dev/null
+++ b/tests/FSharp.Compiler.ComponentTests/Miscellaneous/MigratedTypeCheckTests.fs
@@ -0,0 +1,501 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+module FSharp.Compiler.ComponentTests.Miscellaneous.FsharpSuiteMigrated.TypeCheckTests
+
+open Xunit
+open FSharp.Test
+open FSharp.Test.ScriptHelpers
+open TestFrameworkAdapter
+
+[]
+let misc () = singleTestBuildAndRunVersion "typecheck/misc" FSC_OPTIMIZED LangVersion.SupportsMl
+
+[]
+let ``type check neg01`` () = singleNegTest ( "typecheck/sigs") "neg01"
+
+[]
+let ``type check neg02`` () = singleVersionedNegTest ( "typecheck/sigs") LangVersion.V60 "neg02"
+
+[]
+let ``type check neg03`` () = singleVersionedNegTest ( "typecheck/sigs") LangVersion.SupportsMl "neg03"
+
+[]
+let ``type check neg04`` () = singleNegTest ( "typecheck/sigs") "neg04"
+
+[]
+let ``type check neg05`` () = singleNegTest ( "typecheck/sigs") "neg05"
+
+[]
+let ``type check neg06`` () = singleNegTest ( "typecheck/sigs") "neg06"
+
+[]
+let ``type check neg06_a`` () = singleNegTest ( "typecheck/sigs") "neg06_a"
+
+[]
+let ``type check neg06_b`` () = singleNegTest ( "typecheck/sigs") "neg06_b"
+
+[]
+let ``type check neg07`` () = singleNegTest ( "typecheck/sigs") "neg07"
+
+[]
+let ``type check neg08`` () = singleNegTest ( "typecheck/sigs") "neg08"
+
+[]
+let ``type check neg09`` () = singleNegTest ( "typecheck/sigs") "neg09"
+
+[]
+let ``type check neg10`` () = singleNegTest ( "typecheck/sigs") "neg10"
+
+[]
+let ``type check neg10_a`` () = singleNegTest ( "typecheck/sigs") "neg10_a"
+
+[]
+let ``type check neg11`` () = singleNegTest ( "typecheck/sigs") "neg11"
+
+[]
+let ``type check neg12`` () = singleNegTest ( "typecheck/sigs") "neg12"
+
+[]
+let ``type check neg13`` () = singleNegTest ( "typecheck/sigs") "neg13"
+
+[]
+let ``type check neg14`` () = singleNegTest ( "typecheck/sigs") "neg14"
+
+[]
+let ``type check neg15`` () = singleNegTest ( "typecheck/sigs") "neg15"
+
+[]
+let ``type check neg16`` () = singleNegTest ( "typecheck/sigs") "neg16"
+
+[]
+let ``type check neg17`` () = singleNegTest ( "typecheck/sigs") "neg17"
+
+[]
+let ``type check neg18`` () = singleNegTest ( "typecheck/sigs") "neg18"
+
+[]
+let ``type check neg19`` () = singleNegTest ( "typecheck/sigs") "neg19"
+
+[]
+let ``type check neg20`` () = singleNegTest ( "typecheck/sigs") "neg20"
+
+[]
+let ``type check neg20 version 5_0`` () =
+ let cfg = "typecheck/sigs/version50"
+ singleVersionedNegTest cfg LangVersion.V50 "neg20"
+
+[]
+let ``type check neg21`` () = singleNegTest ( "typecheck/sigs") "neg21"
+
+[]
+let ``type check neg23`` () = singleNegTest ( "typecheck/sigs") "neg23"
+
+
+[]
+let ``type check neg25`` () = singleNegTest ( "typecheck/sigs") "neg25"
+
+[]
+let ``type check neg26`` () = singleNegTest ( "typecheck/sigs") "neg26"
+
+[]
+let ``type check neg27`` () = singleNegTest ( "typecheck/sigs") "neg27"
+
+[]
+let ``type check neg28`` () = singleNegTest ( "typecheck/sigs") "neg28"
+
+[]
+let ``type check neg29`` () = singleNegTest ( "typecheck/sigs") "neg29"
+
+[]
+let ``type check neg30`` () = singleNegTest ( "typecheck/sigs") "neg30"
+
+[]
+let ``type check neg31`` () = singleNegTest ( "typecheck/sigs") "neg31"
+
+[]
+let ``type check neg32`` () = singleNegTest ( "typecheck/sigs") "neg32"
+
+[]
+let ``type check neg33`` () = singleNegTest ( "typecheck/sigs") "neg33"
+
+[]
+let ``type check neg34`` () = singleNegTest ( "typecheck/sigs") "neg34"
+
+[]
+let ``type check neg35`` () = singleNegTest ( "typecheck/sigs") "neg35"
+
+[]
+let ``type check neg36`` () = singleNegTest ( "typecheck/sigs") "neg36"
+
+[]
+let ``type check neg37`` () = singleNegTest ( "typecheck/sigs") "neg37"
+
+[]
+let ``type check neg37_a`` () = singleNegTest ( "typecheck/sigs") "neg37_a"
+
+[]
+let ``type check neg38`` () = singleNegTest ( "typecheck/sigs") "neg38"
+
+[]
+let ``type check neg39`` () = singleNegTest ( "typecheck/sigs") "neg39"
+
+[]
+let ``type check neg40`` () = singleNegTest ( "typecheck/sigs") "neg40"
+
+[]
+let ``type check neg41`` () = singleNegTest ( "typecheck/sigs") "neg41"
+
+[]
+let ``type check neg42`` () = singleNegTest ( "typecheck/sigs") "neg42"
+
+[]
+let ``type check neg43`` () = singleNegTest ( "typecheck/sigs") "neg43"
+
+[]
+let ``type check neg44`` () = singleNegTest ( "typecheck/sigs") "neg44"
+
+#if !DEBUG // requires release version of compiler to avoid very deep stacks
+[]
+let ``type check neg45`` () = singleNegTest ( "typecheck/sigs") "neg45"
+#endif
+
+[]
+let ``type check neg46`` () = singleNegTest ( "typecheck/sigs") "neg46"
+
+[]
+let ``type check neg47`` () = singleNegTest ( "typecheck/sigs") "neg47"
+
+[]
+let ``type check neg48`` () = singleNegTest ( "typecheck/sigs") "neg48"
+
+[]
+let ``type check neg49`` () = singleNegTest ( "typecheck/sigs") "neg49"
+
+[]
+let ``type check neg50`` () = singleNegTest ( "typecheck/sigs") "neg50"
+
+[]
+let ``type check neg51`` () = singleNegTest ( "typecheck/sigs") "neg51"
+
+[]
+let ``type check neg52`` () = singleNegTest ( "typecheck/sigs") "neg52"
+
+[]
+let ``type check neg53`` () = singleNegTest ( "typecheck/sigs") "neg53"
+
+[]
+let ``type check neg54`` () = singleNegTest ( "typecheck/sigs") "neg54"
+
+[]
+let ``type check neg55`` () = singleNegTest ( "typecheck/sigs") "neg55"
+
+[]
+let ``type check neg56`` () = singleNegTest ( "typecheck/sigs") "neg56"
+
+[]
+let ``type check neg56_a`` () = singleNegTest ( "typecheck/sigs") "neg56_a"
+
+[]
+let ``type check neg56_b`` () = singleNegTest ( "typecheck/sigs") "neg56_b"
+
+[]
+let ``type check neg57`` () = singleNegTest ( "typecheck/sigs") "neg57"
+
+[]
+let ``type check neg58`` () = singleNegTest ( "typecheck/sigs") "neg58"
+
+[]
+let ``type check neg59`` () = singleNegTest ( "typecheck/sigs") "neg59"
+
+[]
+let ``type check neg60`` () = singleNegTest ( "typecheck/sigs") "neg60"
+
+[]
+let ``type check neg61`` () = singleNegTest ( "typecheck/sigs") "neg61"
+
+[]
+let ``type check neg62`` () = singleNegTest ( "typecheck/sigs") "neg62"
+
+[]
+let ``type check neg63`` () = singleNegTest ( "typecheck/sigs") "neg63"
+
+[]
+let ``type check neg64`` () = singleNegTest ( "typecheck/sigs") "neg64"
+
+[]
+let ``type check neg65`` () = singleNegTest ( "typecheck/sigs") "neg65"
+
+[]
+let ``type check neg66`` () = singleNegTest ( "typecheck/sigs") "neg66"
+
+[]
+let ``type check neg67`` () = singleNegTest ( "typecheck/sigs") "neg67"
+
+[]
+let ``type check neg68`` () = singleNegTest ( "typecheck/sigs") "neg68"
+
+[]
+let ``type check neg69`` () = singleNegTest ( "typecheck/sigs") "neg69"
+
+[]
+let ``type check neg70`` () = singleNegTest ( "typecheck/sigs") "neg70"
+
+[]
+let ``type check neg71`` () = singleNegTest ( "typecheck/sigs") "neg71"
+
+[]
+let ``type check neg72`` () = singleNegTest ( "typecheck/sigs") "neg72"
+
+[]
+let ``type check neg73`` () = singleNegTest ( "typecheck/sigs") "neg73"
+
+[]
+let ``type check neg74`` () = singleNegTest ( "typecheck/sigs") "neg74"
+
+[]
+let ``type check neg75`` () = singleNegTest ( "typecheck/sigs") "neg75"
+
+[]
+let ``type check neg76`` () = singleNegTest ( "typecheck/sigs") "neg76"
+
+[