diff --git a/DEVGUIDE.md b/DEVGUIDE.md
index d7f831811..c41d635de 100644
--- a/DEVGUIDE.md
+++ b/DEVGUIDE.md
@@ -97,11 +97,8 @@ Install Xamarin Studio, then
To build and test Visual F# IDE Tools, install these requirements:
- [Visual Studio 2017](https://www.visualstudio.com/downloads/)
- Under the "Windows" workloads, select ".NET desktop development"
- - Select "F# language support" under the optional components
+ - Select "F# desktop language support" under the optional components
- Under the "Other Toolsets" workloads, select "Visual Studio extension development"
- - Under the "Individual components" tab select "Windows 10 SDK" as shown below (needed for compiling RC resource, see #2556): \
- ![image](https://cloud.githubusercontent.com/assets/1249087/23730261/5c78c850-041b-11e7-9d9d-62766351fd0f.png)
- - Failing to install this will lead to error FS0193: Could not find file visualfsharp\vsintegration\src\FSharp.ProjectSystem.FSharp\obj\net40\ProjectResources.rc.res.
Steps to build:
@@ -111,7 +108,6 @@ Steps to build:
Use ``VisualFSharp.sln`` if you're building the Visual F# IDE Tools.
-
Note on Debug vs Release: ``Release`` Configuration has a degraded debugging experience, so if you want to test a change locally, it is recommended to do it in the ``Debug`` configuration. For more information see https://github.com/Microsoft/visualfsharp/issues/2771 and https://github.com/Microsoft/visualfsharp/pull/2773.
Note: if you face this error [#2351](https://github.com/Microsoft/visualfsharp/issues/2351):
@@ -125,7 +121,6 @@ Or hard crash on launch ("Unknown Error"), delete these folders:
#### [Optional] Install the Visual F# IDE Tools (Windows Only)
-At time of writing, the Visual F# IDE Tools can only be installed into the latest Visual Studio 2017 RC releases.
The new builds of the Visual F# IDE Tools can no longer be installed into Visual Studio 2015.
You can install Visual Studio 2017 from https://www.visualstudio.com/downloads/.
@@ -155,7 +150,6 @@ changes, but the root (default) hive will remain untouched. You can also start t
Because this uses the "RoslynDev" hive you can simultaneously test changes to an appropriate build of Roslyn binaries.
-
#### [Optional] Rapid deployment of incremental changes to Visual F# IDE Tools components
For the brave, you can rapidly deploy incrementally updated versions of Visual F# IDE Tool components such as ``FSHarp.Editor.dll`` by copying them directly into the extension directory in your user AppData folder:
@@ -176,7 +170,6 @@ For **Release**:
vsintegration\update-vsintegration.cmd release
-
# Notes
#### Windows: Links to Additional frameworks
@@ -192,10 +185,9 @@ For **Release**:
- [Windows 8.1 SDK](http://msdn.microsoft.com/en-us/library/windows/desktop/bg162891.aspx)
- [Windows 10 SDK](https://developer.microsoft.com/en-US/windows/downloads/windows-10-sdk)
-
#### Notes on the Windows .NET Framework build
-1. The `update.cmd` script adds required strong name validation skips, and NGens the compiler and libraries. This requires admin privileges.
+1. The `update.cmd` script adds required strong name validation skips and NGens the compiler and libraries. This requires admin privileges.
1. The compiler binaries produced are "private" and strong-named signed with a test key.
1. Some additional tools are required to build the compiler, notably `fslex.exe`, `fsyacc.exe`, `FSharp.PowerPack.Build.Tasks.dll`, `FsSrGen.exe`, `FSharp.SRGen.Build.Tasks.dll`, and the other tools found in the `lkg` directory.
1. The overall bootstrapping process executes as follows
@@ -217,4 +209,3 @@ Where you should set proper proxy address, user name and password.
#### Resources
The primary technical guide to the core compiler code is [The F# Compiler Technical Guide](http://fsharp.github.io/2015/09/29/fsharp-compiler-guide.html). Please read and contribute to that guide.
-
diff --git a/DotnetCLIToolsVersion.txt b/DotnetCLIToolsVersion.txt
index 0286f3da0..07fe0f906 100644
--- a/DotnetCLIToolsVersion.txt
+++ b/DotnetCLIToolsVersion.txt
@@ -1 +1 @@
-2.0.0-preview2-006502
+2.0.3-servicing-007056
diff --git a/PublishToBlob.proj b/PublishToBlob.proj
index 9d071710a..21dbb9300 100644
--- a/PublishToBlob.proj
+++ b/PublishToBlob.proj
@@ -10,19 +10,25 @@
Microsoft.DotNet.Build.Tasks.Feed
- 1.0.0-prerelease-02121-01
+ 1.0.0-prerelease-02219-01
-
+
+
+
diff --git a/VisualFSharp.sln b/VisualFSharp.sln
index 90a1a3a4e..5f0ba007e 100644
--- a/VisualFSharp.sln
+++ b/VisualFSharp.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.27005.2
+VisualStudioVersion = 15.0.27116.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Private", "src\fsharp\FSharp.Compiler.Private\FSharp.Compiler.Private.fsproj", "{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}"
EndProject
@@ -96,14 +96,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleProject", "vsintegra
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LibraryProject", "vsintegration\ProjectTemplates\LibraryProject\LibraryProject.csproj", "{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore78Project", "vsintegration\ProjectTemplates\NetCore78Project\NetCore78Project.csproj", "{1A8DBF70-4178-4AE3-AF5F-39DDD5692210}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCore259Project", "vsintegration\ProjectTemplates\NetCore259Project\NetCore259Project.csproj", "{D9D95330-3626-4199-B7AF-17B8E4AF6D87}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetCoreProject", "vsintegration\ProjectTemplates\NetCoreProject\NetCoreProject.csproj", "{5B739CF3-1116-4EB4-B598-6C16BEA81CE5}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortableLibraryProject", "vsintegration\ProjectTemplates\PortableLibraryProject\PortableLibraryProject.csproj", "{DB374A0C-7560-479F-9B21-D37C81F7624F}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TutorialProject", "vsintegration\ProjectTemplates\TutorialProject\TutorialProject.csproj", "{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ItemTemplates", "ItemTemplates", "{F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}"
@@ -146,6 +138,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceFile", "vsintegrati
EndProject
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Build.UnitTests", "src\fsharp\FSharp.Build.UnitTests\FSharp.Build.UnitTests.fsproj", "{400FAB03-786E-40CC-85A8-04B0C2869B14}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PEVerify", "tests\fsharpqa\testenv\src\PEVerify\PEVerify.csproj", "{B0689A4E-07D8-494D-A0C8-791CB1D74E54}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -564,54 +558,6 @@ Global
{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|Any CPU.Build.0 = Release|Any CPU
{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|x86.ActiveCfg = Release|Any CPU
{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7}.Release|x86.Build.0 = Release|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Debug|x86.Build.0 = Debug|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Proto|x86.ActiveCfg = Proto|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Proto|x86.Build.0 = Proto|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Release|Any CPU.Build.0 = Release|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Release|x86.ActiveCfg = Release|Any CPU
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210}.Release|x86.Build.0 = Release|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Debug|x86.ActiveCfg = Debug|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Debug|x86.Build.0 = Debug|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Proto|x86.ActiveCfg = Proto|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Proto|x86.Build.0 = Proto|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Release|Any CPU.Build.0 = Release|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Release|x86.ActiveCfg = Release|Any CPU
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87}.Release|x86.Build.0 = Release|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Debug|x86.ActiveCfg = Debug|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Debug|x86.Build.0 = Debug|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Proto|x86.ActiveCfg = Proto|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Proto|x86.Build.0 = Proto|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Release|Any CPU.Build.0 = Release|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Release|x86.ActiveCfg = Release|Any CPU
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5}.Release|x86.Build.0 = Release|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Debug|x86.ActiveCfg = Debug|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Debug|x86.Build.0 = Debug|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Proto|Any CPU.Build.0 = Proto|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Proto|x86.ActiveCfg = Proto|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Proto|x86.Build.0 = Proto|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Release|Any CPU.Build.0 = Release|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Release|x86.ActiveCfg = Release|Any CPU
- {DB374A0C-7560-479F-9B21-D37C81F7624F}.Release|x86.Build.0 = Release|Any CPU
{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4}.Debug|x86.ActiveCfg = Debug|Any CPU
@@ -816,6 +762,18 @@ Global
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|Any CPU.Build.0 = Release|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|x86.ActiveCfg = Release|Any CPU
{400FAB03-786E-40CC-85A8-04B0C2869B14}.Release|x86.Build.0 = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Debug|x86.Build.0 = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|Any CPU.Build.0 = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|x86.ActiveCfg = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Proto|x86.Build.0 = Debug|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|x86.ActiveCfg = Release|Any CPU
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -858,10 +816,6 @@ Global
{F7876C9B-FB6A-4EFB-B058-D6967DB75FB2} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{604F0DAA-2D33-48DD-B162-EDF0B672803D} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{01678CDA-A11F-4DEE-9344-2EDF91CF1AE7} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {1A8DBF70-4178-4AE3-AF5F-39DDD5692210} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {D9D95330-3626-4199-B7AF-17B8E4AF6D87} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {5B739CF3-1116-4EB4-B598-6C16BEA81CE5} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
- {DB374A0C-7560-479F-9B21-D37C81F7624F} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{2FACEE44-48BD-40B5-A2EE-B54A0C9BB7C4} = {C9B1D3F5-4971-4F04-9C26-37E3AC809AB4}
{F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
{6BA13AA4-C25F-480F-856B-8E8000299A72} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
@@ -883,6 +837,7 @@ Global
{FF76BD3C-5E0A-4752-B6C3-044F6E15719B} = {35636A82-401A-4C3A-B2AB-EB7DC5E9C268}
{0385564F-07B4-4264-AB8A-17C393E9140C} = {F6DAEE9A-8BE1-4C4A-BC83-09215517C7DA}
{400FAB03-786E-40CC-85A8-04B0C2869B14} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
+ {B0689A4E-07D8-494D-A0C8-791CB1D74E54} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {48EDBBBE-C8EE-4E3C-8B19-97184A487B37}
diff --git a/build-everything.proj b/build-everything.proj
index 2a6e2320e..07e2fcbc6 100644
--- a/build-everything.proj
+++ b/build-everything.proj
@@ -73,39 +73,54 @@
+
+
+
+
+
+
+
+ AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/build.cmd b/build.cmd
index 675b220fb..ed7968579 100644
--- a/build.cmd
+++ b/build.cmd
@@ -22,7 +22,7 @@ echo ^
echo ^
echo ^
echo ^
-echo ^
+echo ^
echo ^
echo ^
echo.
@@ -82,6 +82,7 @@ REM ------------------ Parse all arguments -----------------------
set _autoselect=1
set _autoselect_tests=0
+set no_test=0
set /a counter=0
for /l %%x in (1 1 9) do (
set /a counter=!counter!+1
@@ -296,6 +297,10 @@ if /i "%ARG%" == "test" (
set _autoselect_tests=1
)
+if /i "%ARG%" == "no-test" (
+ set no_test=1
+)
+
if /i "%ARG%" == "include" (
set /a counter=!counter!+1
if "!INCLUDE_TEST_SPEC_NUNIT!" == "" ( set INCLUDE_TEST_SPEC_NUNIT=cat == %ARG2% ) else (set INCLUDE_TEST_SPEC_NUNIT=cat == %ARG2% or !INCLUDE_TEST_SPEC_NUNIT! )
@@ -473,7 +478,7 @@ echo.
echo ---------------- Done with arguments, starting preparation -----------------
-set BuildToolsPackage=Microsoft.VSSDK.BuildTools.15.0.26201
+set BuildToolsPackage=Microsoft.VSSDK.BuildTools.15.1.192
if "%VSSDKInstall%"=="" (
set VSSDKInstall=%~dp0packages\%BuildToolsPackage%\tools\vssdk
)
@@ -584,6 +589,15 @@ if "%RestorePackages%" == "true" (
%_nugetexe% restore setup\packages.config !_nugetoptions!
@if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
)
+
+ set restore_fsharp_suite=0
+ if "%TEST_NET40_FSHARP_SUITE%" == "1" set restore_fsharp_suite=1
+ if "%TEST_CORECLR_FSHARP_SUITE%" == "1" set restore_fsharp_suite=1
+
+ if "!restore_fsharp_suite!" == "1" (
+ %_nugetexe% restore tests\fsharp\packages.config !_nugetoptions!
+ @if ERRORLEVEL 1 echo Error: Nuget restore failed && goto :failure
+ )
)
if "%BUILD_PROTO_WITH_CORECLR_LKG%" == "1" (
@@ -650,8 +664,11 @@ if "%BUILD_PROTO%" == "1" (
echo ---------------- Done with proto, starting build ------------------------
if "%BUILD_PHASE%" == "1" (
- echo %_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
- %_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
+ echo %_msbuildexe% %msbuildflags% build-everything.proj /t:Restore
+ %_msbuildexe% %msbuildflags% build-everything.proj /t:Restore
+
+ echo %_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
+ %_msbuildexe% %msbuildflags% build-everything.proj /p:Configuration=%BUILD_CONFIG% %BUILD_DIAG% /p:BUILD_PUBLICSIGN=%BUILD_PUBLICSIGN%
@if ERRORLEVEL 1 echo Error build failed && goto :failure
)
@@ -684,16 +701,6 @@ if not "%OSARCH%"=="x86" set REGEXE32BIT=%WINDIR%\syswow64\reg.exe
echo SDK environment vars from Registry
echo ==================================
-::See https://stackoverflow.com/a/17113667/111575 on 2^>NUL for suppressing the error "ERROR: The system was unable to find the specified registry key or value." from reg.exe, this fixes #3619
- FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.2\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\WOW6432Node\Microsoft\Microsoft SDKs\NETFXSDK\4.6.1\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\NETFXSDK\4.6\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.1A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v8.0A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.1\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-if "%WINSDKNETFXTOOLS%"=="" FOR /F "tokens=2* delims= " %%A IN ('%REGEXE32BIT% QUERY "HKLM\Software\Microsoft\Microsoft SDKs\Windows\v7.0A\WinSDK-NetFx40Tools" /v InstallationFolder 2^>NUL') DO SET WINSDKNETFXTOOLS=%%B
-
-set PATH=%PATH%;%WINSDKNETFXTOOLS%
for /d %%i in (%WINDIR%\Microsoft.NET\Framework\v4.0.?????) do set CORDIR=%%i
set PATH=%PATH%;%CORDIR%
@@ -701,7 +708,6 @@ set REGEXE32BIT=reg.exe
IF NOT DEFINED SNEXE32 IF EXIST "%WINSDKNETFXTOOLS%\sn.exe" set SNEXE32=%WINSDKNETFXTOOLS%sn.exe
IF NOT DEFINED SNEXE64 IF EXIST "%WINSDKNETFXTOOLS%x64\sn.exe" set SNEXE64=%WINSDKNETFXTOOLS%x64\sn.exe
-IF NOT DEFINED ildasm IF EXIST "%WINSDKNETFXTOOLS%\ildasm.exe" set ildasm=%WINSDKNETFXTOOLS%ildasm.exe
echo.
echo SDK environment vars
@@ -709,11 +715,12 @@ echo =======================
echo WINSDKNETFXTOOLS: %WINSDKNETFXTOOLS%
echo SNEXE32: %SNEXE32%
echo SNEXE64: %SNEXE64%
-echo ILDASM: %ILDASM%
echo
if "%TEST_NET40_COMPILERUNIT_SUITE%" == "0" if "%TEST_NET40_COREUNIT_SUITE%" == "0" if "%TEST_CORECLR_COREUNIT_SUITE%" == "0" if "%TEST_VS_IDEUNIT_SUITE%" == "0" if "%TEST_NET40_FSHARP_SUITE%" == "0" if "%TEST_NET40_FSHARPQA_SUITE%" == "0" goto :success
+if "%no_test%" == "1" goto :success
+
echo ---------------- Done with update, starting tests -----------------------
if NOT "%INCLUDE_TEST_SPEC_NUNIT%" == "" (
@@ -908,7 +915,7 @@ if "%TEST_CORECLR_FSHARP_SUITE%" == "1" (
set OUTPUTFILE=
set ERRORFILE=
set XMLFILE=!RESULTSDIR!\test-coreclr-fsharp-results.xml
- echo "%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Core.Unittests\FSharp.Core.Unittests.dll" !WHERE_ARG_NUNIT!
+ echo "%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll" !WHERE_ARG_NUNIT!
"%_dotnetcliexe%" "%~dp0tests\testbin\!BUILD_CONFIG!\coreclr\FSharp.Tests.FSharpSuite.DrivingCoreCLR\FSharp.Tests.FSharpSuite.DrivingCoreCLR.dll" !WHERE_ARG_NUNIT!
if errorlevel 1 (
diff --git a/build.sh b/build.sh
index c4bde8dee..2538263f7 100755
--- a/build.sh
+++ b/build.sh
@@ -29,7 +29,7 @@ build.sh ^
^
^
^
- ^
+ ^
^
^
@@ -104,6 +104,7 @@ export INCLUDE_TEST_TAGS=
# Set up variables used to determine whether we'll automatically select which
# targets to build/run/test. NOTE: These aren't exported, they're only used by this script.
+no_test=0
_autoselect=1
_autoselect_tests=0
@@ -250,6 +251,9 @@ do
"test")
_autoselect_tests=1
;;
+ "no-test")
+ no_test=1
+ ;;
"include")
failwith "The 'include' option is not (yet) supported by this script."
#export /a counter=!counter!+1
@@ -559,6 +563,11 @@ if [ "$TEST_NET40_COMPILERUNIT_SUITE" = '0' ] && [ "$TEST_PORTABLE_COREUNIT_SUIT
exit 0
fi
+if [ $no_test -eq 1 ]; then
+ # Successful build; not running tests so exit now.
+ exit 0
+fi
+
build_status "Done with update, starting tests"
if [ -n "$INCLUDE_TEST_SPEC_NUNIT" ]; then
diff --git a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
index d53494b86..e83bc805c 100644
--- a/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
+++ b/fcs/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj
@@ -17,7 +17,6 @@
LIBRARY58;75v4.6
- EXTENSIONTYPING;$(DefineConstants)false..\..\$(Configuration)\fcs\net45\true
@@ -71,6 +70,9 @@
ProjectOptionsTests.fs
+
+ StructureTests.fs
+
FSharp.Core.optdata
PreserveNewest
diff --git a/fcs/FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj b/fcs/FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj
index 3b8ed6361..0ebd29eea 100644
--- a/fcs/FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj
+++ b/fcs/FSharp.Compiler.Service.netstandard/FSharp.Compiler.Service.netstandard.fsproj
@@ -13,6 +13,7 @@
$(DefineConstants);COMPILER_SERVICE$(DefineConstants);COMPILER_SERVICE_ASSUMES_FSHARP_CORE_4_4_0_0$(DefineConstants);EXTENSIBLE_DUMPER
+ $(DefineConstants);NO_EXTENSIONTYPING$(DefineConstants);FSHARP_CORE_4_5$(DefineConstants);FX_PORTABLE_OR_NETSTANDARD$(DefineConstants);FX_ATLEAST_PORTABLE
@@ -62,7 +63,6 @@
$(DefineConstants);NO_LOGGING_GUI$(DefineConstants);FX_RESHAPED_MSBUILD$(DefineConstants);SIGNED
- $(DefineConstants);STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY$(DefineConstants);TODO_REWORK_ASSEMBLY_LOAD$(DefineConstants);TODO_REWORK_SERVER$(NoWarn);44;69;65;54;61;75;62;9;2003;
@@ -652,7 +652,7 @@
-
+
diff --git a/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj b/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
index 1d5057aae..eebbaa0a9 100644
--- a/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
+++ b/fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj
@@ -24,7 +24,6 @@
v4.5
- $(DefineConstants);EXTENSIONTYPING$(DefineConstants);CROSS_PLATFORM_COMPILER$(DefineConstants);ENABLE_MONO_SUPPORT$(DefineConstants);COMPILER
@@ -635,7 +634,7 @@
- $(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.PortablePdb.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.PortablePdb.1.2.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll$(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.dll
diff --git a/fcs/fcs.props b/fcs/fcs.props
index f1d16e7c8..88fb2f42a 100644
--- a/fcs/fcs.props
+++ b/fcs/fcs.props
@@ -9,5 +9,8 @@
$(FSharpSourcesRoot)\..\packages\FSharp.Compiler.Tools.4.1.27\toolsfsi.exe
+ 1.3.1
+ {HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
+
\ No newline at end of file
diff --git a/fcs/samples/FscExe/FscExe.fsproj b/fcs/samples/FscExe/FscExe.fsproj
index e0ef6ebd4..946034ec6 100644
--- a/fcs/samples/FscExe/FscExe.fsproj
+++ b/fcs/samples/FscExe/FscExe.fsproj
@@ -15,7 +15,6 @@
$(NoWarn);62;44FscExeFscExe
- EXTENSIONTYPING;$(DefineConstants)COMPILER;$(DefineConstants)FX_RESIDENT_COMPILER;$(DefineConstants)true
diff --git a/init-tools.cmd b/init-tools.cmd
index 111c8c80d..e8aaa61b9 100644
--- a/init-tools.cmd
+++ b/init-tools.cmd
@@ -26,6 +26,12 @@ if [%1]==[force] (
if exist "%PACKAGES_DIR%microsoft.dotnet.buildtools" rmdir /S /Q "%PACKAGES_DIR%microsoft.dotnet.buildtools"
)
+set /p DOTNET_TOOLS_VERSION=< "%~dp0DotnetCLIToolsVersion.txt"
+if not exist "%DOTNET_TOOLS_PATH%\sdk\%DOTNET_TOOLS_VERSION%" (
+ :: dotnet cli doesn't yet exist, delete the semaphore
+ del "%BUILD_TOOLS_SEMAPHORE%" >NUL 2>&1
+)
+
:: If sempahore exists do nothing
if exist "%BUILD_TOOLS_SEMAPHORE%" (
echo Tools are already initialized.
@@ -44,7 +50,6 @@ if NOT exist "%PROJECT_JSON_PATH%" mkdir "%PROJECT_JSON_PATH%"
echo %PROJECT_JSON_CONTENTS% > "%PROJECT_JSON_FILE%"
echo Running %0 > "%INIT_TOOLS_LOG%"
-set /p DOTNET_TOOLS_VERSION=< "%~dp0DotnetCLIToolsVersion.txt"
if exist "%DOTNET_TOOLS_PATH%" goto :afterdotnettoolsrestore
echo Installing dotnet OLD VERSION OF THE cli...
diff --git a/netci.groovy b/netci.groovy
index 2b6118e7d..cc7956a98 100644
--- a/netci.groovy
+++ b/netci.groovy
@@ -103,14 +103,14 @@ ${buildPath}build.cmd ${buildFlavor} ${build_args}""")
Utilities.setMachineAffinity(newJob, os, affinity)
Utilities.standardJobSetup(newJob, project, isPullRequest, "*/${branch}")
- if (build_args != "none") {
- Utilities.addArchival(newJob, "tests/TestResults/*.*", "", skipIfNoTestFiles, false)
- if (configuration == "Release_fcs") {
- Utilities.addArchival(newJob, "Release/fcs/**")
- }
- else {
- Utilities.addArchival(newJob, "${buildFlavor}/**")
- }
+ if (build_args != "none") {
+ Utilities.addArchival(newJob, "tests/TestResults/*.*", "", skipIfNoTestFiles, false)
+ if (configuration == "Release_fcs") {
+ Utilities.addArchival(newJob, "Release/**")
+ }
+ else {
+ Utilities.addArchival(newJob, "${buildFlavor}/**")
+ }
}
if (isPullRequest) {
Utilities.addGithubPRTriggerForBranch(newJob, branch, "${os} ${configuration} Build")
diff --git a/packages.config b/packages.config
index e9fa6e3ca..8ef434167 100644
--- a/packages.config
+++ b/packages.config
@@ -12,12 +12,12 @@
-
+
-
+
@@ -32,7 +32,7 @@
-
+
diff --git a/setup/FSharp.SDK/component-groups/Compiler_Redist.wxs b/setup/FSharp.SDK/component-groups/Compiler_Redist.wxs
index df7dcdc42..c9d7182c0 100644
--- a/setup/FSharp.SDK/component-groups/Compiler_Redist.wxs
+++ b/setup/FSharp.SDK/component-groups/Compiler_Redist.wxs
@@ -179,7 +179,7 @@
-
+
diff --git a/setup/fsharp-setup-build.proj b/setup/fsharp-setup-build.proj
index de9b4bfa2..520b614a1 100644
--- a/setup/fsharp-setup-build.proj
+++ b/setup/fsharp-setup-build.proj
@@ -57,22 +57,26 @@
+
+ AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
+
+ Properties="LocaleCode=%(WixSetupProjects.LocaleCode);LocaleId=%(WixSetupProjects.LocaleId);LocaleParentId=%(WixSetupProjects.LocaleParentId);LocaleParentCulture=%(WixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(WixSetupProjects.LocaleSpecificCulture);IsLangPack=%(WixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);$(CustomProps)"/>
+ Properties="IsLangPack=%(VsixProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);OutputPath=$(InsertionDir);$(CustomProps)" />
+ Properties="LocaleCode=%(SwixSetupProjects.LocaleCode);LocaleId=%(SwixSetupProjects.LocaleId);LocaleParentId=%(SwixSetupProjects.LocaleParentId);LocaleParentCulture=%(SwixSetupProjects.LocaleParentCulture);LocaleSpecificCulture=%(SwixSetupProjects.LocaleSpecificCulture);IsLangPack=%(SwixSetupProjects.IsLangPack);FSharpPackageVersion=$(FSharpPackageVersion);$(CustomProps)"/>
+ Targets="Build"
+ Properties="$(CustomProps)" />
diff --git a/setup/packages.config b/setup/packages.config
index 7248f3393..036cb4008 100644
--- a/setup/packages.config
+++ b/setup/packages.config
@@ -2,7 +2,7 @@
-
+
diff --git a/src/FSharpSource.Profiles.targets b/src/FSharpSource.Profiles.targets
index adafba0ea..f5725f270 100644
--- a/src/FSharpSource.Profiles.targets
+++ b/src/FSharpSource.Profiles.targets
@@ -3,7 +3,6 @@
- $(DefineConstants);CROSS_PLATFORM_COMPILER$(DefineConstants);PREFERRED_UI_LANG$(DefineConstants);ENABLE_MONO_SUPPORT$(DefineConstants);BE_SECURITY_TRANSPARENT
diff --git a/src/FSharpSource.Settings.targets b/src/FSharpSource.Settings.targets
index 5be5a8bd7..f208e2a07 100644
--- a/src/FSharpSource.Settings.targets
+++ b/src/FSharpSource.Settings.targets
@@ -36,7 +36,7 @@
15.015.0.262011.3.1
- Microsoft.VSSDK.BuildTools.15.0.26201
+ Microsoft.VSSDK.BuildTools.15.1.19215.3.2315.3.15
@@ -50,12 +50,24 @@
4.1.214.2.4
+ 3.5.0
+ 3.5.0.0
+ $(FSharpSourcesRoot)\..\packages\NUnit.$(NUnitVersion)\lib\net45
+ $(FSharpSourcesRoot)\..\packages\NUnit.ConsoleRunner\$(NUnitVersion)\tools\
+
true0.2.0-beta-000076
-
+
+ true
+ $(FSharpSourcesRoot)\fsharp\msft.pubkey
+ true
+ true
+
+
+ truefalsetrue
@@ -138,11 +150,6 @@
fslex.exefsyacc.exe
-
-
- v12.0
- 12.0.0.0
-
$(FSharpSourcesRoot)\..\packages\FSharp.Compiler.Tools.4.1.27\tools
diff --git a/src/FSharpSource.targets b/src/FSharpSource.targets
index 222dcf48c..7cf5b833c 100644
--- a/src/FSharpSource.targets
+++ b/src/FSharpSource.targets
@@ -25,24 +25,11 @@
fs
-
-
-
- $(FSharpSourcesRoot)\fsharp\test.snk
- STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY;$(DefineConstants)
- true
- $(FSCoreVersion)
- fs
-
-
- truetrue
- $(FSharpSourcesRoot)\fsharp\msft.pubkey
- STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)true$(FSCoreVersion)
@@ -57,7 +44,6 @@
true$(FSharpSourcesRoot)\fsharp\msft.pubkey
- STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)truetrue$(FSCoreVersion)
@@ -88,7 +74,7 @@
NO_STRONG_NAMES;$(DefineConstants)
-
+ MSBUILD_AT_LEAST_14;$(DefineConstants)
@@ -99,10 +85,6 @@
$(FSharpSourcesRoot)\..\packages
- 3.5.0
- 3.5.0.0
- $(FSharpSourcesRoot)\..\packages\NUnit.$(NUnitVersion)\lib\net45
- $(FSharpSourcesRoot)\..\packages\NUnit.ConsoleRunner\$(NUnitVersion)\tools\2.6.22.6.2.0$(FSharpSourcesRoot)\..\packages\FsCheck.$(FsCheckVersion)\lib\
@@ -156,7 +138,7 @@
$(FSharpSourcesRoot)\..\$(Configuration)\$(ProtoFlavour)\bin
- $(FSharpSourcesRoot)\..\Tools\dotnet20\sdk\2.0.0-preview2-006502\FSharp
+ $(FSharpSourcesRoot)\..\Tools\dotnet20\sdk\2.0.3-servicing-007056\FSharp..\packages\FSharp.Compiler.Tools.4.1.27\tools\Microsoft.FSharp.Targets
diff --git a/src/absil/il.fs b/src/absil/il.fs
index 1bed3442a..6f5f0d873 100644
--- a/src/absil/il.fs
+++ b/src/absil/il.fs
@@ -3384,10 +3384,10 @@ let decodeILAttribData (ilg: ILGlobals) (ca: ILAttribute) =
let n,sigptr = sigptr_get_i32 bytes sigptr
if n = 0xFFFFFFFF then ILAttribElem.Null,sigptr else
let rec parseElems acc n sigptr =
- if n = 0 then List.rev acc else
+ if n = 0 then List.rev acc, sigptr else
let v,sigptr = parseVal elemTy sigptr
parseElems (v ::acc) (n-1) sigptr
- let elems = parseElems [] n sigptr
+ let elems, sigptr = parseElems [] n sigptr
ILAttribElem.Array(elemTy,elems), sigptr
| ILType.Value _ -> (* assume it is an enumeration *)
let n,sigptr = sigptr_get_i32 bytes sigptr
@@ -3409,7 +3409,7 @@ let decodeILAttribData (ilg: ILGlobals) (ca: ILAttribute) =
let et,sigptr = sigptr_get_u8 bytes sigptr
// We have a named value
let ty,sigptr =
- if (0x50 = (int et) || 0x55 = (int et)) then
+ if ( (* 0x50 = (int et) || *) 0x55 = (int et)) then
let qualified_tname,sigptr = sigptr_get_serstring bytes sigptr
let unqualified_tname, rest =
let pieces = qualified_tname.Split(',')
diff --git a/src/absil/il.fsi b/src/absil/il.fsi
index 8b4743bb7..a46210522 100644
--- a/src/absil/il.fsi
+++ b/src/absil/il.fsi
@@ -287,7 +287,7 @@ type ILTypeRef =
member QualifiedName: string
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member QualifiedNameWithNoShortPrimaryAssembly: string
#endif
diff --git a/src/absil/illib.fs b/src/absil/illib.fs
index 976cc1ac2..b48b277a4 100644
--- a/src/absil/illib.fs
+++ b/src/absil/illib.fs
@@ -115,16 +115,6 @@ module Array =
Array.length l1 = Array.length l2 &&
Array.forall2 p l1 l2
- let mapFold f s l =
- let mutable acc = s
- let n = Array.length l
- let mutable res = Array.zeroCreate n
- for i = 0 to n - 1 do
- let h',s' = f acc l.[i]
- res.[i] <- h';
- acc <- s'
- res, acc
-
let order (eltOrder: IComparer<'T>) =
{ new IComparer> with
member __.Compare(xs,ys) =
@@ -449,15 +439,6 @@ module List =
match l with
| [] -> false
| h::t -> LanguagePrimitives.PhysicalEquality x h || memq x t
-
- // Not tail recursive
- let rec mapFoldBack f l s =
- match l with
- | [] -> ([],s)
- | h::t ->
- let t',s = mapFoldBack f t s
- let h',s = f h s
- (h'::t', s)
let mapNth n f xs =
let rec mn i = function
diff --git a/src/absil/ilread.fs b/src/absil/ilread.fs
index 1b7735b97..f4ea49eff 100644
--- a/src/absil/ilread.fs
+++ b/src/absil/ilread.fs
@@ -3206,50 +3206,50 @@ and seekReadManifestResources ctxt () =
yield r ])
-and seekReadNestedExportedTypes ctxt parentIdx =
+and seekReadNestedExportedTypes ctxt (exported: _ array) (nested: Lazy<_ array>) parentIdx =
mkILNestedExportedTypesLazy
(lazy
- [ for i = 1 to ctxt.getNumRows TableNames.ExportedType do
- let (flags, _tok, nameIdx, namespaceIdx, implIdx) = seekReadExportedTypeRow ctxt i
- if not (isTopTypeDef flags) then
- let (TaggedIndex(tag, idx) ) = implIdx
- //let isTopTypeDef = (idx = 0 || tag <> i_ExportedType)
- //if not isTopTypeDef then
- match tag with
- | tag when tag = i_ExportedType && idx = parentIdx ->
- let nm = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
- yield
- { Name=nm
- Access=(match typeAccessOfFlags flags with ILTypeDefAccess.Nested n -> n | _ -> failwith "non-nested access for a nested type described as being in an auxiliary module")
- Nested=seekReadNestedExportedTypes ctxt i
- CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) }
- | _ -> () ])
-
+ nested.Force().[parentIdx-1]
+ |> List.map (fun i ->
+ let (flags, _tok, nameIdx, namespaceIdx, _implIdx) = exported.[i-1]
+ { Name = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
+ Access = (match typeAccessOfFlags flags with
+ | ILTypeDefAccess.Nested n -> n
+ | _ -> failwith "non-nested access for a nested type described as being in an auxiliary module")
+ Nested = seekReadNestedExportedTypes ctxt exported nested i
+ CustomAttrs = seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) }
+ ))
+
and seekReadTopExportedTypes ctxt () =
mkILExportedTypesLazy
(lazy
- let res = ref []
- for i = 1 to ctxt.getNumRows TableNames.ExportedType do
- let (flags, _tok, nameIdx, namespaceIdx, implIdx) = seekReadExportedTypeRow ctxt i
- if isTopTypeDef flags then
- let (TaggedIndex(tag, _idx) ) = implIdx
-
- // the nested types will be picked up by their enclosing types
- if tag <> i_ExportedType then
- let nm = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
-
- let scoref = seekReadImplAsScopeRef ctxt implIdx
-
- let entry =
- { ScopeRef=scoref
- Name=nm
- IsForwarder = ((flags &&& 0x00200000) <> 0)
- Access=typeAccessOfFlags flags
- Nested=seekReadNestedExportedTypes ctxt i
- CustomAttrs=seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) }
- res := entry :: !res
- done
- List.rev !res)
+ let numRows = ctxt.getNumRows TableNames.ExportedType
+ let exported = [| for i in 1..numRows -> seekReadExportedTypeRow ctxt i |]
+
+ // add each nested type id to their parent's children list
+ let nested = lazy (
+ let nested = [| for _i in 1..numRows -> [] |]
+ for i = 1 to numRows do
+ let (flags,_,_,_,TaggedIndex(tag, idx)) = exported.[i-1]
+ if not (isTopTypeDef flags) && (tag = i_ExportedType) then
+ nested.[idx-1] <- i :: nested.[idx-1]
+ nested)
+
+ // return top exported types
+ [ for i = 1 to numRows do
+ let (flags, _tok, nameIdx, namespaceIdx, implIdx) = exported.[i-1]
+ let (TaggedIndex(tag, _idx)) = implIdx
+
+ // if not a nested type
+ if (isTopTypeDef flags) && (tag <> i_ExportedType) then
+ yield
+ { ScopeRef = seekReadImplAsScopeRef ctxt implIdx
+ Name = readBlobHeapAsTypeName ctxt (nameIdx, namespaceIdx)
+ IsForwarder = ((flags &&& 0x00200000) <> 0)
+ Access = typeAccessOfFlags flags
+ Nested = seekReadNestedExportedTypes ctxt exported nested i
+ CustomAttrs = seekReadCustomAttrs ctxt (TaggedIndex(hca_ExportedType, i)) }
+ ])
#if !FX_NO_PDB_READER
let getPdbReader opts infile =
diff --git a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Service.dll.fs b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Service.dll.fs
index 2ff140f9a..19ad354e7 100644
--- a/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Service.dll.fs
+++ b/src/assemblyinfo/assemblyinfo.FSharp.Compiler.Service.dll.fs
@@ -36,25 +36,7 @@ open System.Runtime.InteropServices
[]
[]
#endif
-#if STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-#endif
-#if STRONG_NAME_FSHARP_COMPILER_WITH_TEST_KEY
[]
[]
[]
@@ -69,7 +51,6 @@ open System.Runtime.InteropServices
[]
[]
[]
-#endif
// Until dotnet sdk can version assemblies, use this
#if BUILD_FROM_SOURCE
diff --git a/src/buildfromsource.cmd b/src/buildfromsource.cmd
index b18f616f0..3cb67b19a 100644
--- a/src/buildfromsource.cmd
+++ b/src/buildfromsource.cmd
@@ -3,11 +3,6 @@
set __scriptpath=%~dp0
rem build tools
-dotnet restore %__scriptpath%buildtools\fssrgen\fssrgen.fsproj
-if ERRORLEVEL 1 echo Error: failed && goto :failure
-dotnet publish %__scriptpath%buildtools\fssrgen\fssrgen.fsproj -o %__scriptpath%..\Tools\fssrgen
-if ERRORLEVEL 1 echo Error: failed && goto :failure
-
dotnet restore %__scriptpath%buildtools\fslex\fslex.fsproj
if ERRORLEVEL 1 echo Error: failed && goto :failure
dotnet publish %__scriptpath%buildtools\fslex\fslex.fsproj -o %__scriptpath%..\Tools\fslex
@@ -20,7 +15,7 @@ if ERRORLEVEL 1 echo Error: failed && goto :failure
rem build and pack tools
dotnet restore %__scriptpath%buildfromsource\FSharp.Compiler.nuget\FSharp.Compiler.nuget.fsproj
if ERRORLEVEL 1 echo Error: failed && goto :failure
-dotnet pack %__scriptpath%buildfromsource\FSharp.Compiler.nuget\FSharp.Compiler.nuget.fsproj -c debug
+dotnet pack %__scriptpath%buildfromsource\FSharp.Compiler.nuget\FSharp.Compiler.nuget.fsproj -c Release
if ERRORLEVEL 1 echo Error: failed && goto :failure
goto :success
diff --git a/src/buildfromsource.sh b/src/buildfromsource.sh
index ac21542c3..b12189ad0 100755
--- a/src/buildfromsource.sh
+++ b/src/buildfromsource.sh
@@ -3,8 +3,6 @@
__scriptpath=$(cd "$(dirname "$0")"; pwd -P)
# build tools
-dotnet restore $__scriptpath/buildtools/fssrgen/fssrgen.fsproj
-dotnet publish $__scriptpath/buildtools/fssrgen/fssrgen.fsproj -o $__scriptpath/../Tools/fssrgen
dotnet restore $__scriptpath/buildtools/fslex/fslex.fsproj
dotnet publish $__scriptpath/buildtools/fslex/fslex.fsproj -o $__scriptpath/../Tools/fslex
dotnet restore $__scriptpath/buildtools/fsyacc/fsyacc.fsproj
@@ -22,4 +20,4 @@ dotnet publish $__scriptpath/buildfromsource/Fsc/Fsc.fsproj
# build and pack tools
dotnet restore $__scriptpath/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj
-dotnet pack $__scriptpath/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj -c release
+dotnet pack $__scriptpath/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj -c Release
diff --git a/src/buildfromsource/BuildFromSource.targets b/src/buildfromsource/BuildFromSource.targets
index a42e1bd56..e69d59592 100644
--- a/src/buildfromsource/BuildFromSource.targets
+++ b/src/buildfromsource/BuildFromSource.targets
@@ -43,55 +43,12 @@
Condition="'$(DesignTimeBuild)' != 'true'">
-
-
- $([System.Text.RegularExpressions.Regex]::Replace($([System.IO.File]::ReadAllText("%(CopyAndSubstituteText.FullPath)")), "%(CopyAndSubstituteText.Pattern1)", "%(CopyAndSubstituteText.Replacement1)"))
-
-
- $([System.Text.RegularExpressions.Regex]::Replace($(FileText), "%(CopyAndSubstituteText.Pattern2)", "%(CopyAndSubstituteText.Replacement2)"))
-
-
-
-
-
-
-
-
-
-
-
- $(MSBuildThisFileDirectory)../../Tools/fssrgen/fssrgen.dll
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- %(FsSrGen.Filename)
- Resx
- false
-
+
+ $([System.Text.RegularExpressions.Regex]::Replace($([System.IO.File]::ReadAllText("%(CopyAndSubstituteText.FullPath)")), "%(CopyAndSubstituteText.Pattern1)", "%(CopyAndSubstituteText.Replacement1)"))
+ $([System.Text.RegularExpressions.Regex]::Replace($(FileText), "%(CopyAndSubstituteText.Pattern2)", "%(CopyAndSubstituteText.Replacement2)"))
+
+
diff --git a/src/buildfromsource/FSharp.Build/FSBuild.fs b/src/buildfromsource/FSharp.Build/FSBuild.fs
new file mode 100644
index 000000000..f4e36cd07
--- /dev/null
+++ b/src/buildfromsource/FSharp.Build/FSBuild.fs
@@ -0,0 +1,125 @@
+// This is a generated file; the original input is 'FSBuild.txt'
+namespace FSBuild
+
+open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
+open Microsoft.FSharp.Reflection
+open System.Reflection
+// (namespaces below for specific case of using the tool to compile FSharp.Core itself)
+open Microsoft.FSharp.Core
+open Microsoft.FSharp.Core.Operators
+open Microsoft.FSharp.Text
+open Microsoft.FSharp.Collections
+open Printf
+
+type internal SR private() =
+
+ // BEGIN BOILERPLATE
+
+ static let getCurrentAssembly () =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ typeof.GetTypeInfo().Assembly
+ #else
+ System.Reflection.Assembly.GetExecutingAssembly()
+ #endif
+
+ static let getTypeInfo (t: System.Type) =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ t.GetTypeInfo()
+ #else
+ t
+ #endif
+
+ static let resources = lazy (new System.Resources.ResourceManager("FSBuild", getCurrentAssembly()))
+
+ static let GetString(name:string) =
+ let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture)
+ #if DEBUG
+ if null = s then
+ System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name)
+ #endif
+ s
+
+ static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) =
+ FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl)
+
+ static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition()
+
+ static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer)
+ static let isFunctionType (ty1:System.Type) =
+ isNamedType(ty1) && getTypeInfo(ty1).IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC)
+
+ static let rec destFunTy (ty:System.Type) =
+ if isFunctionType ty then
+ ty, ty.GetGenericArguments()
+ else
+ match getTypeInfo(ty).BaseType with
+ | null -> failwith "destFunTy: not a function type"
+ | b -> destFunTy b
+
+ static let buildFunctionForOneArgPat (ty: System.Type) impl =
+ let _,tys = destFunTy ty
+ let rty = tys.[1]
+ // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"')
+ mkFunctionValue tys (fun inp -> impl rty inp)
+
+ static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj =
+ match fmt.[i] with
+ | '%' -> go args ty (i+1)
+ | 'd'
+ | 'f'
+ | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1))
+ | _ -> failwith "bad format specifier"
+
+ // newlines and tabs get converted to strings when read from a resource file
+ // this will preserve their original intention
+ static let postProcessString (s : string) =
+ s.Replace("\\n","\n").Replace("\\t","\t").Replace("\\r","\r").Replace("\\\"", "\"")
+
+ static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T =
+ let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt
+ let len = fmt.Length
+
+ /// Function to capture the arguments and then run.
+ let rec capture args ty i =
+ if i >= len || (fmt.[i] = '%' && i+1 >= len) then
+ let b = new System.Text.StringBuilder()
+ b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore
+ box(b.ToString())
+ // REVIEW: For these purposes, this should be a nop, but I'm leaving it
+ // in incase we ever decide to support labels for the error format string
+ // E.g., "%s%d"
+ elif System.Char.IsSurrogatePair(fmt,i) then
+ capture args ty (i+2)
+ else
+ match fmt.[i] with
+ | '%' ->
+ let i = i+1
+ capture1 fmt i args ty capture
+ | _ ->
+ capture args ty (i+1)
+
+ (unbox (capture [] (typeof<'T>) 0) : 'T)
+
+ static let mutable swallowResourceText = false
+
+ static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T =
+ if swallowResourceText then
+ sprintf fmt
+ else
+ let mutable messageString = GetString(messageID)
+ messageString <- postProcessString messageString
+ createMessageString messageString fmt
+
+ /// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines).
+ static member SwallowResourceText with get () = swallowResourceText
+ and set (b) = swallowResourceText <- b
+ // END BOILERPLATE
+
+ /// ToolPath is unknown; specify the path to fsc.exe as the ToolPath property.
+ /// (Originally from FSBuild.txt:2)
+ static member toolpathUnknown() = (GetStringFunc("toolpathUnknown",",,,") )
+
+ /// Call this method once to validate that all known resources are valid; throws if not
+ static member RunStartupValidation() =
+ ignore(GetString("toolpathUnknown"))
+ ()
diff --git a/src/buildfromsource/FSharp.Build/FSBuild.resx b/src/buildfromsource/FSharp.Build/FSBuild.resx
new file mode 100644
index 000000000..8ea57effe
--- /dev/null
+++ b/src/buildfromsource/FSharp.Build/FSBuild.resx
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ ToolPath is unknown; specify the path to fsc.exe as the ToolPath property.
+
+
\ No newline at end of file
diff --git a/src/buildfromsource/FSharp.Build/FSharp.Build.fsproj b/src/buildfromsource/FSharp.Build/FSharp.Build.fsproj
index 0d7c7c06c..0bbcd5021 100644
--- a/src/buildfromsource/FSharp.Build/FSharp.Build.fsproj
+++ b/src/buildfromsource/FSharp.Build/FSharp.Build.fsproj
@@ -13,17 +13,19 @@
-
+
+ FSBuild.resx
+
+
-
+
- Microsoft.FSharp.Targets
diff --git a/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.fs b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.fs
new file mode 100644
index 000000000..bc255ecfc
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.fs
@@ -0,0 +1,121 @@
+// This is a generated file; the original input is '..\FSInteractiveSettings.txt'
+namespace FSInteractiveSettings
+
+open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
+open Microsoft.FSharp.Reflection
+open System.Reflection
+// (namespaces below for specific case of using the tool to compile FSharp.Core itself)
+open Microsoft.FSharp.Core
+open Microsoft.FSharp.Core.Operators
+open Microsoft.FSharp.Text
+open Microsoft.FSharp.Collections
+open Printf
+
+type internal SR private() =
+
+ // BEGIN BOILERPLATE
+
+ static let getCurrentAssembly () =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ typeof.GetTypeInfo().Assembly
+ #else
+ System.Reflection.Assembly.GetExecutingAssembly()
+ #endif
+
+ static let getTypeInfo (t: System.Type) =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ t.GetTypeInfo()
+ #else
+ t
+ #endif
+
+ static let resources = lazy (new System.Resources.ResourceManager("FSInteractiveSettings", getCurrentAssembly()))
+
+ static let GetString(name:string) =
+ let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture)
+ #if DEBUG
+ if null = s then
+ System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name)
+ #endif
+ s
+
+ static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) =
+ FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl)
+
+ static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition()
+
+ static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer)
+ static let isFunctionType (ty1:System.Type) =
+ isNamedType(ty1) && getTypeInfo(ty1).IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC)
+
+ static let rec destFunTy (ty:System.Type) =
+ if isFunctionType ty then
+ ty, ty.GetGenericArguments()
+ else
+ match getTypeInfo(ty).BaseType with
+ | null -> failwith "destFunTy: not a function type"
+ | b -> destFunTy b
+
+ static let buildFunctionForOneArgPat (ty: System.Type) impl =
+ let _,tys = destFunTy ty
+ let rty = tys.[1]
+ // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"')
+ mkFunctionValue tys (fun inp -> impl rty inp)
+
+ static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj =
+ match fmt.[i] with
+ | '%' -> go args ty (i+1)
+ | 'd'
+ | 'f'
+ | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1))
+ | _ -> failwith "bad format specifier"
+
+ // newlines and tabs get converted to strings when read from a resource file
+ // this will preserve their original intention
+ static let postProcessString (s : string) =
+ s.Replace("\\n","\n").Replace("\\t","\t").Replace("\\r","\r").Replace("\\\"", "\"")
+
+ static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T =
+ let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt
+ let len = fmt.Length
+
+ /// Function to capture the arguments and then run.
+ let rec capture args ty i =
+ if i >= len || (fmt.[i] = '%' && i+1 >= len) then
+ let b = new System.Text.StringBuilder()
+ b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore
+ box(b.ToString())
+ // REVIEW: For these purposes, this should be a nop, but I'm leaving it
+ // in incase we ever decide to support labels for the error format string
+ // E.g., "%s%d"
+ elif System.Char.IsSurrogatePair(fmt,i) then
+ capture args ty (i+2)
+ else
+ match fmt.[i] with
+ | '%' ->
+ let i = i+1
+ capture1 fmt i args ty capture
+ | _ ->
+ capture args ty (i+1)
+
+ (unbox (capture [] (typeof<'T>) 0) : 'T)
+
+ static let mutable swallowResourceText = false
+
+ static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T =
+ if swallowResourceText then
+ sprintf fmt
+ else
+ let mutable messageString = GetString(messageID)
+ messageString <- postProcessString messageString
+ createMessageString messageString fmt
+
+ /// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines).
+ static member SwallowResourceText with get () = swallowResourceText
+ and set (b) = swallowResourceText <- b
+ // END BOILERPLATE
+
+
+ /// Call this method once to validate that all known resources are valid; throws if not
+ static member RunStartupValidation() =
+ ()
diff --git a/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.resx b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.resx
new file mode 100644
index 000000000..62a9bb5b8
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSInteractiveSettings.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index cc34966a1..e8a37a4ac 100644
--- a/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/buildfromsource/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -9,13 +9,15 @@
$(NoWarn);45;55;62;75;1182;1204truetrue
- EXTENSIONTYPING;$(DefineConstants)$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
-
+
+ FSInteractiveSettings.resx
+
+
diff --git a/src/buildfromsource/FSharp.Compiler.Private/FSComp.fs b/src/buildfromsource/FSharp.Compiler.Private/FSComp.fs
new file mode 100644
index 000000000..abc321272
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Private/FSComp.fs
@@ -0,0 +1,5701 @@
+// This is a generated file; the original input is '..\FSComp.txt'
+namespace FSComp
+
+open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
+open Microsoft.FSharp.Reflection
+open System.Reflection
+// (namespaces below for specific case of using the tool to compile FSharp.Core itself)
+open Microsoft.FSharp.Core
+open Microsoft.FSharp.Core.Operators
+open Microsoft.FSharp.Text
+open Microsoft.FSharp.Collections
+open Printf
+
+type internal SR private() =
+
+ // BEGIN BOILERPLATE
+
+ static let getCurrentAssembly () =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ typeof.GetTypeInfo().Assembly
+ #else
+ System.Reflection.Assembly.GetExecutingAssembly()
+ #endif
+
+ static let getTypeInfo (t: System.Type) =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ t.GetTypeInfo()
+ #else
+ t
+ #endif
+
+ static let resources = lazy (new System.Resources.ResourceManager("FSComp", getCurrentAssembly()))
+
+ static let GetString(name:string) =
+ let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture)
+ #if DEBUG
+ if null = s then
+ System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name)
+ #endif
+ s
+
+ static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) =
+ FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl)
+
+ static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition()
+
+ static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer)
+ static let isFunctionType (ty1:System.Type) =
+ isNamedType(ty1) && getTypeInfo(ty1).IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC)
+
+ static let rec destFunTy (ty:System.Type) =
+ if isFunctionType ty then
+ ty, ty.GetGenericArguments()
+ else
+ match getTypeInfo(ty).BaseType with
+ | null -> failwith "destFunTy: not a function type"
+ | b -> destFunTy b
+
+ static let buildFunctionForOneArgPat (ty: System.Type) impl =
+ let _,tys = destFunTy ty
+ let rty = tys.[1]
+ // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"')
+ mkFunctionValue tys (fun inp -> impl rty inp)
+
+ static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj =
+ match fmt.[i] with
+ | '%' -> go args ty (i+1)
+ | 'd'
+ | 'f'
+ | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1))
+ | _ -> failwith "bad format specifier"
+
+ // newlines and tabs get converted to strings when read from a resource file
+ // this will preserve their original intention
+ static let postProcessString (s : string) =
+ s.Replace("\\n","\n").Replace("\\t","\t").Replace("\\r","\r").Replace("\\\"", "\"")
+
+ static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T =
+ let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt
+ let len = fmt.Length
+
+ /// Function to capture the arguments and then run.
+ let rec capture args ty i =
+ if i >= len || (fmt.[i] = '%' && i+1 >= len) then
+ let b = new System.Text.StringBuilder()
+ b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore
+ box(b.ToString())
+ // REVIEW: For these purposes, this should be a nop, but I'm leaving it
+ // in incase we ever decide to support labels for the error format string
+ // E.g., "%s%d"
+ elif System.Char.IsSurrogatePair(fmt,i) then
+ capture args ty (i+2)
+ else
+ match fmt.[i] with
+ | '%' ->
+ let i = i+1
+ capture1 fmt i args ty capture
+ | _ ->
+ capture args ty (i+1)
+
+ (unbox (capture [] (typeof<'T>) 0) : 'T)
+
+ static let mutable swallowResourceText = false
+
+ static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T =
+ if swallowResourceText then
+ sprintf fmt
+ else
+ let mutable messageString = GetString(messageID)
+ messageString <- postProcessString messageString
+ createMessageString messageString fmt
+
+ /// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines).
+ static member SwallowResourceText with get () = swallowResourceText
+ and set (b) = swallowResourceText <- b
+ // END BOILERPLATE
+
+ /// The namespace '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:4)
+ static member undefinedNameNamespace(a0 : System.String) = (GetStringFunc("undefinedNameNamespace",",,,%s,,,") a0)
+ /// The namespace or module '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:5)
+ static member undefinedNameNamespaceOrModule(a0 : System.String) = (GetStringFunc("undefinedNameNamespaceOrModule",",,,%s,,,") a0)
+ /// The field, constructor or member '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:6)
+ static member undefinedNameFieldConstructorOrMember(a0 : System.String) = (GetStringFunc("undefinedNameFieldConstructorOrMember",",,,%s,,,") a0)
+ /// The value, constructor, namespace or type '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:7)
+ static member undefinedNameValueConstructorNamespaceOrType(a0 : System.String) = (GetStringFunc("undefinedNameValueConstructorNamespaceOrType",",,,%s,,,") a0)
+ /// The value or constructor '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:8)
+ static member undefinedNameValueOfConstructor(a0 : System.String) = (GetStringFunc("undefinedNameValueOfConstructor",",,,%s,,,") a0)
+ /// The value, namespace, type or module '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:9)
+ static member undefinedNameValueNamespaceTypeOrModule(a0 : System.String) = (GetStringFunc("undefinedNameValueNamespaceTypeOrModule",",,,%s,,,") a0)
+ /// The constructor, module or namespace '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:10)
+ static member undefinedNameConstructorModuleOrNamespace(a0 : System.String) = (GetStringFunc("undefinedNameConstructorModuleOrNamespace",",,,%s,,,") a0)
+ /// The type '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:11)
+ static member undefinedNameType(a0 : System.String) = (GetStringFunc("undefinedNameType",",,,%s,,,") a0)
+ /// The type '%s' is not defined in '%s'.
+ /// (Originally from ..\FSComp.txt:12)
+ static member undefinedNameTypeIn(a0 : System.String, a1 : System.String) = (GetStringFunc("undefinedNameTypeIn",",,,%s,,,%s,,,") a0 a1)
+ /// The record label or namespace '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:13)
+ static member undefinedNameRecordLabelOrNamespace(a0 : System.String) = (GetStringFunc("undefinedNameRecordLabelOrNamespace",",,,%s,,,") a0)
+ /// The record label '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:14)
+ static member undefinedNameRecordLabel(a0 : System.String) = (GetStringFunc("undefinedNameRecordLabel",",,,%s,,,") a0)
+ /// Maybe you want one of the following:
+ /// (Originally from ..\FSComp.txt:15)
+ static member undefinedNameSuggestionsIntro() = (GetStringFunc("undefinedNameSuggestionsIntro",",,,") )
+ /// The type parameter %s is not defined.
+ /// (Originally from ..\FSComp.txt:16)
+ static member undefinedNameTypeParameter(a0 : System.String) = (GetStringFunc("undefinedNameTypeParameter",",,,%s,,,") a0)
+ /// The pattern discriminator '%s' is not defined.
+ /// (Originally from ..\FSComp.txt:17)
+ static member undefinedNamePatternDiscriminator(a0 : System.String) = (GetStringFunc("undefinedNamePatternDiscriminator",",,,%s,,,") a0)
+ /// Replace with '%s'
+ /// (Originally from ..\FSComp.txt:18)
+ static member replaceWithSuggestion(a0 : System.String) = (GetStringFunc("replaceWithSuggestion",",,,%s,,,") a0)
+ /// Add . for indexer access.
+ /// (Originally from ..\FSComp.txt:19)
+ static member addIndexerDot() = (GetStringFunc("addIndexerDot",",,,") )
+ /// All elements of a list constructor expression must have the same type. This expression was expected to have type '%s', but here has type '%s'.
+ /// (Originally from ..\FSComp.txt:20)
+ static member listElementHasWrongType(a0 : System.String, a1 : System.String) = (GetStringFunc("listElementHasWrongType",",,,%s,,,%s,,,") a0 a1)
+ /// All elements of an array constructor expression must have the same type. This expression was expected to have type '%s', but here has type '%s'.
+ /// (Originally from ..\FSComp.txt:21)
+ static member arrayElementHasWrongType(a0 : System.String, a1 : System.String) = (GetStringFunc("arrayElementHasWrongType",",,,%s,,,%s,,,") a0 a1)
+ /// The 'if' expression is missing an 'else' branch. The 'then' branch has type '%s'. Because 'if' is an expression, and not a statement, add an 'else' branch which returns a value of the same type.
+ /// (Originally from ..\FSComp.txt:22)
+ static member missingElseBranch(a0 : System.String) = (GetStringFunc("missingElseBranch",",,,%s,,,") a0)
+ /// The 'if' expression needs to have type '%s' to satisfy context type requirements. It currently has type '%s'.
+ /// (Originally from ..\FSComp.txt:23)
+ static member ifExpression(a0 : System.String, a1 : System.String) = (GetStringFunc("ifExpression",",,,%s,,,%s,,,") a0 a1)
+ /// All branches of an 'if' expression must have the same type. This expression was expected to have type '%s', but here has type '%s'.
+ /// (Originally from ..\FSComp.txt:24)
+ static member elseBranchHasWrongType(a0 : System.String, a1 : System.String) = (GetStringFunc("elseBranchHasWrongType",",,,%s,,,%s,,,") a0 a1)
+ /// All branches of a pattern match expression must have the same type. This expression was expected to have type '%s', but here has type '%s'.
+ /// (Originally from ..\FSComp.txt:25)
+ static member followingPatternMatchClauseHasWrongType(a0 : System.String, a1 : System.String) = (GetStringFunc("followingPatternMatchClauseHasWrongType",",,,%s,,,%s,,,") a0 a1)
+ /// A pattern match guard must be of type 'bool', but this 'when' expression is of type '%s'.
+ /// (Originally from ..\FSComp.txt:26)
+ static member patternMatchGuardIsNotBool(a0 : System.String) = (GetStringFunc("patternMatchGuardIsNotBool",",,,%s,,,") a0)
+ /// A ';' is used to separate field values in records. Consider replacing ',' with ';'.
+ /// (Originally from ..\FSComp.txt:27)
+ static member commaInsteadOfSemicolonInRecord() = (GetStringFunc("commaInsteadOfSemicolonInRecord",",,,") )
+ /// The '!' operator is used to dereference a ref cell. Consider using 'not expr' here.
+ /// (Originally from ..\FSComp.txt:28)
+ static member derefInsteadOfNot() = (GetStringFunc("derefInsteadOfNot",",,,") )
+ /// The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s)
+ /// (Originally from ..\FSComp.txt:29)
+ static member buildUnexpectedTypeArgs(a0 : System.String, a1 : System.Int32) = (GetStringFunc("buildUnexpectedTypeArgs",",,,%s,,,%d,,,") a0 a1)
+ /// Consider using 'return!' instead of 'return'.
+ /// (Originally from ..\FSComp.txt:30)
+ static member returnUsedInsteadOfReturnBang() = (GetStringFunc("returnUsedInsteadOfReturnBang",",,,") )
+ /// Consider using 'yield!' instead of 'yield'.
+ /// (Originally from ..\FSComp.txt:31)
+ static member yieldUsedInsteadOfYieldBang() = (GetStringFunc("yieldUsedInsteadOfYieldBang",",,,") )
+ /// \nA tuple type is required for one or more arguments. Consider wrapping the given arguments in additional parentheses or review the definition of the interface.
+ /// (Originally from ..\FSComp.txt:32)
+ static member tupleRequiredInAbstractMethod() = (GetStringFunc("tupleRequiredInAbstractMethod",",,,") )
+ /// Invalid warning number '%s'
+ /// (Originally from ..\FSComp.txt:33)
+ static member buildInvalidWarningNumber(a0 : System.String) = (203, GetStringFunc("buildInvalidWarningNumber",",,,%s,,,") a0)
+ /// Invalid version string '%s'
+ /// (Originally from ..\FSComp.txt:34)
+ static member buildInvalidVersionString(a0 : System.String) = (204, GetStringFunc("buildInvalidVersionString",",,,%s,,,") a0)
+ /// Invalid version file '%s'
+ /// (Originally from ..\FSComp.txt:35)
+ static member buildInvalidVersionFile(a0 : System.String) = (205, GetStringFunc("buildInvalidVersionFile",",,,%s,,,") a0)
+ /// Microsoft (R) F# Compiler version %s
+ /// (Originally from ..\FSComp.txt:36)
+ static member buildProductName(a0 : System.String) = (GetStringFunc("buildProductName",",,,%s,,,") a0)
+ /// F# Compiler for F# %s
+ /// (Originally from ..\FSComp.txt:37)
+ static member buildProductNameCommunity(a0 : System.String) = (GetStringFunc("buildProductNameCommunity",",,,%s,,,") a0)
+ /// Problem with filename '%s': %s
+ /// (Originally from ..\FSComp.txt:38)
+ static member buildProblemWithFilename(a0 : System.String, a1 : System.String) = (206, GetStringFunc("buildProblemWithFilename",",,,%s,,,%s,,,") a0 a1)
+ /// No inputs specified
+ /// (Originally from ..\FSComp.txt:39)
+ static member buildNoInputsSpecified() = (207, GetStringFunc("buildNoInputsSpecified",",,,") )
+ /// The '--pdb' option requires the '--debug' option to be used
+ /// (Originally from ..\FSComp.txt:40)
+ static member buildPdbRequiresDebug() = (209, GetStringFunc("buildPdbRequiresDebug",",,,") )
+ /// The search directory '%s' is invalid
+ /// (Originally from ..\FSComp.txt:41)
+ static member buildInvalidSearchDirectory(a0 : System.String) = (210, GetStringFunc("buildInvalidSearchDirectory",",,,%s,,,") a0)
+ /// The search directory '%s' could not be found
+ /// (Originally from ..\FSComp.txt:42)
+ static member buildSearchDirectoryNotFound(a0 : System.String) = (211, GetStringFunc("buildSearchDirectoryNotFound",",,,%s,,,") a0)
+ /// '%s' is not a valid filename
+ /// (Originally from ..\FSComp.txt:43)
+ static member buildInvalidFilename(a0 : System.String) = (212, GetStringFunc("buildInvalidFilename",",,,%s,,,") a0)
+ /// '%s' is not a valid assembly name
+ /// (Originally from ..\FSComp.txt:44)
+ static member buildInvalidAssemblyName(a0 : System.String) = (213, GetStringFunc("buildInvalidAssemblyName",",,,%s,,,") a0)
+ /// Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private'
+ /// (Originally from ..\FSComp.txt:45)
+ static member buildInvalidPrivacy(a0 : System.String) = (214, GetStringFunc("buildInvalidPrivacy",",,,%s,,,") a0)
+ /// Multiple references to '%s.dll' are not permitted
+ /// (Originally from ..\FSComp.txt:46)
+ static member buildMultipleReferencesNotAllowed(a0 : System.String) = (215, GetStringFunc("buildMultipleReferencesNotAllowed",",,,%s,,,") a0)
+ /// Could not read version from mscorlib.dll
+ /// (Originally from ..\FSComp.txt:47)
+ static member buildCouldNotReadVersionInfoFromMscorlib() = (GetStringFunc("buildCouldNotReadVersionInfoFromMscorlib",",,,") )
+ /// Unable to read assembly '%s'
+ /// (Originally from ..\FSComp.txt:48)
+ static member buildCannotReadAssembly(a0 : System.String) = (218, GetStringFunc("buildCannotReadAssembly",",,,%s,,,") a0)
+ /// Assembly resolution failure at or near this location
+ /// (Originally from ..\FSComp.txt:49)
+ static member buildAssemblyResolutionFailed() = (220, GetStringFunc("buildAssemblyResolutionFailed",",,,") )
+ /// The declarations in this file will be placed in an implicit module '%s' based on the file name '%s'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file.
+ /// (Originally from ..\FSComp.txt:50)
+ static member buildImplicitModuleIsNotLegalIdentifier(a0 : System.String, a1 : System.String) = (221, GetStringFunc("buildImplicitModuleIsNotLegalIdentifier",",,,%s,,,%s,,,") a0 a1)
+ /// Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule'. Only the last source file of an application may omit such a declaration.
+ /// (Originally from ..\FSComp.txt:51)
+ static member buildMultiFileRequiresNamespaceOrModule() = (222, GetStringFunc("buildMultiFileRequiresNamespaceOrModule",",,,") )
+ /// Files in libraries or multiple-file applications must begin with a namespace or module declaration. When using a module declaration at the start of a file the '=' sign is not allowed. If this is a top-level module, consider removing the = to resolve this error.
+ /// (Originally from ..\FSComp.txt:52)
+ static member noEqualSignAfterModule() = (222, GetStringFunc("noEqualSignAfterModule",",,,") )
+ /// This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules.
+ /// (Originally from ..\FSComp.txt:53)
+ static member buildMultipleToplevelModules() = (223, GetStringFunc("buildMultipleToplevelModules",",,,") )
+ /// Option requires parameter: %s
+ /// (Originally from ..\FSComp.txt:54)
+ static member buildOptionRequiresParameter(a0 : System.String) = (224, GetStringFunc("buildOptionRequiresParameter",",,,%s,,,") a0)
+ /// Source file '%s' could not be found
+ /// (Originally from ..\FSComp.txt:55)
+ static member buildCouldNotFindSourceFile(a0 : System.String) = (225, GetStringFunc("buildCouldNotFindSourceFile",",,,%s,,,") a0)
+ /// The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli.
+ /// (Originally from ..\FSComp.txt:56)
+ static member buildInvalidSourceFileExtension(a0 : System.String) = (226, GetStringFunc("buildInvalidSourceFileExtension",",,,%s,,,") a0)
+ /// Could not resolve assembly '%s'
+ /// (Originally from ..\FSComp.txt:57)
+ static member buildCouldNotResolveAssembly(a0 : System.String) = (227, GetStringFunc("buildCouldNotResolveAssembly",",,,%s,,,") a0)
+ /// Could not resolve assembly '%s' required by '%s'
+ /// (Originally from ..\FSComp.txt:58)
+ static member buildCouldNotResolveAssemblyRequiredByFile(a0 : System.String, a1 : System.String) = (228, GetStringFunc("buildCouldNotResolveAssemblyRequiredByFile",",,,%s,,,%s,,,") a0 a1)
+ /// Error opening binary file '%s': %s
+ /// (Originally from ..\FSComp.txt:59)
+ static member buildErrorOpeningBinaryFile(a0 : System.String, a1 : System.String) = (229, GetStringFunc("buildErrorOpeningBinaryFile",",,,%s,,,%s,,,") a0 a1)
+ /// The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F#
+ /// (Originally from ..\FSComp.txt:60)
+ static member buildDifferentVersionMustRecompile(a0 : System.String) = (231, GetStringFunc("buildDifferentVersionMustRecompile",",,,%s,,,") a0)
+ /// Invalid directive. Expected '#I \"\"'.
+ /// (Originally from ..\FSComp.txt:61)
+ static member buildInvalidHashIDirective() = (232, GetStringFunc("buildInvalidHashIDirective",",,,") )
+ /// Invalid directive. Expected '#r \"\"'.
+ /// (Originally from ..\FSComp.txt:62)
+ static member buildInvalidHashrDirective() = (233, GetStringFunc("buildInvalidHashrDirective",",,,") )
+ /// Invalid directive. Expected '#load \"\" ... \"\"'.
+ /// (Originally from ..\FSComp.txt:63)
+ static member buildInvalidHashloadDirective() = (234, GetStringFunc("buildInvalidHashloadDirective",",,,") )
+ /// Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'.
+ /// (Originally from ..\FSComp.txt:64)
+ static member buildInvalidHashtimeDirective() = (235, GetStringFunc("buildInvalidHashtimeDirective",",,,") )
+ /// Directives inside modules are ignored
+ /// (Originally from ..\FSComp.txt:65)
+ static member buildDirectivesInModulesAreIgnored() = (236, GetStringFunc("buildDirectivesInModulesAreIgnored",",,,") )
+ /// A signature for the file or module '%s' has already been specified
+ /// (Originally from ..\FSComp.txt:66)
+ static member buildSignatureAlreadySpecified(a0 : System.String) = (237, GetStringFunc("buildSignatureAlreadySpecified",",,,%s,,,") a0)
+ /// An implementation of file or module '%s' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer.
+ /// (Originally from ..\FSComp.txt:67)
+ static member buildImplementationAlreadyGivenDetail(a0 : System.String) = (238, GetStringFunc("buildImplementationAlreadyGivenDetail",",,,%s,,,") a0)
+ /// An implementation of the file or module '%s' has already been given
+ /// (Originally from ..\FSComp.txt:68)
+ static member buildImplementationAlreadyGiven(a0 : System.String) = (239, GetStringFunc("buildImplementationAlreadyGiven",",,,%s,,,") a0)
+ /// The signature file '%s' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match.
+ /// (Originally from ..\FSComp.txt:69)
+ static member buildSignatureWithoutImplementation(a0 : System.String) = (240, GetStringFunc("buildSignatureWithoutImplementation",",,,%s,,,") a0)
+ /// '%s' is not a valid integer argument
+ /// (Originally from ..\FSComp.txt:70)
+ static member buildArgInvalidInt(a0 : System.String) = (241, GetStringFunc("buildArgInvalidInt",",,,%s,,,") a0)
+ /// '%s' is not a valid floating point argument
+ /// (Originally from ..\FSComp.txt:71)
+ static member buildArgInvalidFloat(a0 : System.String) = (242, GetStringFunc("buildArgInvalidFloat",",,,%s,,,") a0)
+ /// Unrecognized option: '%s'
+ /// (Originally from ..\FSComp.txt:72)
+ static member buildUnrecognizedOption(a0 : System.String) = (243, GetStringFunc("buildUnrecognizedOption",",,,%s,,,") a0)
+ /// Invalid module or namespace name
+ /// (Originally from ..\FSComp.txt:73)
+ static member buildInvalidModuleOrNamespaceName() = (244, GetStringFunc("buildInvalidModuleOrNamespaceName",",,,") )
+ /// Error reading/writing metadata for the F# compiled DLL '%s'. Was the DLL compiled with an earlier version of the F# compiler? (error: '%s').
+ /// (Originally from ..\FSComp.txt:74)
+ static member pickleErrorReadingWritingMetadata(a0 : System.String, a1 : System.String) = (GetStringFunc("pickleErrorReadingWritingMetadata",",,,%s,,,%s,,,") a0 a1)
+ /// The type/module '%s' is not a concrete module or type
+ /// (Originally from ..\FSComp.txt:75)
+ static member tastTypeOrModuleNotConcrete(a0 : System.String) = (245, GetStringFunc("tastTypeOrModuleNotConcrete",",,,%s,,,") a0)
+ /// The type '%s' has an inline assembly code representation
+ /// (Originally from ..\FSComp.txt:76)
+ static member tastTypeHasAssemblyCodeRepresentation(a0 : System.String) = (GetStringFunc("tastTypeHasAssemblyCodeRepresentation",",,,%s,,,") a0)
+ /// A namespace and a module named '%s' both occur in two parts of this assembly
+ /// (Originally from ..\FSComp.txt:77)
+ static member tastNamespaceAndModuleWithSameNameInAssembly(a0 : System.String) = (247, GetStringFunc("tastNamespaceAndModuleWithSameNameInAssembly",",,,%s,,,") a0)
+ /// Two modules named '%s' occur in two parts of this assembly
+ /// (Originally from ..\FSComp.txt:78)
+ static member tastTwoModulesWithSameNameInAssembly(a0 : System.String) = (248, GetStringFunc("tastTwoModulesWithSameNameInAssembly",",,,%s,,,") a0)
+ /// Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly
+ /// (Originally from ..\FSComp.txt:79)
+ static member tastDuplicateTypeDefinitionInAssembly(a0 : System.String, a1 : System.String) = (249, GetStringFunc("tastDuplicateTypeDefinitionInAssembly",",,,%s,,,%s,,,") a0 a1)
+ /// A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly
+ /// (Originally from ..\FSComp.txt:80)
+ static member tastConflictingModuleAndTypeDefinitionInAssembly(a0 : System.String, a1 : System.String) = (250, GetStringFunc("tastConflictingModuleAndTypeDefinitionInAssembly",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid member signature encountered because of an earlier error
+ /// (Originally from ..\FSComp.txt:81)
+ static member tastInvalidMemberSignature() = (251, GetStringFunc("tastInvalidMemberSignature",",,,") )
+ /// This value does not have a valid property setter type
+ /// (Originally from ..\FSComp.txt:82)
+ static member tastValueDoesNotHaveSetterType() = (252, GetStringFunc("tastValueDoesNotHaveSetterType",",,,") )
+ /// Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax.
+ /// (Originally from ..\FSComp.txt:83)
+ static member tastInvalidFormForPropertyGetter() = (253, GetStringFunc("tastInvalidFormForPropertyGetter",",,,") )
+ /// Invalid form for a property setter. At least one argument is required.
+ /// (Originally from ..\FSComp.txt:84)
+ static member tastInvalidFormForPropertySetter() = (254, GetStringFunc("tastInvalidFormForPropertySetter",",,,") )
+ /// Unexpected use of a byref-typed variable
+ /// (Originally from ..\FSComp.txt:85)
+ static member tastUnexpectedByRef() = (255, GetStringFunc("tastUnexpectedByRef",",,,") )
+ /// A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...'
+ /// (Originally from ..\FSComp.txt:86)
+ static member tastValueMustBeLocalAndMutable() = (256, GetStringFunc("tastValueMustBeLocalAndMutable",",,,") )
+ /// Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'.
+ /// (Originally from ..\FSComp.txt:87)
+ static member tastInvalidMutationOfConstant() = (257, GetStringFunc("tastInvalidMutationOfConstant",",,,") )
+ /// The value has been copied to ensure the original is not mutated by this operation or because the copy is implicit when returning a struct from a member and another member is then accessed
+ /// (Originally from ..\FSComp.txt:88)
+ static member tastValueHasBeenCopied() = (GetStringFunc("tastValueHasBeenCopied",",,,") )
+ /// Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding
+ /// (Originally from ..\FSComp.txt:89)
+ static member tastRecursiveValuesMayNotBeInConstructionOfTuple() = (259, GetStringFunc("tastRecursiveValuesMayNotBeInConstructionOfTuple",",,,") )
+ /// Recursive values cannot appear directly as a construction of the type '%s' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead.
+ /// (Originally from ..\FSComp.txt:90)
+ static member tastRecursiveValuesMayNotAppearInConstructionOfType(a0 : System.String) = (260, GetStringFunc("tastRecursiveValuesMayNotAppearInConstructionOfType",",,,%s,,,") a0)
+ /// Recursive values cannot be directly assigned to the non-mutable field '%s' of the type '%s' within a recursive binding. Consider using a mutable field instead.
+ /// (Originally from ..\FSComp.txt:91)
+ static member tastRecursiveValuesMayNotBeAssignedToNonMutableField(a0 : System.String, a1 : System.String) = (261, GetStringFunc("tastRecursiveValuesMayNotBeAssignedToNonMutableField",",,,%s,,,%s,,,") a0 a1)
+ /// Unexpected decode of AutoOpenAttribute
+ /// (Originally from ..\FSComp.txt:92)
+ static member tastUnexpectedDecodeOfAutoOpenAttribute() = (GetStringFunc("tastUnexpectedDecodeOfAutoOpenAttribute",",,,") )
+ /// Unexpected decode of InternalsVisibleToAttribute
+ /// (Originally from ..\FSComp.txt:93)
+ static member tastUnexpectedDecodeOfInternalsVisibleToAttribute() = (GetStringFunc("tastUnexpectedDecodeOfInternalsVisibleToAttribute",",,,") )
+ /// Unexpected decode of InterfaceDataVersionAttribute
+ /// (Originally from ..\FSComp.txt:94)
+ static member tastUnexpectedDecodeOfInterfaceDataVersionAttribute() = (GetStringFunc("tastUnexpectedDecodeOfInterfaceDataVersionAttribute",",,,") )
+ /// Active patterns cannot return more than 7 possibilities
+ /// (Originally from ..\FSComp.txt:95)
+ static member tastActivePatternsLimitedToSeven() = (265, GetStringFunc("tastActivePatternsLimitedToSeven",",,,") )
+ /// This is not a valid constant expression or custom attribute value
+ /// (Originally from ..\FSComp.txt:96)
+ static member tastNotAConstantExpression() = (267, GetStringFunc("tastNotAConstantExpression",",,,") )
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ
+ /// (Originally from ..\FSComp.txt:97)
+ static member ValueNotContainedMutabilityAttributesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAttributesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ
+ /// (Originally from ..\FSComp.txt:98)
+ static member ValueNotContainedMutabilityNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ
+ /// (Originally from ..\FSComp.txt:99)
+ static member ValueNotContainedMutabilityCompiledNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityCompiledNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ
+ /// (Originally from ..\FSComp.txt:100)
+ static member ValueNotContainedMutabilityDisplayNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityDisplayNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe accessibility specified in the signature is more than that specified in the implementation
+ /// (Originally from ..\FSComp.txt:101)
+ static member ValueNotContainedMutabilityAccessibilityMore(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAccessibilityMore",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ
+ /// (Originally from ..\FSComp.txt:102)
+ static member ValueNotContainedMutabilityInlineFlagsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityInlineFlagsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ
+ /// (Originally from ..\FSComp.txt:103)
+ static member ValueNotContainedMutabilityLiteralConstantValuesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityLiteralConstantValuesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation.
+ /// (Originally from ..\FSComp.txt:104)
+ static member ValueNotContainedMutabilityOneIsTypeFunction(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOneIsTypeFunction",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ
+ /// (Originally from ..\FSComp.txt:105)
+ static member ValueNotContainedMutabilityParameterCountsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityParameterCountsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ
+ /// (Originally from ..\FSComp.txt:106)
+ static member ValueNotContainedMutabilityTypesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityTypesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not
+ /// (Originally from ..\FSComp.txt:107)
+ static member ValueNotContainedMutabilityExtensionsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityExtensionsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value
+ /// (Originally from ..\FSComp.txt:108)
+ static member ValueNotContainedMutabilityArityNotInferred(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityArityNotInferred",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe number of generic parameters in the signature and implementation differ (the signature declares %s but the implementation declares %s
+ /// (Originally from ..\FSComp.txt:109)
+ static member ValueNotContainedMutabilityGenericParametersDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String, a4 : System.String) = (GetStringFunc("ValueNotContainedMutabilityGenericParametersDiffer",",,,%s,,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3 a4)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [] attribute.
+ /// (Originally from ..\FSComp.txt:110)
+ static member ValueNotContainedMutabilityGenericParametersAreDifferentKinds(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityGenericParametersAreDifferentKinds",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe arities in the signature and implementation differ. The signature specifies that '%s' is function definition or lambda expression accepting at least %s argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval %s: int -> (int -> int)\ninstead of\n\tval %s: int -> int -> int.
+ /// (Originally from ..\FSComp.txt:111)
+ static member ValueNotContainedMutabilityAritiesDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String, a4 : System.String, a5 : System.String, a6 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAritiesDiffer",",,,%s,,,%s,,,%s,,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3 a4 a5 a6)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ
+ /// (Originally from ..\FSComp.txt:112)
+ static member ValueNotContainedMutabilityDotNetNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityDotNetNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't
+ /// (Originally from ..\FSComp.txt:113)
+ static member ValueNotContainedMutabilityStaticsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityStaticsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't
+ /// (Originally from ..\FSComp.txt:114)
+ static member ValueNotContainedMutabilityVirtualsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityVirtualsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't
+ /// (Originally from ..\FSComp.txt:115)
+ static member ValueNotContainedMutabilityAbstractsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityAbstractsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't
+ /// (Originally from ..\FSComp.txt:116)
+ static member ValueNotContainedMutabilityFinalsDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityFinalsDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't
+ /// (Originally from ..\FSComp.txt:117)
+ static member ValueNotContainedMutabilityOverridesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOverridesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not
+ /// (Originally from ..\FSComp.txt:118)
+ static member ValueNotContainedMutabilityOneIsConstructor(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityOneIsConstructor",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member
+ /// (Originally from ..\FSComp.txt:119)
+ static member ValueNotContainedMutabilityStaticButInstance(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityStaticButInstance",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member
+ /// (Originally from ..\FSComp.txt:120)
+ static member ValueNotContainedMutabilityInstanceButStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ValueNotContainedMutabilityInstanceButStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions in the signature and implementation are not compatible because the names differ. The type is called '%s' in the signature file but '%s' in implementation.
+ /// (Originally from ..\FSComp.txt:121)
+ static member DefinitionsInSigAndImplNotCompatibleNamesDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (290, GetStringFunc("DefinitionsInSigAndImplNotCompatibleNamesDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the respective type parameter counts differ
+ /// (Originally from ..\FSComp.txt:122)
+ static member DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer(a0 : System.String, a1 : System.String) = (291, GetStringFunc("DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation
+ /// (Originally from ..\FSComp.txt:123)
+ static member DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer(a0 : System.String, a1 : System.String) = (292, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature requires that the type supports the interface %s but the interface has not been implemented
+ /// (Originally from ..\FSComp.txt:124)
+ static member DefinitionsInSigAndImplNotCompatibleMissingInterface(a0 : System.String, a1 : System.String, a2 : System.String) = (293, GetStringFunc("DefinitionsInSigAndImplNotCompatibleMissingInterface",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not
+ /// (Originally from ..\FSComp.txt:125)
+ static member DefinitionsInSigAndImplNotCompatibleImplementationSaysNull(a0 : System.String, a1 : System.String) = (294, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not
+ /// (Originally from ..\FSComp.txt:126)
+ static member DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2(a0 : System.String, a1 : System.String) = (294, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not
+ /// (Originally from ..\FSComp.txt:127)
+ static member DefinitionsInSigAndImplNotCompatibleSignatureSaysNull(a0 : System.String, a1 : System.String) = (295, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not
+ /// (Originally from ..\FSComp.txt:128)
+ static member DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2(a0 : System.String, a1 : System.String) = (295, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [] attribute to the signature.
+ /// (Originally from ..\FSComp.txt:129)
+ static member DefinitionsInSigAndImplNotCompatibleImplementationSealed(a0 : System.String, a1 : System.String) = (296, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationSealed",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [] attribute to the implementation.
+ /// (Originally from ..\FSComp.txt:130)
+ static member DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed(a0 : System.String, a1 : System.String) = (297, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [] attribute to the signature.
+ /// (Originally from ..\FSComp.txt:131)
+ static member DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract(a0 : System.String, a1 : System.String) = (298, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [] attribute to the implementation.
+ /// (Originally from ..\FSComp.txt:132)
+ static member DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract(a0 : System.String, a1 : System.String) = (299, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the types have different base types
+ /// (Originally from ..\FSComp.txt:133)
+ static member DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes(a0 : System.String, a1 : System.String) = (300, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the number of %ss differ
+ /// (Originally from ..\FSComp.txt:134)
+ static member DefinitionsInSigAndImplNotCompatibleNumbersDiffer(a0 : System.String, a1 : System.String, a2 : System.String) = (301, GetStringFunc("DefinitionsInSigAndImplNotCompatibleNumbersDiffer",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature defines the %s '%s' but the implementation does not (or does, but not in the same order)
+ /// (Originally from ..\FSComp.txt:135)
+ static member DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (302, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation defines the %s '%s' but the signature does not (or does, but not in the same order)
+ /// (Originally from ..\FSComp.txt:136)
+ static member DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (303, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation
+ /// (Originally from ..\FSComp.txt:137)
+ static member DefinitionsInSigAndImplNotCompatibleImplDefinesStruct(a0 : System.String, a1 : System.String) = (304, GetStringFunc("DefinitionsInSigAndImplNotCompatibleImplDefinesStruct",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature
+ /// (Originally from ..\FSComp.txt:138)
+ static member DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden(a0 : System.String, a1 : System.String) = (305, GetStringFunc("DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because a type representation is being hidden by a signature
+ /// (Originally from ..\FSComp.txt:139)
+ static member DefinitionsInSigAndImplNotCompatibleTypeIsHidden(a0 : System.String, a1 : System.String) = (306, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypeIsHidden",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the types are of different kinds
+ /// (Originally from ..\FSComp.txt:140)
+ static member DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind(a0 : System.String, a1 : System.String) = (307, GetStringFunc("DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the IL representations differ
+ /// (Originally from ..\FSComp.txt:141)
+ static member DefinitionsInSigAndImplNotCompatibleILDiffer(a0 : System.String, a1 : System.String) = (308, GetStringFunc("DefinitionsInSigAndImplNotCompatibleILDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the representations differ
+ /// (Originally from ..\FSComp.txt:142)
+ static member DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer(a0 : System.String, a1 : System.String) = (309, GetStringFunc("DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature
+ /// (Originally from ..\FSComp.txt:143)
+ static member DefinitionsInSigAndImplNotCompatibleFieldWasPresent(a0 : System.String, a1 : System.String, a2 : System.String) = (311, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldWasPresent",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation
+ /// (Originally from ..\FSComp.txt:144)
+ static member DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer(a0 : System.String, a1 : System.String) = (312, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the field %s was required by the signature but was not specified by the implementation
+ /// (Originally from ..\FSComp.txt:145)
+ static member DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified(a0 : System.String, a1 : System.String, a2 : System.String) = (313, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the field '%s' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'.
+ /// (Originally from ..\FSComp.txt:146)
+ static member DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig(a0 : System.String, a1 : System.String, a2 : System.String) = (314, GetStringFunc("DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the abstract member '%s' was required by the signature but was not specified by the implementation
+ /// (Originally from ..\FSComp.txt:147)
+ static member DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl(a0 : System.String, a1 : System.String, a2 : System.String) = (315, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the abstract member '%s' was present in the implementation but not in the signature
+ /// (Originally from ..\FSComp.txt:148)
+ static member DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig(a0 : System.String, a1 : System.String, a2 : System.String) = (316, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s
+ /// (Originally from ..\FSComp.txt:149)
+ static member DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (317, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the abbreviations differ: %s versus %s
+ /// (Originally from ..\FSComp.txt:150)
+ static member DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (318, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature.
+ /// (Originally from ..\FSComp.txt:151)
+ static member DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig(a0 : System.String, a1 : System.String) = (319, GetStringFunc("DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig",",,,%s,,,%s,,,") a0 a1)
+ /// The %s definitions for type '%s' in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not
+ /// (Originally from ..\FSComp.txt:152)
+ static member DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation(a0 : System.String, a1 : System.String) = (320, GetStringFunc("DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ
+ /// (Originally from ..\FSComp.txt:153)
+ static member ModuleContainsConstructorButNamesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButNamesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ
+ /// (Originally from ..\FSComp.txt:154)
+ static member ModuleContainsConstructorButDataFieldsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButDataFieldsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ
+ /// (Originally from ..\FSComp.txt:155)
+ static member ModuleContainsConstructorButTypesOfFieldsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButTypesOfFieldsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the constructor\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation
+ /// (Originally from ..\FSComp.txt:156)
+ static member ModuleContainsConstructorButAccessibilityDiffers(a0 : System.String, a1 : System.String) = (GetStringFunc("ModuleContainsConstructorButAccessibilityDiffers",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ
+ /// (Originally from ..\FSComp.txt:157)
+ static member FieldNotContainedNamesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedNamesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nthe accessibility specified in the signature is more than that specified in the implementation
+ /// (Originally from ..\FSComp.txt:158)
+ static member FieldNotContainedAccessibilitiesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedAccessibilitiesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ
+ /// (Originally from ..\FSComp.txt:159)
+ static member FieldNotContainedStaticsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedStaticsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ
+ /// (Originally from ..\FSComp.txt:160)
+ static member FieldNotContainedMutablesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedMutablesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ
+ /// (Originally from ..\FSComp.txt:161)
+ static member FieldNotContainedLiteralsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedLiteralsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ
+ /// (Originally from ..\FSComp.txt:162)
+ static member FieldNotContainedTypesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("FieldNotContainedTypesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '%s' and '%s'. Consider using type annotations to resolve the ambiguity
+ /// (Originally from ..\FSComp.txt:163)
+ static member typrelCannotResolveImplicitGenericInstantiation(a0 : System.String, a1 : System.String) = (331, GetStringFunc("typrelCannotResolveImplicitGenericInstantiation",",,,%s,,,%s,,,") a0 a1)
+ /// Could not resolve the ambiguity inherent in the use of the operator '%s' at or near this program point. Consider using type annotations to resolve the ambiguity.
+ /// (Originally from ..\FSComp.txt:164)
+ static member typrelCannotResolveAmbiguityInOverloadedOperator(a0 : System.String) = (332, GetStringFunc("typrelCannotResolveAmbiguityInOverloadedOperator",",,,%s,,,") a0)
+ /// Could not resolve the ambiguity inherent in the use of a 'printf'-style format string
+ /// (Originally from ..\FSComp.txt:165)
+ static member typrelCannotResolveAmbiguityInPrintf() = (333, GetStringFunc("typrelCannotResolveAmbiguityInPrintf",",,,") )
+ /// Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position
+ /// (Originally from ..\FSComp.txt:166)
+ static member typrelCannotResolveAmbiguityInEnum() = (334, GetStringFunc("typrelCannotResolveAmbiguityInEnum",",,,") )
+ /// Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position
+ /// (Originally from ..\FSComp.txt:167)
+ static member typrelCannotResolveAmbiguityInDelegate() = (335, GetStringFunc("typrelCannotResolveAmbiguityInDelegate",",,,") )
+ /// Invalid value
+ /// (Originally from ..\FSComp.txt:168)
+ static member typrelInvalidValue() = (337, GetStringFunc("typrelInvalidValue",",,,") )
+ /// The signature and implementation are not compatible because the respective type parameter counts differ
+ /// (Originally from ..\FSComp.txt:169)
+ static member typrelSigImplNotCompatibleParamCountsDiffer() = (338, GetStringFunc("typrelSigImplNotCompatibleParamCountsDiffer",",,,") )
+ /// The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation
+ /// (Originally from ..\FSComp.txt:170)
+ static member typrelSigImplNotCompatibleCompileTimeRequirementsDiffer() = (339, GetStringFunc("typrelSigImplNotCompatibleCompileTimeRequirementsDiffer",",,,") )
+ /// The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s
+ /// (Originally from ..\FSComp.txt:171)
+ static member typrelSigImplNotCompatibleConstraintsDiffer(a0 : System.String, a1 : System.String) = (340, GetStringFunc("typrelSigImplNotCompatibleConstraintsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The signature and implementation are not compatible because the type parameter '%s' has a constraint of the form %s but the implementation does not. Either remove this constraint from the signature or add it to the implementation.
+ /// (Originally from ..\FSComp.txt:172)
+ static member typrelSigImplNotCompatibleConstraintsDifferRemove(a0 : System.String, a1 : System.String) = (341, GetStringFunc("typrelSigImplNotCompatibleConstraintsDifferRemove",",,,%s,,,%s,,,") a0 a1)
+ /// The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals'
+ /// (Originally from ..\FSComp.txt:173)
+ static member typrelTypeImplementsIComparableShouldOverrideObjectEquals(a0 : System.String) = (342, GetStringFunc("typrelTypeImplementsIComparableShouldOverrideObjectEquals",",,,%s,,,") a0)
+ /// The type '%s' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly
+ /// (Originally from ..\FSComp.txt:174)
+ static member typrelTypeImplementsIComparableDefaultObjectEqualsProvided(a0 : System.String) = (343, GetStringFunc("typrelTypeImplementsIComparableDefaultObjectEqualsProvided",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type
+ /// (Originally from ..\FSComp.txt:175)
+ static member typrelExplicitImplementationOfGetHashCodeOrEquals(a0 : System.String) = (344, GetStringFunc("typrelExplicitImplementationOfGetHashCodeOrEquals",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)'
+ /// (Originally from ..\FSComp.txt:176)
+ static member typrelExplicitImplementationOfGetHashCode(a0 : System.String) = (345, GetStringFunc("typrelExplicitImplementationOfGetHashCode",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()'
+ /// (Originally from ..\FSComp.txt:177)
+ static member typrelExplicitImplementationOfEquals(a0 : System.String) = (346, GetStringFunc("typrelExplicitImplementationOfEquals",",,,%s,,,") a0)
+ /// The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s
+ /// (Originally from ..\FSComp.txt:178)
+ static member ExceptionDefsNotCompatibleHiddenBySignature(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleHiddenBySignature",",,,%s,,,%s,,,") a0 a1)
+ /// The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s
+ /// (Originally from ..\FSComp.txt:179)
+ static member ExceptionDefsNotCompatibleDotNetRepresentationsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleDotNetRepresentationsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:180)
+ static member ExceptionDefsNotCompatibleAbbreviationHiddenBySignature(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleAbbreviationHiddenBySignature",",,,%s,,,%s,,,") a0 a1)
+ /// The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:181)
+ static member ExceptionDefsNotCompatibleSignaturesDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleSignaturesDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:182)
+ static member ExceptionDefsNotCompatibleExceptionDeclarationsDiffer(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleExceptionDeclarationsDiffer",",,,%s,,,%s,,,") a0 a1)
+ /// The exception definitions are not compatible because the field '%s' was required by the signature but was not specified by the implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:183)
+ static member ExceptionDefsNotCompatibleFieldInSigButNotImpl(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldInSigButNotImpl",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The exception definitions are not compatible because the field '%s' was present in the implementation but not in the signature. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:184)
+ static member ExceptionDefsNotCompatibleFieldInImplButNotSig(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldInImplButNotSig",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n %s \nbut its signature specifies\n\t%s.
+ /// (Originally from ..\FSComp.txt:185)
+ static member ExceptionDefsNotCompatibleFieldOrderDiffers(a0 : System.String, a1 : System.String) = (GetStringFunc("ExceptionDefsNotCompatibleFieldOrderDiffers",",,,%s,,,%s,,,") a0 a1)
+ /// The namespace or module attributes differ between signature and implementation
+ /// (Originally from ..\FSComp.txt:186)
+ static member typrelModuleNamespaceAttributesDifferInSigAndImpl() = (355, GetStringFunc("typrelModuleNamespaceAttributesDifferInSigAndImpl",",,,") )
+ /// This method is over-constrained in its type parameters
+ /// (Originally from ..\FSComp.txt:187)
+ static member typrelMethodIsOverconstrained() = (356, GetStringFunc("typrelMethodIsOverconstrained",",,,") )
+ /// No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:188)
+ static member typrelOverloadNotFound(a0 : System.String, a1 : System.String) = (357, GetStringFunc("typrelOverloadNotFound",",,,%s,,,%s,,,") a0 a1)
+ /// The override for '%s' was ambiguous
+ /// (Originally from ..\FSComp.txt:189)
+ static member typrelOverrideWasAmbiguous(a0 : System.String) = (358, GetStringFunc("typrelOverrideWasAmbiguous",",,,%s,,,") a0)
+ /// More than one override implements '%s'
+ /// (Originally from ..\FSComp.txt:190)
+ static member typrelMoreThenOneOverride(a0 : System.String) = (359, GetStringFunc("typrelMoreThenOneOverride",",,,%s,,,") a0)
+ /// The method '%s' is sealed and cannot be overridden
+ /// (Originally from ..\FSComp.txt:191)
+ static member typrelMethodIsSealed(a0 : System.String) = (360, GetStringFunc("typrelMethodIsSealed",",,,%s,,,") a0)
+ /// The override '%s' implements more than one abstract slot, e.g. '%s' and '%s'
+ /// (Originally from ..\FSComp.txt:192)
+ static member typrelOverrideImplementsMoreThenOneSlot(a0 : System.String, a1 : System.String, a2 : System.String) = (361, GetStringFunc("typrelOverrideImplementsMoreThenOneSlot",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Duplicate or redundant interface
+ /// (Originally from ..\FSComp.txt:193)
+ static member typrelDuplicateInterface() = (362, GetStringFunc("typrelDuplicateInterface",",,,") )
+ /// The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface.
+ /// (Originally from ..\FSComp.txt:194)
+ static member typrelNeedExplicitImplementation(a0 : System.String) = (363, GetStringFunc("typrelNeedExplicitImplementation",",,,%s,,,") a0)
+ /// A named argument has been assigned more than one value
+ /// (Originally from ..\FSComp.txt:195)
+ static member typrelNamedArgumentHasBeenAssignedMoreThenOnce() = (364, GetStringFunc("typrelNamedArgumentHasBeenAssignedMoreThenOnce",",,,") )
+ /// No implementation was given for '%s'
+ /// (Originally from ..\FSComp.txt:196)
+ static member typrelNoImplementationGiven(a0 : System.String) = (365, GetStringFunc("typrelNoImplementationGiven",",,,%s,,,") a0)
+ /// No implementation was given for '%s'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'.
+ /// (Originally from ..\FSComp.txt:197)
+ static member typrelNoImplementationGivenWithSuggestion(a0 : System.String) = (366, GetStringFunc("typrelNoImplementationGivenWithSuggestion",",,,%s,,,") a0)
+ /// The member '%s' does not have the correct number of arguments. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:198)
+ static member typrelMemberDoesNotHaveCorrectNumberOfArguments(a0 : System.String, a1 : System.String) = (367, GetStringFunc("typrelMemberDoesNotHaveCorrectNumberOfArguments",",,,%s,,,%s,,,") a0 a1)
+ /// The member '%s' does not have the correct number of method type parameters. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:199)
+ static member typrelMemberDoesNotHaveCorrectNumberOfTypeParameters(a0 : System.String, a1 : System.String) = (368, GetStringFunc("typrelMemberDoesNotHaveCorrectNumberOfTypeParameters",",,,%s,,,%s,,,") a0 a1)
+ /// The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:200)
+ static member typrelMemberDoesNotHaveCorrectKindsOfGenericParameters(a0 : System.String, a1 : System.String) = (369, GetStringFunc("typrelMemberDoesNotHaveCorrectKindsOfGenericParameters",",,,%s,,,%s,,,") a0 a1)
+ /// The member '%s' cannot be used to implement '%s'. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:201)
+ static member typrelMemberCannotImplement(a0 : System.String, a1 : System.String, a2 : System.String) = (370, GetStringFunc("typrelMemberCannotImplement",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Error while parsing embedded IL
+ /// (Originally from ..\FSComp.txt:202)
+ static member astParseEmbeddedILError() = (371, GetStringFunc("astParseEmbeddedILError",",,,") )
+ /// Error while parsing embedded IL type
+ /// (Originally from ..\FSComp.txt:203)
+ static member astParseEmbeddedILTypeError() = (372, GetStringFunc("astParseEmbeddedILTypeError",",,,") )
+ /// This indexer notation has been removed from the F# language
+ /// (Originally from ..\FSComp.txt:204)
+ static member astDeprecatedIndexerNotation() = (GetStringFunc("astDeprecatedIndexerNotation",",,,") )
+ /// Invalid expression on left of assignment
+ /// (Originally from ..\FSComp.txt:205)
+ static member astInvalidExprLeftHandOfAssignment() = (374, GetStringFunc("astInvalidExprLeftHandOfAssignment",",,,") )
+ /// The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'.
+ /// (Originally from ..\FSComp.txt:206)
+ static member augNoRefEqualsOnStruct() = (376, GetStringFunc("augNoRefEqualsOnStruct",",,,") )
+ /// This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison'
+ /// (Originally from ..\FSComp.txt:207)
+ static member augInvalidAttrs() = (377, GetStringFunc("augInvalidAttrs",",,,") )
+ /// The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute
+ /// (Originally from ..\FSComp.txt:208)
+ static member augNoEqualityNeedsNoComparison() = (378, GetStringFunc("augNoEqualityNeedsNoComparison",",,,") )
+ /// The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute
+ /// (Originally from ..\FSComp.txt:209)
+ static member augStructCompNeedsStructEquality() = (379, GetStringFunc("augStructCompNeedsStructEquality",",,,") )
+ /// The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes
+ /// (Originally from ..\FSComp.txt:210)
+ static member augStructEqNeedsNoCompOrStructComp() = (380, GetStringFunc("augStructEqNeedsNoCompOrStructComp",",,,") )
+ /// A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes
+ /// (Originally from ..\FSComp.txt:211)
+ static member augTypeCantHaveRefEqAndStructAttrs() = (381, GetStringFunc("augTypeCantHaveRefEqAndStructAttrs",",,,") )
+ /// Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes
+ /// (Originally from ..\FSComp.txt:212)
+ static member augOnlyCertainTypesCanHaveAttrs() = (382, GetStringFunc("augOnlyCertainTypesCanHaveAttrs",",,,") )
+ /// A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'
+ /// (Originally from ..\FSComp.txt:213)
+ static member augRefEqCantHaveObjEquals() = (383, GetStringFunc("augRefEqCantHaveObjEquals",",,,") )
+ /// A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'
+ /// (Originally from ..\FSComp.txt:214)
+ static member augCustomEqNeedsObjEquals() = (384, GetStringFunc("augCustomEqNeedsObjEquals",",,,") )
+ /// A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable'
+ /// (Originally from ..\FSComp.txt:215)
+ static member augCustomCompareNeedsIComp() = (385, GetStringFunc("augCustomCompareNeedsIComp",",,,") )
+ /// A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes
+ /// (Originally from ..\FSComp.txt:216)
+ static member augNoEqNeedsNoObjEquals() = (386, GetStringFunc("augNoEqNeedsNoObjEquals",",,,") )
+ /// A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes
+ /// (Originally from ..\FSComp.txt:217)
+ static member augNoCompCantImpIComp() = (386, GetStringFunc("augNoCompCantImpIComp",",,,") )
+ /// The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes
+ /// (Originally from ..\FSComp.txt:218)
+ static member augCustomEqNeedsNoCompOrCustomComp() = (387, GetStringFunc("augCustomEqNeedsNoCompOrCustomComp",",,,") )
+ /// Positional specifiers are not permitted in format strings
+ /// (Originally from ..\FSComp.txt:219)
+ static member forPositionalSpecifiersNotPermitted() = (GetStringFunc("forPositionalSpecifiersNotPermitted",",,,") )
+ /// Missing format specifier
+ /// (Originally from ..\FSComp.txt:220)
+ static member forMissingFormatSpecifier() = (GetStringFunc("forMissingFormatSpecifier",",,,") )
+ /// '%s' flag set twice
+ /// (Originally from ..\FSComp.txt:221)
+ static member forFlagSetTwice(a0 : System.String) = (GetStringFunc("forFlagSetTwice",",,,%s,,,") a0)
+ /// Prefix flag (' ' or '+') set twice
+ /// (Originally from ..\FSComp.txt:222)
+ static member forPrefixFlagSpacePlusSetTwice() = (GetStringFunc("forPrefixFlagSpacePlusSetTwice",",,,") )
+ /// The # formatting modifier is invalid in F#
+ /// (Originally from ..\FSComp.txt:223)
+ static member forHashSpecifierIsInvalid() = (GetStringFunc("forHashSpecifierIsInvalid",",,,") )
+ /// Bad precision in format specifier
+ /// (Originally from ..\FSComp.txt:224)
+ static member forBadPrecision() = (GetStringFunc("forBadPrecision",",,,") )
+ /// Bad width in format specifier
+ /// (Originally from ..\FSComp.txt:225)
+ static member forBadWidth() = (GetStringFunc("forBadWidth",",,,") )
+ /// '%s' format does not support '0' flag
+ /// (Originally from ..\FSComp.txt:226)
+ static member forDoesNotSupportZeroFlag(a0 : System.String) = (GetStringFunc("forDoesNotSupportZeroFlag",",,,%s,,,") a0)
+ /// Precision missing after the '.'
+ /// (Originally from ..\FSComp.txt:227)
+ static member forPrecisionMissingAfterDot() = (GetStringFunc("forPrecisionMissingAfterDot",",,,") )
+ /// '%s' format does not support precision
+ /// (Originally from ..\FSComp.txt:228)
+ static member forFormatDoesntSupportPrecision(a0 : System.String) = (GetStringFunc("forFormatDoesntSupportPrecision",",,,%s,,,") a0)
+ /// Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.
+ /// (Originally from ..\FSComp.txt:229)
+ static member forBadFormatSpecifier() = (GetStringFunc("forBadFormatSpecifier",",,,") )
+ /// The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.
+ /// (Originally from ..\FSComp.txt:230)
+ static member forLIsUnnecessary() = (GetStringFunc("forLIsUnnecessary",",,,") )
+ /// The 'h' or 'H' in this format specifier is unnecessary. You can use %%d, %%x, %%o or %%u instead, which are overloaded to work with all basic integer types.
+ /// (Originally from ..\FSComp.txt:231)
+ static member forHIsUnnecessary() = (GetStringFunc("forHIsUnnecessary",",,,") )
+ /// '%s' does not support prefix '%s' flag
+ /// (Originally from ..\FSComp.txt:232)
+ static member forDoesNotSupportPrefixFlag(a0 : System.String, a1 : System.String) = (GetStringFunc("forDoesNotSupportPrefixFlag",",,,%s,,,%s,,,") a0 a1)
+ /// Bad format specifier: '%s'
+ /// (Originally from ..\FSComp.txt:233)
+ static member forBadFormatSpecifierGeneral(a0 : System.String) = (GetStringFunc("forBadFormatSpecifierGeneral",",,,%s,,,") a0)
+ /// System.Environment.Exit did not exit
+ /// (Originally from ..\FSComp.txt:234)
+ static member elSysEnvExitDidntExit() = (GetStringFunc("elSysEnvExitDidntExit",",,,") )
+ /// The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined
+ /// (Originally from ..\FSComp.txt:235)
+ static member elDeprecatedOperator() = (GetStringFunc("elDeprecatedOperator",",,,") )
+ /// A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope.
+ /// (Originally from ..\FSComp.txt:236)
+ static member chkProtectedOrBaseCalled() = (405, GetStringFunc("chkProtectedOrBaseCalled",",,,") )
+ /// The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions.
+ /// (Originally from ..\FSComp.txt:237)
+ static member chkByrefUsedInInvalidWay(a0 : System.String) = (406, GetStringFunc("chkByrefUsedInInvalidWay",",,,%s,,,") a0)
+ /// The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls.
+ /// (Originally from ..\FSComp.txt:238)
+ static member chkBaseUsedInInvalidWay() = (408, GetStringFunc("chkBaseUsedInInvalidWay",",,,") )
+ /// The variable '%s' is used in an invalid way
+ /// (Originally from ..\FSComp.txt:239)
+ static member chkVariableUsedInInvalidWay(a0 : System.String) = (GetStringFunc("chkVariableUsedInInvalidWay",",,,%s,,,") a0)
+ /// The type '%s' is less accessible than the value, member or type '%s' it is used in.
+ /// (Originally from ..\FSComp.txt:240)
+ static member chkTypeLessAccessibleThanType(a0 : System.String, a1 : System.String) = (410, GetStringFunc("chkTypeLessAccessibleThanType",",,,%s,,,%s,,,") a0 a1)
+ /// 'System.Void' can only be used as 'typeof' in F#
+ /// (Originally from ..\FSComp.txt:241)
+ static member chkSystemVoidOnlyInTypeof() = (411, GetStringFunc("chkSystemVoidOnlyInTypeof",",,,") )
+ /// A type instantiation involves a byref type. This is not permitted by the rules of Common IL.
+ /// (Originally from ..\FSComp.txt:242)
+ static member chkErrorUseOfByref() = (412, GetStringFunc("chkErrorUseOfByref",",,,") )
+ /// Calls to 'reraise' may only occur directly in a handler of a try-with
+ /// (Originally from ..\FSComp.txt:243)
+ static member chkErrorContainsCallToRethrow() = (413, GetStringFunc("chkErrorContainsCallToRethrow",",,,") )
+ /// Expression-splicing operators may only be used within quotations
+ /// (Originally from ..\FSComp.txt:244)
+ static member chkSplicingOnlyInQuotations() = (414, GetStringFunc("chkSplicingOnlyInQuotations",",,,") )
+ /// First-class uses of the expression-splicing operator are not permitted
+ /// (Originally from ..\FSComp.txt:245)
+ static member chkNoFirstClassSplicing() = (415, GetStringFunc("chkNoFirstClassSplicing",",,,") )
+ /// First-class uses of the address-of operators are not permitted
+ /// (Originally from ..\FSComp.txt:246)
+ static member chkNoFirstClassAddressOf() = (416, GetStringFunc("chkNoFirstClassAddressOf",",,,") )
+ /// First-class uses of the 'reraise' function is not permitted
+ /// (Originally from ..\FSComp.txt:247)
+ static member chkNoFirstClassRethrow() = (417, GetStringFunc("chkNoFirstClassRethrow",",,,") )
+ /// The byref typed value '%s' cannot be used at this point
+ /// (Originally from ..\FSComp.txt:248)
+ static member chkNoByrefAtThisPoint(a0 : System.String) = (418, GetStringFunc("chkNoByrefAtThisPoint",",,,%s,,,") a0)
+ /// 'base' values may only be used to make direct calls to the base implementations of overridden members
+ /// (Originally from ..\FSComp.txt:249)
+ static member chkLimitationsOfBaseKeyword() = (419, GetStringFunc("chkLimitationsOfBaseKeyword",",,,") )
+ /// Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL.
+ /// (Originally from ..\FSComp.txt:250)
+ static member chkObjCtorsCantUseExceptionHandling() = (420, GetStringFunc("chkObjCtorsCantUseExceptionHandling",",,,") )
+ /// The address of the variable '%s' cannot be used at this point
+ /// (Originally from ..\FSComp.txt:251)
+ static member chkNoAddressOfAtThisPoint(a0 : System.String) = (421, GetStringFunc("chkNoAddressOfAtThisPoint",",,,%s,,,") a0)
+ /// The address of the static field '%s' cannot be used at this point
+ /// (Originally from ..\FSComp.txt:252)
+ static member chkNoAddressStaticFieldAtThisPoint(a0 : System.String) = (422, GetStringFunc("chkNoAddressStaticFieldAtThisPoint",",,,%s,,,") a0)
+ /// The address of the field '%s' cannot be used at this point
+ /// (Originally from ..\FSComp.txt:253)
+ static member chkNoAddressFieldAtThisPoint(a0 : System.String) = (423, GetStringFunc("chkNoAddressFieldAtThisPoint",",,,%s,,,") a0)
+ /// The address of an array element cannot be used at this point
+ /// (Originally from ..\FSComp.txt:254)
+ static member chkNoAddressOfArrayElementAtThisPoint() = (424, GetStringFunc("chkNoAddressOfArrayElementAtThisPoint",",,,") )
+ /// The type of a first-class function cannot contain byrefs
+ /// (Originally from ..\FSComp.txt:255)
+ static member chkFirstClassFuncNoByref() = (425, GetStringFunc("chkFirstClassFuncNoByref",",,,") )
+ /// A method return type would contain byrefs which is not permitted
+ /// (Originally from ..\FSComp.txt:256)
+ static member chkReturnTypeNoByref() = (426, GetStringFunc("chkReturnTypeNoByref",",,,") )
+ /// Invalid custom attribute value (not a constant or literal)
+ /// (Originally from ..\FSComp.txt:257)
+ static member chkInvalidCustAttrVal() = (428, GetStringFunc("chkInvalidCustAttrVal",",,,") )
+ /// The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element.
+ /// (Originally from ..\FSComp.txt:258)
+ static member chkAttrHasAllowMultiFalse(a0 : System.String) = (429, GetStringFunc("chkAttrHasAllowMultiFalse",",,,%s,,,") a0)
+ /// The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to its definition at or near '%s'. This is an invalid forward reference.
+ /// (Originally from ..\FSComp.txt:259)
+ static member chkMemberUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (430, GetStringFunc("chkMemberUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// A byref typed value would be stored here. Top-level let-bound byref values are not permitted.
+ /// (Originally from ..\FSComp.txt:260)
+ static member chkNoByrefAsTopValue() = (431, GetStringFunc("chkNoByrefAsTopValue",",,,") )
+ /// [] terms cannot contain uses of the prefix splice operator '%%'
+ /// (Originally from ..\FSComp.txt:261)
+ static member chkReflectedDefCantSplice() = (432, GetStringFunc("chkReflectedDefCantSplice",",,,") )
+ /// A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence.
+ /// (Originally from ..\FSComp.txt:262)
+ static member chkEntryPointUsage() = (433, GetStringFunc("chkEntryPointUsage",",,,") )
+ /// compiled form of the union case
+ /// (Originally from ..\FSComp.txt:263)
+ static member chkUnionCaseCompiledForm() = (GetStringFunc("chkUnionCaseCompiledForm",",,,") )
+ /// default augmentation of the union case
+ /// (Originally from ..\FSComp.txt:264)
+ static member chkUnionCaseDefaultAugmentation() = (GetStringFunc("chkUnionCaseDefaultAugmentation",",,,") )
+ /// The property '%s' has the same name as a method in type '%s'.
+ /// (Originally from ..\FSComp.txt:265)
+ static member chkPropertySameNameMethod(a0 : System.String, a1 : System.String) = (434, GetStringFunc("chkPropertySameNameMethod",",,,%s,,,%s,,,") a0 a1)
+ /// The property '%s' of type '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well.
+ /// (Originally from ..\FSComp.txt:266)
+ static member chkGetterSetterDoNotMatchAbstract(a0 : System.String, a1 : System.String) = (435, GetStringFunc("chkGetterSetterDoNotMatchAbstract",",,,%s,,,%s,,,") a0 a1)
+ /// The property '%s' has the same name as another property in type '%s', but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties.
+ /// (Originally from ..\FSComp.txt:267)
+ static member chkPropertySameNameIndexer(a0 : System.String, a1 : System.String) = (436, GetStringFunc("chkPropertySameNameIndexer",",,,%s,,,%s,,,") a0 a1)
+ /// A type would store a byref typed value. This is not permitted by Common IL.
+ /// (Originally from ..\FSComp.txt:268)
+ static member chkCantStoreByrefValue() = (437, GetStringFunc("chkCantStoreByrefValue",",,,") )
+ /// Duplicate method. The method '%s' has the same name and signature as another method in type '%s'.
+ /// (Originally from ..\FSComp.txt:270)
+ static member chkDuplicateMethod(a0 : System.String, a1 : System.String) = (438, GetStringFunc("chkDuplicateMethod",",,,%s,,,%s,,,") a0 a1)
+ /// Duplicate method. The method '%s' has the same name and signature as another method in type '%s' once tuples, functions, units of measure and/or provided types are erased.
+ /// (Originally from ..\FSComp.txt:271)
+ static member chkDuplicateMethodWithSuffix(a0 : System.String, a1 : System.String) = (438, GetStringFunc("chkDuplicateMethodWithSuffix",",,,%s,,,%s,,,") a0 a1)
+ /// The method '%s' has curried arguments but has the same name as another method in type '%s'. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments.
+ /// (Originally from ..\FSComp.txt:272)
+ static member chkDuplicateMethodCurried(a0 : System.String, a1 : System.String) = (439, GetStringFunc("chkDuplicateMethodCurried",",,,%s,,,%s,,,") a0 a1)
+ /// Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional', 'ReflectedDefinition', 'byref', 'CallerLineNumber', 'CallerMemberName', or 'CallerFilePath' arguments
+ /// (Originally from ..\FSComp.txt:273)
+ static member chkCurriedMethodsCantHaveOutParams() = (440, GetStringFunc("chkCurriedMethodsCantHaveOutParams",",,,") )
+ /// Duplicate property. The property '%s' has the same name and signature as another property in type '%s'.
+ /// (Originally from ..\FSComp.txt:274)
+ static member chkDuplicateProperty(a0 : System.String, a1 : System.String) = (441, GetStringFunc("chkDuplicateProperty",",,,%s,,,%s,,,") a0 a1)
+ /// Duplicate property. The property '%s' has the same name and signature as another property in type '%s' once tuples, functions, units of measure and/or provided types are erased.
+ /// (Originally from ..\FSComp.txt:275)
+ static member chkDuplicatePropertyWithSuffix(a0 : System.String, a1 : System.String) = (441, GetStringFunc("chkDuplicatePropertyWithSuffix",",,,%s,,,%s,,,") a0 a1)
+ /// Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type.
+ /// (Originally from ..\FSComp.txt:276)
+ static member chkDuplicateMethodInheritedType(a0 : System.String) = (442, GetStringFunc("chkDuplicateMethodInheritedType",",,,%s,,,") a0)
+ /// Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased.
+ /// (Originally from ..\FSComp.txt:277)
+ static member chkDuplicateMethodInheritedTypeWithSuffix(a0 : System.String) = (442, GetStringFunc("chkDuplicateMethodInheritedTypeWithSuffix",",,,%s,,,") a0)
+ /// This type implements the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#.
+ /// (Originally from ..\FSComp.txt:278)
+ static member chkMultipleGenericInterfaceInstantiations(a0 : System.String, a1 : System.String) = (443, GetStringFunc("chkMultipleGenericInterfaceInstantiations",",,,%s,,,%s,,,") a0 a1)
+ /// The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check
+ /// (Originally from ..\FSComp.txt:279)
+ static member chkValueWithDefaultValueMustHaveDefaultValue() = (444, GetStringFunc("chkValueWithDefaultValueMustHaveDefaultValue",",,,") )
+ /// The type abbreviation contains byrefs. This is not permitted by F#.
+ /// (Originally from ..\FSComp.txt:280)
+ static member chkNoByrefInTypeAbbrev() = (445, GetStringFunc("chkNoByrefInTypeAbbrev",",,,") )
+ /// The variable '%s' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope.
+ /// (Originally from ..\FSComp.txt:281)
+ static member crefBoundVarUsedInSplice(a0 : System.String) = (446, GetStringFunc("crefBoundVarUsedInSplice",",,,%s,,,") a0)
+ /// Quotations cannot contain uses of generic expressions
+ /// (Originally from ..\FSComp.txt:282)
+ static member crefQuotationsCantContainGenericExprs() = (447, GetStringFunc("crefQuotationsCantContainGenericExprs",",,,") )
+ /// Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression.
+ /// (Originally from ..\FSComp.txt:283)
+ static member crefQuotationsCantContainGenericFunctions() = (448, GetStringFunc("crefQuotationsCantContainGenericFunctions",",,,") )
+ /// Quotations cannot contain object expressions
+ /// (Originally from ..\FSComp.txt:284)
+ static member crefQuotationsCantContainObjExprs() = (449, GetStringFunc("crefQuotationsCantContainObjExprs",",,,") )
+ /// Quotations cannot contain expressions that take the address of a field
+ /// (Originally from ..\FSComp.txt:285)
+ static member crefQuotationsCantContainAddressOf() = (450, GetStringFunc("crefQuotationsCantContainAddressOf",",,,") )
+ /// Quotations cannot contain expressions that fetch static fields
+ /// (Originally from ..\FSComp.txt:286)
+ static member crefQuotationsCantContainStaticFieldRef() = (451, GetStringFunc("crefQuotationsCantContainStaticFieldRef",",,,") )
+ /// Quotations cannot contain inline assembly code or pattern matching on arrays
+ /// (Originally from ..\FSComp.txt:287)
+ static member crefQuotationsCantContainInlineIL() = (452, GetStringFunc("crefQuotationsCantContainInlineIL",",,,") )
+ /// Quotations cannot contain descending for loops
+ /// (Originally from ..\FSComp.txt:288)
+ static member crefQuotationsCantContainDescendingForLoops() = (453, GetStringFunc("crefQuotationsCantContainDescendingForLoops",",,,") )
+ /// Quotations cannot contain expressions that fetch union case indexes
+ /// (Originally from ..\FSComp.txt:289)
+ static member crefQuotationsCantFetchUnionIndexes() = (454, GetStringFunc("crefQuotationsCantFetchUnionIndexes",",,,") )
+ /// Quotations cannot contain expressions that set union case fields
+ /// (Originally from ..\FSComp.txt:290)
+ static member crefQuotationsCantSetUnionFields() = (455, GetStringFunc("crefQuotationsCantSetUnionFields",",,,") )
+ /// Quotations cannot contain expressions that set fields in exception values
+ /// (Originally from ..\FSComp.txt:291)
+ static member crefQuotationsCantSetExceptionFields() = (456, GetStringFunc("crefQuotationsCantSetExceptionFields",",,,") )
+ /// Quotations cannot contain expressions that require byref pointers
+ /// (Originally from ..\FSComp.txt:292)
+ static member crefQuotationsCantRequireByref() = (457, GetStringFunc("crefQuotationsCantRequireByref",",,,") )
+ /// Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call
+ /// (Originally from ..\FSComp.txt:293)
+ static member crefQuotationsCantCallTraitMembers() = (458, GetStringFunc("crefQuotationsCantCallTraitMembers",",,,") )
+ /// Quotations cannot contain this kind of constant
+ /// (Originally from ..\FSComp.txt:294)
+ static member crefQuotationsCantContainThisConstant() = (459, GetStringFunc("crefQuotationsCantContainThisConstant",",,,") )
+ /// Quotations cannot contain this kind of pattern match
+ /// (Originally from ..\FSComp.txt:295)
+ static member crefQuotationsCantContainThisPatternMatch() = (460, GetStringFunc("crefQuotationsCantContainThisPatternMatch",",,,") )
+ /// Quotations cannot contain array pattern matching
+ /// (Originally from ..\FSComp.txt:296)
+ static member crefQuotationsCantContainArrayPatternMatching() = (461, GetStringFunc("crefQuotationsCantContainArrayPatternMatching",",,,") )
+ /// Quotations cannot contain this kind of type
+ /// (Originally from ..\FSComp.txt:297)
+ static member crefQuotationsCantContainThisType() = (462, GetStringFunc("crefQuotationsCantContainThisType",",,,") )
+ /// The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time
+ /// (Originally from ..\FSComp.txt:298)
+ static member csTypeCannotBeResolvedAtCompileTime(a0 : System.String) = (GetStringFunc("csTypeCannotBeResolvedAtCompileTime",",,,%s,,,") a0)
+ /// This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'.
+ /// (Originally from ..\FSComp.txt:299)
+ static member csCodeLessGeneric() = (464, GetStringFunc("csCodeLessGeneric",",,,") )
+ /// Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations.
+ /// (Originally from ..\FSComp.txt:300)
+ static member csTypeInferenceMaxDepth() = (465, GetStringFunc("csTypeInferenceMaxDepth",",,,") )
+ /// Expected arguments to an instance member
+ /// (Originally from ..\FSComp.txt:301)
+ static member csExpectedArguments() = (GetStringFunc("csExpectedArguments",",,,") )
+ /// This indexer expects %d arguments but is here given %d
+ /// (Originally from ..\FSComp.txt:302)
+ static member csIndexArgumentMismatch(a0 : System.Int32, a1 : System.Int32) = (GetStringFunc("csIndexArgumentMismatch",",,,%d,,,%d,,,") a0 a1)
+ /// Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function.
+ /// (Originally from ..\FSComp.txt:303)
+ static member csExpectTypeWithOperatorButGivenFunction(a0 : System.String) = (GetStringFunc("csExpectTypeWithOperatorButGivenFunction",",,,%s,,,") a0)
+ /// Expecting a type supporting the operator '%s' but given a tuple type
+ /// (Originally from ..\FSComp.txt:304)
+ static member csExpectTypeWithOperatorButGivenTuple(a0 : System.String) = (GetStringFunc("csExpectTypeWithOperatorButGivenTuple",",,,%s,,,") a0)
+ /// None of the types '%s' support the operator '%s'
+ /// (Originally from ..\FSComp.txt:305)
+ static member csTypesDoNotSupportOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypesDoNotSupportOperator",",,,%s,,,%s,,,") a0 a1)
+ /// The type '%s' does not support the operator '%s'
+ /// (Originally from ..\FSComp.txt:306)
+ static member csTypeDoesNotSupportOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportOperator",",,,%s,,,%s,,,") a0 a1)
+ /// None of the types '%s' support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+ /// (Originally from ..\FSComp.txt:307)
+ static member csTypesDoNotSupportOperatorNullable(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypesDoNotSupportOperatorNullable",",,,%s,,,%s,,,") a0 a1)
+ /// The type '%s' does not support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+ /// (Originally from ..\FSComp.txt:308)
+ static member csTypeDoesNotSupportOperatorNullable(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportOperatorNullable",",,,%s,,,%s,,,") a0 a1)
+ /// The type '%s' does not support a conversion to the type '%s'
+ /// (Originally from ..\FSComp.txt:309)
+ static member csTypeDoesNotSupportConversion(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeDoesNotSupportConversion",",,,%s,,,%s,,,") a0 a1)
+ /// The type '%s' has a method '%s' (full name '%s'), but the method is static
+ /// (Originally from ..\FSComp.txt:310)
+ static member csMethodFoundButIsStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMethodFoundButIsStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The type '%s' has a method '%s' (full name '%s'), but the method is not static
+ /// (Originally from ..\FSComp.txt:311)
+ static member csMethodFoundButIsNotStatic(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMethodFoundButIsNotStatic",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The constraints 'struct' and 'not struct' are inconsistent
+ /// (Originally from ..\FSComp.txt:312)
+ static member csStructConstraintInconsistent() = (472, GetStringFunc("csStructConstraintInconsistent",",,,") )
+ /// The type '%s' does not have 'null' as a proper value
+ /// (Originally from ..\FSComp.txt:313)
+ static member csTypeDoesNotHaveNull(a0 : System.String) = (GetStringFunc("csTypeDoesNotHaveNull",",,,%s,,,") a0)
+ /// The type '%s' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'.
+ /// (Originally from ..\FSComp.txt:314)
+ static member csNullableTypeDoesNotHaveNull(a0 : System.String) = (GetStringFunc("csNullableTypeDoesNotHaveNull",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute
+ /// (Originally from ..\FSComp.txt:315)
+ static member csTypeDoesNotSupportComparison1(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison1",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface
+ /// (Originally from ..\FSComp.txt:316)
+ static member csTypeDoesNotSupportComparison2(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison2",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison
+ /// (Originally from ..\FSComp.txt:317)
+ static member csTypeDoesNotSupportComparison3(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportComparison3",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute
+ /// (Originally from ..\FSComp.txt:318)
+ static member csTypeDoesNotSupportEquality1(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality1",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'equality' constraint because it is a function type
+ /// (Originally from ..\FSComp.txt:319)
+ static member csTypeDoesNotSupportEquality2(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality2",",,,%s,,,") a0)
+ /// The type '%s' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality
+ /// (Originally from ..\FSComp.txt:320)
+ static member csTypeDoesNotSupportEquality3(a0 : System.String) = (GetStringFunc("csTypeDoesNotSupportEquality3",",,,%s,,,") a0)
+ /// The type '%s' is not a CLI enum type
+ /// (Originally from ..\FSComp.txt:321)
+ static member csTypeIsNotEnumType(a0 : System.String) = (GetStringFunc("csTypeIsNotEnumType",",,,%s,,,") a0)
+ /// The type '%s' has a non-standard delegate type
+ /// (Originally from ..\FSComp.txt:322)
+ static member csTypeHasNonStandardDelegateType(a0 : System.String) = (GetStringFunc("csTypeHasNonStandardDelegateType",",,,%s,,,") a0)
+ /// The type '%s' is not a CLI delegate type
+ /// (Originally from ..\FSComp.txt:323)
+ static member csTypeIsNotDelegateType(a0 : System.String) = (GetStringFunc("csTypeIsNotDelegateType",",,,%s,,,") a0)
+ /// This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values.
+ /// (Originally from ..\FSComp.txt:324)
+ static member csTypeParameterCannotBeNullable() = (GetStringFunc("csTypeParameterCannotBeNullable",",,,") )
+ /// A generic construct requires that the type '%s' is a CLI or F# struct type
+ /// (Originally from ..\FSComp.txt:325)
+ static member csGenericConstructRequiresStructType(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresStructType",",,,%s,,,") a0)
+ /// A generic construct requires that the type '%s' is an unmanaged type
+ /// (Originally from ..\FSComp.txt:326)
+ static member csGenericConstructRequiresUnmanagedType(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresUnmanagedType",",,,%s,,,") a0)
+ /// The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string
+ /// (Originally from ..\FSComp.txt:327)
+ static member csTypeNotCompatibleBecauseOfPrintf(a0 : System.String, a1 : System.String) = (GetStringFunc("csTypeNotCompatibleBecauseOfPrintf",",,,%s,,,%s,,,") a0 a1)
+ /// A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct
+ /// (Originally from ..\FSComp.txt:328)
+ static member csGenericConstructRequiresReferenceSemantics(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresReferenceSemantics",",,,%s,,,") a0)
+ /// A generic construct requires that the type '%s' be non-abstract
+ /// (Originally from ..\FSComp.txt:329)
+ static member csGenericConstructRequiresNonAbstract(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresNonAbstract",",,,%s,,,") a0)
+ /// A generic construct requires that the type '%s' have a public default constructor
+ /// (Originally from ..\FSComp.txt:330)
+ static member csGenericConstructRequiresPublicDefaultConstructor(a0 : System.String) = (GetStringFunc("csGenericConstructRequiresPublicDefaultConstructor",",,,%s,,,") a0)
+ /// Type instantiation length mismatch
+ /// (Originally from ..\FSComp.txt:331)
+ static member csTypeInstantiationLengthMismatch() = (483, GetStringFunc("csTypeInstantiationLengthMismatch",",,,") )
+ /// Optional arguments not permitted here
+ /// (Originally from ..\FSComp.txt:332)
+ static member csOptionalArgumentNotPermittedHere() = (484, GetStringFunc("csOptionalArgumentNotPermittedHere",",,,") )
+ /// %s is not a static member
+ /// (Originally from ..\FSComp.txt:333)
+ static member csMemberIsNotStatic(a0 : System.String) = (485, GetStringFunc("csMemberIsNotStatic",",,,%s,,,") a0)
+ /// %s is not an instance member
+ /// (Originally from ..\FSComp.txt:334)
+ static member csMemberIsNotInstance(a0 : System.String) = (486, GetStringFunc("csMemberIsNotInstance",",,,%s,,,") a0)
+ /// Argument length mismatch
+ /// (Originally from ..\FSComp.txt:335)
+ static member csArgumentLengthMismatch() = (487, GetStringFunc("csArgumentLengthMismatch",",,,") )
+ /// The argument types don't match
+ /// (Originally from ..\FSComp.txt:336)
+ static member csArgumentTypesDoNotMatch() = (488, GetStringFunc("csArgumentTypesDoNotMatch",",,,") )
+ /// This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument
+ /// (Originally from ..\FSComp.txt:337)
+ static member csMethodExpectsParams() = (489, GetStringFunc("csMethodExpectsParams",",,,") )
+ /// The member or object constructor '%s' is not %s
+ /// (Originally from ..\FSComp.txt:338)
+ static member csMemberIsNotAccessible(a0 : System.String, a1 : System.String) = (490, GetStringFunc("csMemberIsNotAccessible",",,,%s,,,%s,,,") a0 a1)
+ /// The member or object constructor '%s' is not %s. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions.
+ /// (Originally from ..\FSComp.txt:339)
+ static member csMemberIsNotAccessible2(a0 : System.String, a1 : System.String) = (491, GetStringFunc("csMemberIsNotAccessible2",",,,%s,,,%s,,,") a0 a1)
+ /// %s is not a static method
+ /// (Originally from ..\FSComp.txt:340)
+ static member csMethodIsNotAStaticMethod(a0 : System.String) = (492, GetStringFunc("csMethodIsNotAStaticMethod",",,,%s,,,") a0)
+ /// %s is not an instance method
+ /// (Originally from ..\FSComp.txt:341)
+ static member csMethodIsNotAnInstanceMethod(a0 : System.String) = (493, GetStringFunc("csMethodIsNotAnInstanceMethod",",,,%s,,,") a0)
+ /// The member or object constructor '%s' has no argument or settable return property '%s'. %s.
+ /// (Originally from ..\FSComp.txt:342)
+ static member csMemberHasNoArgumentOrReturnProperty(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csMemberHasNoArgumentOrReturnProperty",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The object constructor '%s' has no argument or settable return property '%s'. %s.
+ /// (Originally from ..\FSComp.txt:343)
+ static member csCtorHasNoArgumentOrReturnProperty(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("csCtorHasNoArgumentOrReturnProperty",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The required signature is %s
+ /// (Originally from ..\FSComp.txt:344)
+ static member csRequiredSignatureIs(a0 : System.String) = (495, GetStringFunc("csRequiredSignatureIs",",,,%s,,,") a0)
+ /// The member or object constructor '%s' requires %d argument(s). The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:345)
+ static member csMemberSignatureMismatch(a0 : System.String, a1 : System.Int32, a2 : System.String) = (496, GetStringFunc("csMemberSignatureMismatch",",,,%s,,,%d,,,%s,,,") a0 a1 a2)
+ /// The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:346)
+ static member csMemberSignatureMismatch2(a0 : System.String, a1 : System.Int32, a2 : System.String) = (497, GetStringFunc("csMemberSignatureMismatch2",",,,%s,,,%d,,,%s,,,") a0 a1 a2)
+ /// The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s.
+ /// (Originally from ..\FSComp.txt:347)
+ static member csMemberSignatureMismatch3(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.String) = (498, GetStringFunc("csMemberSignatureMismatch3",",,,%s,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. Some names for missing arguments are %s.
+ /// (Originally from ..\FSComp.txt:348)
+ static member csMemberSignatureMismatch4(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.String) = (499, GetStringFunc("csMemberSignatureMismatch4",",,,%s,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// The member or object constructor '%s' requires %d argument(s) but is here given %d unnamed and %d named argument(s). The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:349)
+ static member csMemberSignatureMismatchArityNamed(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.Int32, a4 : System.String) = (500, GetStringFunc("csMemberSignatureMismatchArityNamed",",,,%s,,,%d,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3 a4)
+ /// The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:350)
+ static member csMemberSignatureMismatchArity(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (501, GetStringFunc("csMemberSignatureMismatchArity",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// The object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:351)
+ static member csCtorSignatureMismatchArity(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (501, GetStringFunc("csCtorSignatureMismatchArity",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// The object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'. If some of the arguments are meant to assign values to properties, consider separating those arguments with a comma (',').
+ /// (Originally from ..\FSComp.txt:352)
+ static member csCtorSignatureMismatchArityProp(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (501, GetStringFunc("csCtorSignatureMismatchArityProp",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'.
+ /// (Originally from ..\FSComp.txt:353)
+ static member csMemberSignatureMismatchArityType(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String) = (502, GetStringFunc("csMemberSignatureMismatchArityType",",,,%s,,,%d,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// A member or object constructor '%s' taking %d arguments is not accessible from this code location. All accessible versions of method '%s' take %d arguments.
+ /// (Originally from ..\FSComp.txt:354)
+ static member csMemberNotAccessible(a0 : System.String, a1 : System.Int32, a2 : System.String, a3 : System.Int32) = (503, GetStringFunc("csMemberNotAccessible",",,,%s,,,%d,,,%s,,,%d,,,") a0 a1 a2 a3)
+ /// Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments.
+ /// (Originally from ..\FSComp.txt:355)
+ static member csIncorrectGenericInstantiation(a0 : System.String, a1 : System.String, a2 : System.Int32) = (504, GetStringFunc("csIncorrectGenericInstantiation",",,,%s,,,%s,,,%d,,,") a0 a1 a2)
+ /// The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments.
+ /// (Originally from ..\FSComp.txt:356)
+ static member csMemberOverloadArityMismatch(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (505, GetStringFunc("csMemberOverloadArityMismatch",",,,%s,,,%d,,,%d,,,") a0 a1 a2)
+ /// No %s member or object constructor named '%s' takes %d arguments
+ /// (Originally from ..\FSComp.txt:357)
+ static member csNoMemberTakesTheseArguments(a0 : System.String, a1 : System.String, a2 : System.Int32) = (506, GetStringFunc("csNoMemberTakesTheseArguments",",,,%s,,,%s,,,%d,,,") a0 a1 a2)
+ /// No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments.
+ /// (Originally from ..\FSComp.txt:358)
+ static member csNoMemberTakesTheseArguments2(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.Int32) = (507, GetStringFunc("csNoMemberTakesTheseArguments2",",,,%s,,,%s,,,%d,,,%d,,,") a0 a1 a2 a3)
+ /// No %s member or object constructor named '%s' takes %d arguments. The named argument '%s' doesn't correspond to any argument or settable return property for any overload.
+ /// (Originally from ..\FSComp.txt:359)
+ static member csNoMemberTakesTheseArguments3(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.String) = (508, GetStringFunc("csNoMemberTakesTheseArguments3",",,,%s,,,%s,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// Method or object constructor '%s' not found
+ /// (Originally from ..\FSComp.txt:360)
+ static member csMethodNotFound(a0 : System.String) = (509, GetStringFunc("csMethodNotFound",",,,%s,,,") a0)
+ /// No overloads match for method '%s'.
+ /// (Originally from ..\FSComp.txt:361)
+ static member csNoOverloadsFound(a0 : System.String) = (GetStringFunc("csNoOverloadsFound",",,,%s,,,") a0)
+ /// A unique overload for method '%s' could not be determined based on type information prior to this program point. A type annotation may be needed.
+ /// (Originally from ..\FSComp.txt:362)
+ static member csMethodIsOverloaded(a0 : System.String) = (GetStringFunc("csMethodIsOverloaded",",,,%s,,,") a0)
+ /// Candidates: %s
+ /// (Originally from ..\FSComp.txt:363)
+ static member csCandidates(a0 : System.String) = (GetStringFunc("csCandidates",",,,%s,,,") a0)
+ /// The available overloads are shown below.
+ /// (Originally from ..\FSComp.txt:364)
+ static member csSeeAvailableOverloads() = (GetStringFunc("csSeeAvailableOverloads",",,,") )
+ /// Accessibility modifiers are not permitted on 'do' bindings, but '%s' was given.
+ /// (Originally from ..\FSComp.txt:365)
+ static member parsDoCannotHaveVisibilityDeclarations(a0 : System.String) = (512, GetStringFunc("parsDoCannotHaveVisibilityDeclarations",",,,%s,,,") a0)
+ /// End of file in #if section begun at or after here
+ /// (Originally from ..\FSComp.txt:366)
+ static member parsEofInHashIf() = (513, GetStringFunc("parsEofInHashIf",",,,") )
+ /// End of file in string begun at or before here
+ /// (Originally from ..\FSComp.txt:367)
+ static member parsEofInString() = (514, GetStringFunc("parsEofInString",",,,") )
+ /// End of file in verbatim string begun at or before here
+ /// (Originally from ..\FSComp.txt:368)
+ static member parsEofInVerbatimString() = (515, GetStringFunc("parsEofInVerbatimString",",,,") )
+ /// End of file in comment begun at or before here
+ /// (Originally from ..\FSComp.txt:369)
+ static member parsEofInComment() = (516, GetStringFunc("parsEofInComment",",,,") )
+ /// End of file in string embedded in comment begun at or before here
+ /// (Originally from ..\FSComp.txt:370)
+ static member parsEofInStringInComment() = (517, GetStringFunc("parsEofInStringInComment",",,,") )
+ /// End of file in verbatim string embedded in comment begun at or before here
+ /// (Originally from ..\FSComp.txt:371)
+ static member parsEofInVerbatimStringInComment() = (518, GetStringFunc("parsEofInVerbatimStringInComment",",,,") )
+ /// End of file in IF-OCAML section begun at or before here
+ /// (Originally from ..\FSComp.txt:372)
+ static member parsEofInIfOcaml() = (519, GetStringFunc("parsEofInIfOcaml",",,,") )
+ /// End of file in directive begun at or before here
+ /// (Originally from ..\FSComp.txt:373)
+ static member parsEofInDirective() = (520, GetStringFunc("parsEofInDirective",",,,") )
+ /// No #endif found for #if or #else
+ /// (Originally from ..\FSComp.txt:374)
+ static member parsNoHashEndIfFound() = (521, GetStringFunc("parsNoHashEndIfFound",",,,") )
+ /// Attributes have been ignored in this construct
+ /// (Originally from ..\FSComp.txt:375)
+ static member parsAttributesIgnored() = (522, GetStringFunc("parsAttributesIgnored",",,,") )
+ /// 'use' bindings are not permitted in primary constructors
+ /// (Originally from ..\FSComp.txt:376)
+ static member parsUseBindingsIllegalInImplicitClassConstructors() = (523, GetStringFunc("parsUseBindingsIllegalInImplicitClassConstructors",",,,") )
+ /// 'use' bindings are not permitted in modules and are treated as 'let' bindings
+ /// (Originally from ..\FSComp.txt:377)
+ static member parsUseBindingsIllegalInModules() = (524, GetStringFunc("parsUseBindingsIllegalInModules",",,,") )
+ /// An integer for loop must use a simple identifier
+ /// (Originally from ..\FSComp.txt:378)
+ static member parsIntegerForLoopRequiresSimpleIdentifier() = (525, GetStringFunc("parsIntegerForLoopRequiresSimpleIdentifier",",,,") )
+ /// At most one 'with' augmentation is permitted
+ /// (Originally from ..\FSComp.txt:379)
+ static member parsOnlyOneWithAugmentationAllowed() = (526, GetStringFunc("parsOnlyOneWithAugmentationAllowed",",,,") )
+ /// A semicolon is not expected at this point
+ /// (Originally from ..\FSComp.txt:380)
+ static member parsUnexpectedSemicolon() = (527, GetStringFunc("parsUnexpectedSemicolon",",,,") )
+ /// Unexpected end of input
+ /// (Originally from ..\FSComp.txt:381)
+ static member parsUnexpectedEndOfFile() = (528, GetStringFunc("parsUnexpectedEndOfFile",",,,") )
+ /// Accessibility modifiers are not permitted here, but '%s' was given.
+ /// (Originally from ..\FSComp.txt:382)
+ static member parsUnexpectedVisibilityDeclaration(a0 : System.String) = (529, GetStringFunc("parsUnexpectedVisibilityDeclaration",",,,%s,,,") a0)
+ /// Only '#' compiler directives may occur prior to the first 'namespace' declaration
+ /// (Originally from ..\FSComp.txt:383)
+ static member parsOnlyHashDirectivesAllowed() = (530, GetStringFunc("parsOnlyHashDirectivesAllowed",",,,") )
+ /// Accessibility modifiers should come immediately prior to the identifier naming a construct
+ /// (Originally from ..\FSComp.txt:384)
+ static member parsVisibilityDeclarationsShouldComePriorToIdentifier() = (531, GetStringFunc("parsVisibilityDeclarationsShouldComePriorToIdentifier",",,,") )
+ /// Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...'
+ /// (Originally from ..\FSComp.txt:385)
+ static member parsNamespaceOrModuleNotBoth() = (532, GetStringFunc("parsNamespaceOrModuleNotBoth",",,,") )
+ /// A module abbreviation must be a simple name, not a path
+ /// (Originally from ..\FSComp.txt:386)
+ static member parsModuleAbbreviationMustBeSimpleName() = (534, GetStringFunc("parsModuleAbbreviationMustBeSimpleName",",,,") )
+ /// Ignoring attributes on module abbreviation
+ /// (Originally from ..\FSComp.txt:387)
+ static member parsIgnoreAttributesOnModuleAbbreviation() = (535, GetStringFunc("parsIgnoreAttributesOnModuleAbbreviation",",,,") )
+ /// The '%s' accessibility attribute is not allowed on module abbreviation. Module abbreviations are always private.
+ /// (Originally from ..\FSComp.txt:388)
+ static member parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate(a0 : System.String) = (536, GetStringFunc("parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate",",,,%s,,,") a0)
+ /// The '%s' visibility attribute is not allowed on module abbreviation. Module abbreviations are always private.
+ /// (Originally from ..\FSComp.txt:389)
+ static member parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate(a0 : System.String) = (537, GetStringFunc("parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate",",,,%s,,,") a0)
+ /// Unclosed block
+ /// (Originally from ..\FSComp.txt:390)
+ static member parsUnClosedBlockInHashLight() = (538, GetStringFunc("parsUnClosedBlockInHashLight",",,,") )
+ /// Unmatched 'begin' or 'struct'
+ /// (Originally from ..\FSComp.txt:391)
+ static member parsUnmatchedBeginOrStruct() = (539, GetStringFunc("parsUnmatchedBeginOrStruct",",,,") )
+ /// A module name must be a simple name, not a path
+ /// (Originally from ..\FSComp.txt:392)
+ static member parsModuleDefnMustBeSimpleName() = (541, GetStringFunc("parsModuleDefnMustBeSimpleName",",,,") )
+ /// Unexpected empty type moduleDefn list
+ /// (Originally from ..\FSComp.txt:393)
+ static member parsUnexpectedEmptyModuleDefn() = (542, GetStringFunc("parsUnexpectedEmptyModuleDefn",",,,") )
+ /// Attributes should be placed before 'val'
+ /// (Originally from ..\FSComp.txt:394)
+ static member parsAttributesMustComeBeforeVal() = (GetStringFunc("parsAttributesMustComeBeforeVal",",,,") )
+ /// Attributes are not permitted on interface implementations
+ /// (Originally from ..\FSComp.txt:395)
+ static member parsAttributesAreNotPermittedOnInterfaceImplementations() = (543, GetStringFunc("parsAttributesAreNotPermittedOnInterfaceImplementations",",,,") )
+ /// Syntax error
+ /// (Originally from ..\FSComp.txt:396)
+ static member parsSyntaxError() = (544, GetStringFunc("parsSyntaxError",",,,") )
+ /// Augmentations are not permitted on delegate type moduleDefns
+ /// (Originally from ..\FSComp.txt:397)
+ static member parsAugmentationsIllegalOnDelegateType() = (545, GetStringFunc("parsAugmentationsIllegalOnDelegateType",",,,") )
+ /// Unmatched 'class', 'interface' or 'struct'
+ /// (Originally from ..\FSComp.txt:398)
+ static member parsUnmatchedClassInterfaceOrStruct() = (546, GetStringFunc("parsUnmatchedClassInterfaceOrStruct",",,,") )
+ /// A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'.
+ /// (Originally from ..\FSComp.txt:399)
+ static member parsEmptyTypeDefinition() = (547, GetStringFunc("parsEmptyTypeDefinition",",,,") )
+ /// Unmatched 'with' or badly formatted 'with' block
+ /// (Originally from ..\FSComp.txt:400)
+ static member parsUnmatchedWith() = (550, GetStringFunc("parsUnmatchedWith",",,,") )
+ /// 'get', 'set' or 'get,set' required
+ /// (Originally from ..\FSComp.txt:401)
+ static member parsGetOrSetRequired() = (551, GetStringFunc("parsGetOrSetRequired",",,,") )
+ /// Only class types may take value arguments
+ /// (Originally from ..\FSComp.txt:402)
+ static member parsOnlyClassCanTakeValueArguments() = (552, GetStringFunc("parsOnlyClassCanTakeValueArguments",",,,") )
+ /// Unmatched 'begin'
+ /// (Originally from ..\FSComp.txt:403)
+ static member parsUnmatchedBegin() = (553, GetStringFunc("parsUnmatchedBegin",",,,") )
+ /// Invalid declaration syntax
+ /// (Originally from ..\FSComp.txt:404)
+ static member parsInvalidDeclarationSyntax() = (554, GetStringFunc("parsInvalidDeclarationSyntax",",,,") )
+ /// 'get' and/or 'set' required
+ /// (Originally from ..\FSComp.txt:405)
+ static member parsGetAndOrSetRequired() = (555, GetStringFunc("parsGetAndOrSetRequired",",,,") )
+ /// Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...'
+ /// (Originally from ..\FSComp.txt:406)
+ static member parsTypeAnnotationsOnGetSet() = (556, GetStringFunc("parsTypeAnnotationsOnGetSet",",,,") )
+ /// A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...'
+ /// (Originally from ..\FSComp.txt:407)
+ static member parsGetterMustHaveAtLeastOneArgument() = (557, GetStringFunc("parsGetterMustHaveAtLeastOneArgument",",,,") )
+ /// Multiple accessibilities given for property getter or setter
+ /// (Originally from ..\FSComp.txt:408)
+ static member parsMultipleAccessibilitiesForGetSet() = (558, GetStringFunc("parsMultipleAccessibilitiesForGetSet",",,,") )
+ /// Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... '
+ /// (Originally from ..\FSComp.txt:409)
+ static member parsSetSyntax() = (559, GetStringFunc("parsSetSyntax",",,,") )
+ /// Interfaces always have the same visibility as the enclosing type
+ /// (Originally from ..\FSComp.txt:410)
+ static member parsInterfacesHaveSameVisibilityAsEnclosingType() = (560, GetStringFunc("parsInterfacesHaveSameVisibilityAsEnclosingType",",,,") )
+ /// Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type.
+ /// (Originally from ..\FSComp.txt:411)
+ static member parsAccessibilityModsIllegalForAbstract() = (561, GetStringFunc("parsAccessibilityModsIllegalForAbstract",",,,") )
+ /// Attributes are not permitted on 'inherit' declarations
+ /// (Originally from ..\FSComp.txt:412)
+ static member parsAttributesIllegalOnInherit() = (562, GetStringFunc("parsAttributesIllegalOnInherit",",,,") )
+ /// Accessibility modifiers are not permitted on an 'inherits' declaration
+ /// (Originally from ..\FSComp.txt:413)
+ static member parsVisibilityIllegalOnInherit() = (563, GetStringFunc("parsVisibilityIllegalOnInherit",",,,") )
+ /// 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding.
+ /// (Originally from ..\FSComp.txt:414)
+ static member parsInheritDeclarationsCannotHaveAsBindings() = (564, GetStringFunc("parsInheritDeclarationsCannotHaveAsBindings",",,,") )
+ /// Attributes are not allowed here
+ /// (Originally from ..\FSComp.txt:415)
+ static member parsAttributesIllegalHere() = (565, GetStringFunc("parsAttributesIllegalHere",",,,") )
+ /// Accessibility modifiers are not permitted in this position for type abbreviations
+ /// (Originally from ..\FSComp.txt:416)
+ static member parsTypeAbbreviationsCannotHaveVisibilityDeclarations() = (566, GetStringFunc("parsTypeAbbreviationsCannotHaveVisibilityDeclarations",",,,") )
+ /// Accessibility modifiers are not permitted in this position for enum types
+ /// (Originally from ..\FSComp.txt:417)
+ static member parsEnumTypesCannotHaveVisibilityDeclarations() = (567, GetStringFunc("parsEnumTypesCannotHaveVisibilityDeclarations",",,,") )
+ /// All enum fields must be given values
+ /// (Originally from ..\FSComp.txt:418)
+ static member parsAllEnumFieldsRequireValues() = (568, GetStringFunc("parsAllEnumFieldsRequireValues",",,,") )
+ /// Accessibility modifiers are not permitted on inline assembly code types
+ /// (Originally from ..\FSComp.txt:419)
+ static member parsInlineAssemblyCannotHaveVisibilityDeclarations() = (569, GetStringFunc("parsInlineAssemblyCannotHaveVisibilityDeclarations",",,,") )
+ /// Unexpected identifier: '%s'
+ /// (Originally from ..\FSComp.txt:420)
+ static member parsUnexpectedIdentifier(a0 : System.String) = (571, GetStringFunc("parsUnexpectedIdentifier",",,,%s,,,") a0)
+ /// Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation.
+ /// (Originally from ..\FSComp.txt:421)
+ static member parsUnionCasesCannotHaveVisibilityDeclarations() = (572, GetStringFunc("parsUnionCasesCannotHaveVisibilityDeclarations",",,,") )
+ /// Accessibility modifiers are not permitted on enumeration fields
+ /// (Originally from ..\FSComp.txt:422)
+ static member parsEnumFieldsCannotHaveVisibilityDeclarations() = (573, GetStringFunc("parsEnumFieldsCannotHaveVisibilityDeclarations",",,,") )
+ /// Consider using a separate record type instead
+ /// (Originally from ..\FSComp.txt:423)
+ static member parsConsiderUsingSeparateRecordType() = (GetStringFunc("parsConsiderUsingSeparateRecordType",",,,") )
+ /// Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation.
+ /// (Originally from ..\FSComp.txt:424)
+ static member parsRecordFieldsCannotHaveVisibilityDeclarations() = (575, GetStringFunc("parsRecordFieldsCannotHaveVisibilityDeclarations",",,,") )
+ /// The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings
+ /// (Originally from ..\FSComp.txt:425)
+ static member parsLetAndForNonRecBindings() = (576, GetStringFunc("parsLetAndForNonRecBindings",",,,") )
+ /// Unmatched '('
+ /// (Originally from ..\FSComp.txt:426)
+ static member parsUnmatchedParen() = (583, GetStringFunc("parsUnmatchedParen",",,,") )
+ /// Successive patterns should be separated by spaces or tupled
+ /// (Originally from ..\FSComp.txt:427)
+ static member parsSuccessivePatternsShouldBeSpacedOrTupled() = (584, GetStringFunc("parsSuccessivePatternsShouldBeSpacedOrTupled",",,,") )
+ /// No matching 'in' found for this 'let'
+ /// (Originally from ..\FSComp.txt:428)
+ static member parsNoMatchingInForLet() = (586, GetStringFunc("parsNoMatchingInForLet",",,,") )
+ /// Error in the return expression for this 'let'. Possible incorrect indentation.
+ /// (Originally from ..\FSComp.txt:429)
+ static member parsErrorInReturnForLetIncorrectIndentation() = (587, GetStringFunc("parsErrorInReturnForLetIncorrectIndentation",",,,") )
+ /// The block following this '%s' is unfinished. Every code block is an expression and must have a result. '%s' cannot be the final code element in a block. Consider giving this block an explicit result.
+ /// (Originally from ..\FSComp.txt:430)
+ static member parsExpectedExpressionAfterLet(a0 : System.String, a1 : System.String) = (588, GetStringFunc("parsExpectedExpressionAfterLet",",,,%s,,,%s,,,") a0 a1)
+ /// Incomplete conditional. Expected 'if then ' or 'if then else '.
+ /// (Originally from ..\FSComp.txt:431)
+ static member parsIncompleteIf() = (589, GetStringFunc("parsIncompleteIf",",,,") )
+ /// 'assert' may not be used as a first class value. Use 'assert ' instead.
+ /// (Originally from ..\FSComp.txt:432)
+ static member parsAssertIsNotFirstClassValue() = (590, GetStringFunc("parsAssertIsNotFirstClassValue",",,,") )
+ /// Identifier expected
+ /// (Originally from ..\FSComp.txt:433)
+ static member parsIdentifierExpected() = (594, GetStringFunc("parsIdentifierExpected",",,,") )
+ /// 'in' or '=' expected
+ /// (Originally from ..\FSComp.txt:434)
+ static member parsInOrEqualExpected() = (595, GetStringFunc("parsInOrEqualExpected",",,,") )
+ /// The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions.
+ /// (Originally from ..\FSComp.txt:435)
+ static member parsArrowUseIsLimited() = (596, GetStringFunc("parsArrowUseIsLimited",",,,") )
+ /// Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized
+ /// (Originally from ..\FSComp.txt:436)
+ static member parsSuccessiveArgsShouldBeSpacedOrTupled() = (597, GetStringFunc("parsSuccessiveArgsShouldBeSpacedOrTupled",",,,") )
+ /// Unmatched '['
+ /// (Originally from ..\FSComp.txt:437)
+ static member parsUnmatchedBracket() = (598, GetStringFunc("parsUnmatchedBracket",",,,") )
+ /// Missing qualification after '.'
+ /// (Originally from ..\FSComp.txt:438)
+ static member parsMissingQualificationAfterDot() = (599, GetStringFunc("parsMissingQualificationAfterDot",",,,") )
+ /// In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array
+ /// (Originally from ..\FSComp.txt:439)
+ static member parsParenFormIsForML() = (GetStringFunc("parsParenFormIsForML",",,,") )
+ /// Mismatched quotation, beginning with '%s'
+ /// (Originally from ..\FSComp.txt:440)
+ static member parsMismatchedQuote(a0 : System.String) = (601, GetStringFunc("parsMismatchedQuote",",,,%s,,,") a0)
+ /// Unmatched '%s'
+ /// (Originally from ..\FSComp.txt:441)
+ static member parsUnmatched(a0 : System.String) = (602, GetStringFunc("parsUnmatched",",,,%s,,,") a0)
+ /// Unmatched '[|'
+ /// (Originally from ..\FSComp.txt:442)
+ static member parsUnmatchedBracketBar() = (603, GetStringFunc("parsUnmatchedBracketBar",",,,") )
+ /// Unmatched '{'
+ /// (Originally from ..\FSComp.txt:443)
+ static member parsUnmatchedBrace() = (604, GetStringFunc("parsUnmatchedBrace",",,,") )
+ /// Field bindings must have the form 'id = expr;'
+ /// (Originally from ..\FSComp.txt:444)
+ static member parsFieldBinding() = (609, GetStringFunc("parsFieldBinding",",,,") )
+ /// This member is not permitted in an object implementation
+ /// (Originally from ..\FSComp.txt:445)
+ static member parsMemberIllegalInObjectImplementation() = (610, GetStringFunc("parsMemberIllegalInObjectImplementation",",,,") )
+ /// Missing function body
+ /// (Originally from ..\FSComp.txt:446)
+ static member parsMissingFunctionBody() = (611, GetStringFunc("parsMissingFunctionBody",",,,") )
+ /// Syntax error in labelled type argument
+ /// (Originally from ..\FSComp.txt:447)
+ static member parsSyntaxErrorInLabeledType() = (613, GetStringFunc("parsSyntaxErrorInLabeledType",",,,") )
+ /// Unexpected infix operator in type expression
+ /// (Originally from ..\FSComp.txt:448)
+ static member parsUnexpectedInfixOperator() = (615, GetStringFunc("parsUnexpectedInfixOperator",",,,") )
+ /// The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident' instead
+ /// (Originally from ..\FSComp.txt:449)
+ static member parsMultiArgumentGenericTypeFormDeprecated() = (GetStringFunc("parsMultiArgumentGenericTypeFormDeprecated",",,,") )
+ /// Invalid literal in type
+ /// (Originally from ..\FSComp.txt:450)
+ static member parsInvalidLiteralInType() = (618, GetStringFunc("parsInvalidLiteralInType",",,,") )
+ /// Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'.
+ /// (Originally from ..\FSComp.txt:451)
+ static member parsUnexpectedOperatorForUnitOfMeasure() = (619, GetStringFunc("parsUnexpectedOperatorForUnitOfMeasure",",,,") )
+ /// Unexpected integer literal in unit-of-measure expression
+ /// (Originally from ..\FSComp.txt:452)
+ static member parsUnexpectedIntegerLiteralForUnitOfMeasure() = (620, GetStringFunc("parsUnexpectedIntegerLiteralForUnitOfMeasure",",,,") )
+ /// Syntax error: unexpected type parameter specification
+ /// (Originally from ..\FSComp.txt:453)
+ static member parsUnexpectedTypeParameter() = (621, GetStringFunc("parsUnexpectedTypeParameter",",,,") )
+ /// Mismatched quotation operator name, beginning with '%s'
+ /// (Originally from ..\FSComp.txt:454)
+ static member parsMismatchedQuotationName(a0 : System.String) = (622, GetStringFunc("parsMismatchedQuotationName",",,,%s,,,") a0)
+ /// Active pattern case identifiers must begin with an uppercase letter
+ /// (Originally from ..\FSComp.txt:455)
+ static member parsActivePatternCaseMustBeginWithUpperCase() = (623, GetStringFunc("parsActivePatternCaseMustBeginWithUpperCase",",,,") )
+ /// The '|' character is not permitted in active pattern case identifiers
+ /// (Originally from ..\FSComp.txt:456)
+ static member parsActivePatternCaseContainsPipe() = (624, GetStringFunc("parsActivePatternCaseContainsPipe",",,,") )
+ /// Denominator must not be 0 in unit-of-measure exponent
+ /// (Originally from ..\FSComp.txt:457)
+ static member parsIllegalDenominatorForMeasureExponent() = (625, GetStringFunc("parsIllegalDenominatorForMeasureExponent",",,,") )
+ /// No '=' symbol should follow a 'namespace' declaration
+ /// (Originally from ..\FSComp.txt:458)
+ static member parsNoEqualShouldFollowNamespace() = (GetStringFunc("parsNoEqualShouldFollowNamespace",",,,") )
+ /// The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end'
+ /// (Originally from ..\FSComp.txt:459)
+ static member parsSyntaxModuleStructEndDeprecated() = (GetStringFunc("parsSyntaxModuleStructEndDeprecated",",,,") )
+ /// The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end'
+ /// (Originally from ..\FSComp.txt:460)
+ static member parsSyntaxModuleSigEndDeprecated() = (GetStringFunc("parsSyntaxModuleSigEndDeprecated",",,,") )
+ /// A static field was used where an instance field is expected
+ /// (Originally from ..\FSComp.txt:461)
+ static member tcStaticFieldUsedWhenInstanceFieldExpected() = (627, GetStringFunc("tcStaticFieldUsedWhenInstanceFieldExpected",",,,") )
+ /// Method '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:462)
+ static member tcMethodNotAccessible(a0 : System.String) = (629, GetStringFunc("tcMethodNotAccessible",",,,%s,,,") a0)
+ /// Implicit product of measures following /
+ /// (Originally from ..\FSComp.txt:464)
+ static member tcImplicitMeasureFollowingSlash() = (632, GetStringFunc("tcImplicitMeasureFollowingSlash",",,,") )
+ /// Unexpected SynMeasure.Anon
+ /// (Originally from ..\FSComp.txt:465)
+ static member tcUnexpectedMeasureAnon() = (633, GetStringFunc("tcUnexpectedMeasureAnon",",,,") )
+ /// Non-zero constants cannot have generic units. For generic zero, write 0.0<_>.
+ /// (Originally from ..\FSComp.txt:466)
+ static member tcNonZeroConstantCannotHaveGenericUnit() = (634, GetStringFunc("tcNonZeroConstantCannotHaveGenericUnit",",,,") )
+ /// In sequence expressions, results are generated using 'yield'
+ /// (Originally from ..\FSComp.txt:467)
+ static member tcSeqResultsUseYield() = (635, GetStringFunc("tcSeqResultsUseYield",",,,") )
+ /// Unexpected big rational constant
+ /// (Originally from ..\FSComp.txt:468)
+ static member tcUnexpectedBigRationalConstant() = (GetStringFunc("tcUnexpectedBigRationalConstant",",,,") )
+ /// Units-of-measure supported only on float, float32, decimal and signed integer types
+ /// (Originally from ..\FSComp.txt:469)
+ static member tcInvalidTypeForUnitsOfMeasure() = (636, GetStringFunc("tcInvalidTypeForUnitsOfMeasure",",,,") )
+ /// Unexpected Const_uint16array
+ /// (Originally from ..\FSComp.txt:470)
+ static member tcUnexpectedConstUint16Array() = (GetStringFunc("tcUnexpectedConstUint16Array",",,,") )
+ /// Unexpected Const_bytearray
+ /// (Originally from ..\FSComp.txt:471)
+ static member tcUnexpectedConstByteArray() = (GetStringFunc("tcUnexpectedConstByteArray",",,,") )
+ /// A parameter with attributes must also be given a name, e.g. '[] Name : Type'
+ /// (Originally from ..\FSComp.txt:472)
+ static member tcParameterRequiresName() = (640, GetStringFunc("tcParameterRequiresName",",,,") )
+ /// Return values cannot have names
+ /// (Originally from ..\FSComp.txt:473)
+ static member tcReturnValuesCannotHaveNames() = (641, GetStringFunc("tcReturnValuesCannotHaveNames",",,,") )
+ /// MemberKind.PropertyGetSet only expected in parse trees
+ /// (Originally from ..\FSComp.txt:474)
+ static member tcMemberKindPropertyGetSetNotExpected() = (GetStringFunc("tcMemberKindPropertyGetSetNotExpected",",,,") )
+ /// Namespaces cannot contain values. Consider using a module to hold your value declarations.
+ /// (Originally from ..\FSComp.txt:475)
+ static member tcNamespaceCannotContainValues() = (201, GetStringFunc("tcNamespaceCannotContainValues",",,,") )
+ /// Namespaces cannot contain extension members except in the same file and namespace declaration group where the type is defined. Consider using a module to hold declarations of extension members.
+ /// (Originally from ..\FSComp.txt:476)
+ static member tcNamespaceCannotContainExtensionMembers() = (644, GetStringFunc("tcNamespaceCannotContainExtensionMembers",",,,") )
+ /// Multiple visibility attributes have been specified for this identifier
+ /// (Originally from ..\FSComp.txt:477)
+ static member tcMultipleVisibilityAttributes() = (645, GetStringFunc("tcMultipleVisibilityAttributes",",,,") )
+ /// Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions.
+ /// (Originally from ..\FSComp.txt:478)
+ static member tcMultipleVisibilityAttributesWithLet() = (646, GetStringFunc("tcMultipleVisibilityAttributesWithLet",",,,") )
+ /// The name '(%s)' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '%s' instead.
+ /// (Originally from ..\FSComp.txt:479)
+ static member tcInvalidMethodNameForRelationalOperator(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMethodNameForRelationalOperator",",,,%s,,,%s,,,") a0 a1)
+ /// The name '(%s)' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '%s' instead.
+ /// (Originally from ..\FSComp.txt:480)
+ static member tcInvalidMethodNameForEquality(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMethodNameForEquality",",,,%s,,,%s,,,") a0 a1)
+ /// The name '(%s)' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '%s' instead.
+ /// (Originally from ..\FSComp.txt:481)
+ static member tcInvalidMemberName(a0 : System.String, a1 : System.String) = (GetStringFunc("tcInvalidMemberName",",,,%s,,,%s,,,") a0 a1)
+ /// The name '(%s)' should not be used as a member name because it is given a standard definition in the F# library over fixed types
+ /// (Originally from ..\FSComp.txt:482)
+ static member tcInvalidMemberNameFixedTypes(a0 : System.String) = (GetStringFunc("tcInvalidMemberNameFixedTypes",",,,%s,,,") a0)
+ /// The '%s' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type.
+ /// (Originally from ..\FSComp.txt:483)
+ static member tcInvalidOperatorDefinitionRelational(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinitionRelational",",,,%s,,,") a0)
+ /// The '%s' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type.
+ /// (Originally from ..\FSComp.txt:484)
+ static member tcInvalidOperatorDefinitionEquality(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinitionEquality",",,,%s,,,") a0)
+ /// The '%s' operator should not normally be redefined. Consider using a different operator name
+ /// (Originally from ..\FSComp.txt:485)
+ static member tcInvalidOperatorDefinition(a0 : System.String) = (GetStringFunc("tcInvalidOperatorDefinition",",,,%s,,,") a0)
+ /// The '%s' operator cannot be redefined. Consider using a different operator name
+ /// (Originally from ..\FSComp.txt:486)
+ static member tcInvalidIndexOperatorDefinition(a0 : System.String) = (GetStringFunc("tcInvalidIndexOperatorDefinition",",,,%s,,,") a0)
+ /// Expected module or namespace parent %s
+ /// (Originally from ..\FSComp.txt:487)
+ static member tcExpectModuleOrNamespaceParent(a0 : System.String) = (GetStringFunc("tcExpectModuleOrNamespaceParent",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type.
+ /// (Originally from ..\FSComp.txt:488)
+ static member tcImplementsIComparableExplicitly(a0 : System.String) = (647, GetStringFunc("tcImplementsIComparableExplicitly",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable.
+ /// (Originally from ..\FSComp.txt:489)
+ static member tcImplementsGenericIComparableExplicitly(a0 : System.String) = (648, GetStringFunc("tcImplementsGenericIComparableExplicitly",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type.
+ /// (Originally from ..\FSComp.txt:490)
+ static member tcImplementsIStructuralComparableExplicitly(a0 : System.String) = (649, GetStringFunc("tcImplementsIStructuralComparableExplicitly",",,,%s,,,") a0)
+ /// This record contains fields from inconsistent types
+ /// (Originally from ..\FSComp.txt:491)
+ static member tcRecordFieldInconsistentTypes() = (656, GetStringFunc("tcRecordFieldInconsistentTypes",",,,") )
+ /// DLLImport stubs cannot be inlined
+ /// (Originally from ..\FSComp.txt:492)
+ static member tcDllImportStubsCannotBeInlined() = (657, GetStringFunc("tcDllImportStubsCannotBeInlined",",,,") )
+ /// Structs may only bind a 'this' parameter at member declarations
+ /// (Originally from ..\FSComp.txt:493)
+ static member tcStructsCanOnlyBindThisAtMemberDeclaration() = (658, GetStringFunc("tcStructsCanOnlyBindThisAtMemberDeclaration",",,,") )
+ /// Unexpected expression at recursive inference point
+ /// (Originally from ..\FSComp.txt:494)
+ static member tcUnexpectedExprAtRecInfPoint() = (659, GetStringFunc("tcUnexpectedExprAtRecInfPoint",",,,") )
+ /// This code is less generic than required by its annotations because the explicit type variable '%s' could not be generalized. It was constrained to be '%s'.
+ /// (Originally from ..\FSComp.txt:495)
+ static member tcLessGenericBecauseOfAnnotation(a0 : System.String, a1 : System.String) = (660, GetStringFunc("tcLessGenericBecauseOfAnnotation",",,,%s,,,%s,,,") a0 a1)
+ /// One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types
+ /// (Originally from ..\FSComp.txt:496)
+ static member tcConstrainedTypeVariableCannotBeGeneralized() = (661, GetStringFunc("tcConstrainedTypeVariableCannotBeGeneralized",",,,") )
+ /// A generic type parameter has been used in a way that constrains it to always be '%s'
+ /// (Originally from ..\FSComp.txt:497)
+ static member tcGenericParameterHasBeenConstrained(a0 : System.String) = (662, GetStringFunc("tcGenericParameterHasBeenConstrained",",,,%s,,,") a0)
+ /// This type parameter has been used in a way that constrains it to always be '%s'
+ /// (Originally from ..\FSComp.txt:498)
+ static member tcTypeParameterHasBeenConstrained(a0 : System.String) = (663, GetStringFunc("tcTypeParameterHasBeenConstrained",",,,%s,,,") a0)
+ /// The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x).
+ /// (Originally from ..\FSComp.txt:499)
+ static member tcTypeParametersInferredAreNotStable() = (664, GetStringFunc("tcTypeParametersInferredAreNotStable",",,,") )
+ /// Explicit type parameters may only be used on module or member bindings
+ /// (Originally from ..\FSComp.txt:500)
+ static member tcExplicitTypeParameterInvalid() = (665, GetStringFunc("tcExplicitTypeParameterInvalid",",,,") )
+ /// You must explicitly declare either all or no type parameters when overriding a generic abstract method
+ /// (Originally from ..\FSComp.txt:501)
+ static member tcOverridingMethodRequiresAllOrNoTypeParameters() = (666, GetStringFunc("tcOverridingMethodRequiresAllOrNoTypeParameters",",,,") )
+ /// The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type
+ /// (Originally from ..\FSComp.txt:502)
+ static member tcFieldsDoNotDetermineUniqueRecordType() = (667, GetStringFunc("tcFieldsDoNotDetermineUniqueRecordType",",,,") )
+ /// The field '%s' appears twice in this record expression or pattern
+ /// (Originally from ..\FSComp.txt:503)
+ static member tcFieldAppearsTwiceInRecord(a0 : System.String) = (668, GetStringFunc("tcFieldAppearsTwiceInRecord",",,,%s,,,") a0)
+ /// Unknown union case
+ /// (Originally from ..\FSComp.txt:504)
+ static member tcUnknownUnion() = (669, GetStringFunc("tcUnknownUnion",",,,") )
+ /// This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope.
+ /// (Originally from ..\FSComp.txt:505)
+ static member tcNotSufficientlyGenericBecauseOfScope(a0 : System.String) = (670, GetStringFunc("tcNotSufficientlyGenericBecauseOfScope",",,,%s,,,") a0)
+ /// A property cannot have explicit type parameters. Consider using a method instead.
+ /// (Originally from ..\FSComp.txt:506)
+ static member tcPropertyRequiresExplicitTypeParameters() = (671, GetStringFunc("tcPropertyRequiresExplicitTypeParameters",",,,") )
+ /// A constructor cannot have explicit type parameters. Consider using a static construction method instead.
+ /// (Originally from ..\FSComp.txt:507)
+ static member tcConstructorCannotHaveTypeParameters() = (672, GetStringFunc("tcConstructorCannotHaveTypeParameters",",,,") )
+ /// This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'.
+ /// (Originally from ..\FSComp.txt:508)
+ static member tcInstanceMemberRequiresTarget() = (673, GetStringFunc("tcInstanceMemberRequiresTarget",",,,") )
+ /// Unexpected source-level property specification in syntax tree
+ /// (Originally from ..\FSComp.txt:509)
+ static member tcUnexpectedPropertyInSyntaxTree() = (674, GetStringFunc("tcUnexpectedPropertyInSyntaxTree",",,,") )
+ /// A static initializer requires an argument
+ /// (Originally from ..\FSComp.txt:510)
+ static member tcStaticInitializerRequiresArgument() = (675, GetStringFunc("tcStaticInitializerRequiresArgument",",,,") )
+ /// An object constructor requires an argument
+ /// (Originally from ..\FSComp.txt:511)
+ static member tcObjectConstructorRequiresArgument() = (676, GetStringFunc("tcObjectConstructorRequiresArgument",",,,") )
+ /// This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'.
+ /// (Originally from ..\FSComp.txt:512)
+ static member tcStaticMemberShouldNotHaveThis() = (677, GetStringFunc("tcStaticMemberShouldNotHaveThis",",,,") )
+ /// An explicit static initializer should use the syntax 'static new(args) = expr'
+ /// (Originally from ..\FSComp.txt:513)
+ static member tcExplicitStaticInitializerSyntax() = (678, GetStringFunc("tcExplicitStaticInitializerSyntax",",,,") )
+ /// An explicit object constructor should use the syntax 'new(args) = expr'
+ /// (Originally from ..\FSComp.txt:514)
+ static member tcExplicitObjectConstructorSyntax() = (679, GetStringFunc("tcExplicitObjectConstructorSyntax",",,,") )
+ /// Unexpected source-level property specification
+ /// (Originally from ..\FSComp.txt:515)
+ static member tcUnexpectedPropertySpec() = (680, GetStringFunc("tcUnexpectedPropertySpec",",,,") )
+ /// This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions.
+ /// (Originally from ..\FSComp.txt:516)
+ static member tcObjectExpressionFormDeprecated() = (GetStringFunc("tcObjectExpressionFormDeprecated",",,,") )
+ /// Invalid declaration
+ /// (Originally from ..\FSComp.txt:517)
+ static member tcInvalidDeclaration() = (682, GetStringFunc("tcInvalidDeclaration",",,,") )
+ /// Attributes are not allowed within patterns
+ /// (Originally from ..\FSComp.txt:518)
+ static member tcAttributesInvalidInPatterns() = (683, GetStringFunc("tcAttributesInvalidInPatterns",",,,") )
+ /// The generic function '%s' must be given explicit type argument(s)
+ /// (Originally from ..\FSComp.txt:519)
+ static member tcFunctionRequiresExplicitTypeArguments(a0 : System.String) = (685, GetStringFunc("tcFunctionRequiresExplicitTypeArguments",",,,%s,,,") a0)
+ /// The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly
+ /// (Originally from ..\FSComp.txt:520)
+ static member tcDoesNotAllowExplicitTypeArguments(a0 : System.String) = (686, GetStringFunc("tcDoesNotAllowExplicitTypeArguments",",,,%s,,,") a0)
+ /// This value, type or method expects %d type parameter(s) but was given %d
+ /// (Originally from ..\FSComp.txt:521)
+ static member tcTypeParameterArityMismatch(a0 : System.Int32, a1 : System.Int32) = (687, GetStringFunc("tcTypeParameterArityMismatch",",,,%d,,,%d,,,") a0 a1)
+ /// The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization
+ /// (Originally from ..\FSComp.txt:522)
+ static member tcDefaultStructConstructorCall() = (688, GetStringFunc("tcDefaultStructConstructorCall",",,,") )
+ /// Couldn't find Dispose on IDisposable, or it was overloaded
+ /// (Originally from ..\FSComp.txt:523)
+ static member tcCouldNotFindIDisposable() = (GetStringFunc("tcCouldNotFindIDisposable",",,,") )
+ /// This value is not a literal and cannot be used in a pattern
+ /// (Originally from ..\FSComp.txt:524)
+ static member tcNonLiteralCannotBeUsedInPattern() = (689, GetStringFunc("tcNonLiteralCannotBeUsedInPattern",",,,") )
+ /// This field is readonly
+ /// (Originally from ..\FSComp.txt:525)
+ static member tcFieldIsReadonly() = (690, GetStringFunc("tcFieldIsReadonly",",,,") )
+ /// Named arguments must appear after all other arguments
+ /// (Originally from ..\FSComp.txt:526)
+ static member tcNameArgumentsMustAppearLast() = (691, GetStringFunc("tcNameArgumentsMustAppearLast",",,,") )
+ /// This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking %d arguments.
+ /// (Originally from ..\FSComp.txt:527)
+ static member tcFunctionRequiresExplicitLambda(a0 : System.Int32) = (692, GetStringFunc("tcFunctionRequiresExplicitLambda",",,,%d,,,") a0)
+ /// The type '%s' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method
+ /// (Originally from ..\FSComp.txt:528)
+ static member tcTypeCannotBeEnumerated(a0 : System.String) = (693, GetStringFunc("tcTypeCannotBeEnumerated",",,,%s,,,") a0)
+ /// This recursive binding uses an invalid mixture of recursive forms
+ /// (Originally from ..\FSComp.txt:529)
+ static member tcInvalidMixtureOfRecursiveForms() = (695, GetStringFunc("tcInvalidMixtureOfRecursiveForms",",,,") )
+ /// This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor.
+ /// (Originally from ..\FSComp.txt:530)
+ static member tcInvalidObjectConstructionExpression() = (696, GetStringFunc("tcInvalidObjectConstructionExpression",",,,") )
+ /// Invalid constraint
+ /// (Originally from ..\FSComp.txt:531)
+ static member tcInvalidConstraint() = (697, GetStringFunc("tcInvalidConstraint",",,,") )
+ /// Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution
+ /// (Originally from ..\FSComp.txt:532)
+ static member tcInvalidConstraintTypeSealed() = (698, GetStringFunc("tcInvalidConstraintTypeSealed",",,,") )
+ /// An 'enum' constraint must be of the form 'enum'
+ /// (Originally from ..\FSComp.txt:533)
+ static member tcInvalidEnumConstraint() = (699, GetStringFunc("tcInvalidEnumConstraint",",,,") )
+ /// 'new' constraints must take one argument of type 'unit' and return the constructed type
+ /// (Originally from ..\FSComp.txt:534)
+ static member tcInvalidNewConstraint() = (700, GetStringFunc("tcInvalidNewConstraint",",,,") )
+ /// This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'.
+ /// (Originally from ..\FSComp.txt:535)
+ static member tcInvalidPropertyType() = (701, GetStringFunc("tcInvalidPropertyType",",,,") )
+ /// Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [] attribute.
+ /// (Originally from ..\FSComp.txt:536)
+ static member tcExpectedUnitOfMeasureMarkWithAttribute() = (702, GetStringFunc("tcExpectedUnitOfMeasureMarkWithAttribute",",,,") )
+ /// Expected type parameter, not unit-of-measure parameter
+ /// (Originally from ..\FSComp.txt:537)
+ static member tcExpectedTypeParameter() = (703, GetStringFunc("tcExpectedTypeParameter",",,,") )
+ /// Expected type, not unit-of-measure
+ /// (Originally from ..\FSComp.txt:538)
+ static member tcExpectedTypeNotUnitOfMeasure() = (704, GetStringFunc("tcExpectedTypeNotUnitOfMeasure",",,,") )
+ /// Expected unit-of-measure, not type
+ /// (Originally from ..\FSComp.txt:539)
+ static member tcExpectedUnitOfMeasureNotType() = (705, GetStringFunc("tcExpectedUnitOfMeasureNotType",",,,") )
+ /// Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets.
+ /// (Originally from ..\FSComp.txt:540)
+ static member tcInvalidUnitsOfMeasurePrefix() = (706, GetStringFunc("tcInvalidUnitsOfMeasurePrefix",",,,") )
+ /// Unit-of-measure cannot be used in type constructor application
+ /// (Originally from ..\FSComp.txt:541)
+ static member tcUnitsOfMeasureInvalidInTypeConstructor() = (707, GetStringFunc("tcUnitsOfMeasureInvalidInTypeConstructor",",,,") )
+ /// This control construct may only be used if the computation expression builder defines a '%s' method
+ /// (Originally from ..\FSComp.txt:542)
+ static member tcRequireBuilderMethod(a0 : System.String) = (708, GetStringFunc("tcRequireBuilderMethod",",,,%s,,,") a0)
+ /// This type has no nested types
+ /// (Originally from ..\FSComp.txt:543)
+ static member tcTypeHasNoNestedTypes() = (709, GetStringFunc("tcTypeHasNoNestedTypes",",,,") )
+ /// Unexpected %s in type expression
+ /// (Originally from ..\FSComp.txt:544)
+ static member tcUnexpectedSymbolInTypeExpression(a0 : System.String) = (711, GetStringFunc("tcUnexpectedSymbolInTypeExpression",",,,%s,,,") a0)
+ /// Type parameter cannot be used as type constructor
+ /// (Originally from ..\FSComp.txt:545)
+ static member tcTypeParameterInvalidAsTypeConstructor() = (712, GetStringFunc("tcTypeParameterInvalidAsTypeConstructor",",,,") )
+ /// Illegal syntax in type expression
+ /// (Originally from ..\FSComp.txt:546)
+ static member tcIllegalSyntaxInTypeExpression() = (713, GetStringFunc("tcIllegalSyntaxInTypeExpression",",,,") )
+ /// Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression
+ /// (Originally from ..\FSComp.txt:547)
+ static member tcAnonymousUnitsOfMeasureCannotBeNested() = (714, GetStringFunc("tcAnonymousUnitsOfMeasureCannotBeNested",",,,") )
+ /// Anonymous type variables are not permitted in this declaration
+ /// (Originally from ..\FSComp.txt:548)
+ static member tcAnonymousTypeInvalidInDeclaration() = (715, GetStringFunc("tcAnonymousTypeInvalidInDeclaration",",,,") )
+ /// Unexpected / in type
+ /// (Originally from ..\FSComp.txt:549)
+ static member tcUnexpectedSlashInType() = (716, GetStringFunc("tcUnexpectedSlashInType",",,,") )
+ /// Unexpected type arguments
+ /// (Originally from ..\FSComp.txt:550)
+ static member tcUnexpectedTypeArguments() = (717, GetStringFunc("tcUnexpectedTypeArguments",",,,") )
+ /// Optional arguments are only permitted on type members
+ /// (Originally from ..\FSComp.txt:551)
+ static member tcOptionalArgsOnlyOnMembers() = (718, GetStringFunc("tcOptionalArgsOnlyOnMembers",",,,") )
+ /// Name '%s' not bound in pattern context
+ /// (Originally from ..\FSComp.txt:552)
+ static member tcNameNotBoundInPattern(a0 : System.String) = (719, GetStringFunc("tcNameNotBoundInPattern",",,,%s,,,") a0)
+ /// Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when = ' at the end of the match clause.
+ /// (Originally from ..\FSComp.txt:553)
+ static member tcInvalidNonPrimitiveLiteralInPatternMatch() = (720, GetStringFunc("tcInvalidNonPrimitiveLiteralInPatternMatch",",,,") )
+ /// Type arguments cannot be specified here
+ /// (Originally from ..\FSComp.txt:554)
+ static member tcInvalidTypeArgumentUsage() = (721, GetStringFunc("tcInvalidTypeArgumentUsage",",,,") )
+ /// Only active patterns returning exactly one result may accept arguments
+ /// (Originally from ..\FSComp.txt:555)
+ static member tcRequireActivePatternWithOneResult() = (722, GetStringFunc("tcRequireActivePatternWithOneResult",",,,") )
+ /// Invalid argument to parameterized pattern label
+ /// (Originally from ..\FSComp.txt:556)
+ static member tcInvalidArgForParameterizedPattern() = (723, GetStringFunc("tcInvalidArgForParameterizedPattern",",,,") )
+ /// Internal error. Invalid index into active pattern array
+ /// (Originally from ..\FSComp.txt:557)
+ static member tcInvalidIndexIntoActivePatternArray() = (724, GetStringFunc("tcInvalidIndexIntoActivePatternArray",",,,") )
+ /// This union case does not take arguments
+ /// (Originally from ..\FSComp.txt:558)
+ static member tcUnionCaseDoesNotTakeArguments() = (725, GetStringFunc("tcUnionCaseDoesNotTakeArguments",",,,") )
+ /// This union case takes one argument
+ /// (Originally from ..\FSComp.txt:559)
+ static member tcUnionCaseRequiresOneArgument() = (726, GetStringFunc("tcUnionCaseRequiresOneArgument",",,,") )
+ /// This union case expects %d arguments in tupled form
+ /// (Originally from ..\FSComp.txt:560)
+ static member tcUnionCaseExpectsTupledArguments(a0 : System.Int32) = (727, GetStringFunc("tcUnionCaseExpectsTupledArguments",",,,%d,,,") a0)
+ /// Field '%s' is not static
+ /// (Originally from ..\FSComp.txt:561)
+ static member tcFieldIsNotStatic(a0 : System.String) = (728, GetStringFunc("tcFieldIsNotStatic",",,,%s,,,") a0)
+ /// This field is not a literal and cannot be used in a pattern
+ /// (Originally from ..\FSComp.txt:562)
+ static member tcFieldNotLiteralCannotBeUsedInPattern() = (729, GetStringFunc("tcFieldNotLiteralCannotBeUsedInPattern",",,,") )
+ /// This is not a variable, constant, active recognizer or literal
+ /// (Originally from ..\FSComp.txt:563)
+ static member tcRequireVarConstRecogOrLiteral() = (730, GetStringFunc("tcRequireVarConstRecogOrLiteral",",,,") )
+ /// This is not a valid pattern
+ /// (Originally from ..\FSComp.txt:564)
+ static member tcInvalidPattern() = (731, GetStringFunc("tcInvalidPattern",",,,") )
+ /// Character range matches have been removed in F#. Consider using a 'when' pattern guard instead.
+ /// (Originally from ..\FSComp.txt:565)
+ static member tcUseWhenPatternGuard() = (GetStringFunc("tcUseWhenPatternGuard",",,,") )
+ /// Illegal pattern
+ /// (Originally from ..\FSComp.txt:566)
+ static member tcIllegalPattern() = (733, GetStringFunc("tcIllegalPattern",",,,") )
+ /// Syntax error - unexpected '?' symbol
+ /// (Originally from ..\FSComp.txt:567)
+ static member tcSyntaxErrorUnexpectedQMark() = (734, GetStringFunc("tcSyntaxErrorUnexpectedQMark",",,,") )
+ /// Expected %d expressions, got %d
+ /// (Originally from ..\FSComp.txt:568)
+ static member tcExpressionCountMisMatch(a0 : System.Int32, a1 : System.Int32) = (735, GetStringFunc("tcExpressionCountMisMatch",",,,%d,,,%d,,,") a0 a1)
+ /// TcExprUndelayed: delayed
+ /// (Originally from ..\FSComp.txt:569)
+ static member tcExprUndelayed() = (736, GetStringFunc("tcExprUndelayed",",,,") )
+ /// This expression form may only be used in sequence and computation expressions
+ /// (Originally from ..\FSComp.txt:570)
+ static member tcExpressionRequiresSequence() = (737, GetStringFunc("tcExpressionRequiresSequence",",,,") )
+ /// Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces.
+ /// (Originally from ..\FSComp.txt:571)
+ static member tcInvalidObjectExpressionSyntaxForm() = (738, GetStringFunc("tcInvalidObjectExpressionSyntaxForm",",,,") )
+ /// Invalid object, sequence or record expression
+ /// (Originally from ..\FSComp.txt:572)
+ static member tcInvalidObjectSequenceOrRecordExpression() = (739, GetStringFunc("tcInvalidObjectSequenceOrRecordExpression",",,,") )
+ /// Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq { ... }'
+ /// (Originally from ..\FSComp.txt:573)
+ static member tcInvalidSequenceExpressionSyntaxForm() = (740, GetStringFunc("tcInvalidSequenceExpressionSyntaxForm",",,,") )
+ /// This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression
+ /// (Originally from ..\FSComp.txt:574)
+ static member tcExpressionWithIfRequiresParenthesis() = (GetStringFunc("tcExpressionWithIfRequiresParenthesis",",,,") )
+ /// Unable to parse format string '%s'
+ /// (Originally from ..\FSComp.txt:575)
+ static member tcUnableToParseFormatString(a0 : System.String) = (741, GetStringFunc("tcUnableToParseFormatString",",,,%s,,,") a0)
+ /// This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList.
+ /// (Originally from ..\FSComp.txt:576)
+ static member tcListLiteralMaxSize() = (742, GetStringFunc("tcListLiteralMaxSize",",,,") )
+ /// The expression form 'expr then expr' may only be used as part of an explicit object constructor
+ /// (Originally from ..\FSComp.txt:577)
+ static member tcExpressionFormRequiresObjectConstructor() = (743, GetStringFunc("tcExpressionFormRequiresObjectConstructor",",,,") )
+ /// Named arguments cannot be given to member trait calls
+ /// (Originally from ..\FSComp.txt:578)
+ static member tcNamedArgumentsCannotBeUsedInMemberTraits() = (744, GetStringFunc("tcNamedArgumentsCannotBeUsedInMemberTraits",",,,") )
+ /// This is not a valid name for an enumeration case
+ /// (Originally from ..\FSComp.txt:579)
+ static member tcNotValidEnumCaseName() = (745, GetStringFunc("tcNotValidEnumCaseName",",,,") )
+ /// This field is not mutable
+ /// (Originally from ..\FSComp.txt:580)
+ static member tcFieldIsNotMutable() = (746, GetStringFunc("tcFieldIsNotMutable",",,,") )
+ /// This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq { ... }', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements
+ /// (Originally from ..\FSComp.txt:581)
+ static member tcConstructRequiresListArrayOrSequence() = (747, GetStringFunc("tcConstructRequiresListArrayOrSequence",",,,") )
+ /// This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'.
+ /// (Originally from ..\FSComp.txt:582)
+ static member tcConstructRequiresComputationExpressions() = (748, GetStringFunc("tcConstructRequiresComputationExpressions",",,,") )
+ /// This construct may only be used within sequence or computation expressions
+ /// (Originally from ..\FSComp.txt:583)
+ static member tcConstructRequiresSequenceOrComputations() = (749, GetStringFunc("tcConstructRequiresSequenceOrComputations",",,,") )
+ /// This construct may only be used within computation expressions
+ /// (Originally from ..\FSComp.txt:584)
+ static member tcConstructRequiresComputationExpression() = (750, GetStringFunc("tcConstructRequiresComputationExpression",",,,") )
+ /// Invalid indexer expression
+ /// (Originally from ..\FSComp.txt:585)
+ static member tcInvalidIndexerExpression() = (751, GetStringFunc("tcInvalidIndexerExpression",",,,") )
+ /// The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints
+ /// (Originally from ..\FSComp.txt:586)
+ static member tcObjectOfIndeterminateTypeUsedRequireTypeConstraint() = (752, GetStringFunc("tcObjectOfIndeterminateTypeUsedRequireTypeConstraint",",,,") )
+ /// Cannot inherit from a variable type
+ /// (Originally from ..\FSComp.txt:587)
+ static member tcCannotInheritFromVariableType() = (753, GetStringFunc("tcCannotInheritFromVariableType",",,,") )
+ /// Calls to object constructors on type parameters cannot be given arguments
+ /// (Originally from ..\FSComp.txt:588)
+ static member tcObjectConstructorsOnTypeParametersCannotTakeArguments() = (754, GetStringFunc("tcObjectConstructorsOnTypeParametersCannotTakeArguments",",,,") )
+ /// The 'CompiledName' attribute cannot be used with this language element
+ /// (Originally from ..\FSComp.txt:589)
+ static member tcCompiledNameAttributeMisused() = (755, GetStringFunc("tcCompiledNameAttributeMisused",",,,") )
+ /// '%s' may only be used with named types
+ /// (Originally from ..\FSComp.txt:590)
+ static member tcNamedTypeRequired(a0 : System.String) = (756, GetStringFunc("tcNamedTypeRequired",",,,%s,,,") a0)
+ /// 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead.
+ /// (Originally from ..\FSComp.txt:591)
+ static member tcInheritCannotBeUsedOnInterfaceType() = (757, GetStringFunc("tcInheritCannotBeUsedOnInterfaceType",",,,") )
+ /// 'new' cannot be used on interface types. Consider using an object expression '{ new ... with ... }' instead.
+ /// (Originally from ..\FSComp.txt:592)
+ static member tcNewCannotBeUsedOnInterfaceType() = (758, GetStringFunc("tcNewCannotBeUsedOnInterfaceType",",,,") )
+ /// Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{ new ... with ... }' instead.
+ /// (Originally from ..\FSComp.txt:593)
+ static member tcAbstractTypeCannotBeInstantiated() = (759, GetStringFunc("tcAbstractTypeCannotBeInstantiated",",,,") )
+ /// It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value
+ /// (Originally from ..\FSComp.txt:594)
+ static member tcIDisposableTypeShouldUseNew() = (760, GetStringFunc("tcIDisposableTypeShouldUseNew",",,,") )
+ /// '%s' may only be used to construct object types
+ /// (Originally from ..\FSComp.txt:595)
+ static member tcSyntaxCanOnlyBeUsedToCreateObjectTypes(a0 : System.String) = (761, GetStringFunc("tcSyntaxCanOnlyBeUsedToCreateObjectTypes",",,,%s,,,") a0)
+ /// Constructors for the type '%s' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression.
+ /// (Originally from ..\FSComp.txt:596)
+ static member tcConstructorRequiresCall(a0 : System.String) = (762, GetStringFunc("tcConstructorRequiresCall",",,,%s,,,") a0)
+ /// The field '%s' has been given a value, but is not present in the type '%s'
+ /// (Originally from ..\FSComp.txt:597)
+ static member tcUndefinedField(a0 : System.String, a1 : System.String) = (763, GetStringFunc("tcUndefinedField",",,,%s,,,%s,,,") a0 a1)
+ /// No assignment given for field '%s' of type '%s'
+ /// (Originally from ..\FSComp.txt:598)
+ static member tcFieldRequiresAssignment(a0 : System.String, a1 : System.String) = (764, GetStringFunc("tcFieldRequiresAssignment",",,,%s,,,%s,,,") a0 a1)
+ /// Extraneous fields have been given values
+ /// (Originally from ..\FSComp.txt:599)
+ static member tcExtraneousFieldsGivenValues() = (765, GetStringFunc("tcExtraneousFieldsGivenValues",",,,") )
+ /// Only overrides of abstract and virtual members may be specified in object expressions
+ /// (Originally from ..\FSComp.txt:600)
+ static member tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual() = (766, GetStringFunc("tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual",",,,") )
+ /// The member '%s' does not correspond to any abstract or virtual method available to override or implement.
+ /// (Originally from ..\FSComp.txt:601)
+ static member tcNoAbstractOrVirtualMemberFound(a0 : System.String) = (767, GetStringFunc("tcNoAbstractOrVirtualMemberFound",",,,%s,,,") a0)
+ /// The type %s contains the member '%s' but it is not a virtual or abstract method that is available to override or implement.
+ /// (Originally from ..\FSComp.txt:602)
+ static member tcMemberFoundIsNotAbstractOrVirtual(a0 : System.String, a1 : System.String) = (767, GetStringFunc("tcMemberFoundIsNotAbstractOrVirtual",",,,%s,,,%s,,,") a0 a1)
+ /// The member '%s' does not accept the correct number of arguments. %d argument(s) are expected, but %d were given. The required signature is '%s'.%s
+ /// (Originally from ..\FSComp.txt:603)
+ static member tcArgumentArityMismatch(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String, a4 : System.String) = (768, GetStringFunc("tcArgumentArityMismatch",",,,%s,,,%d,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3 a4)
+ /// The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments, but %d were given. The required signature is '%s'.%s
+ /// (Originally from ..\FSComp.txt:604)
+ static member tcArgumentArityMismatchOneOverload(a0 : System.String, a1 : System.Int32, a2 : System.Int32, a3 : System.String, a4 : System.String) = (769, GetStringFunc("tcArgumentArityMismatchOneOverload",",,,%s,,,%d,,,%d,,,%s,,,%s,,,") a0 a1 a2 a3 a4)
+ /// A simple method name is required here
+ /// (Originally from ..\FSComp.txt:605)
+ static member tcSimpleMethodNameRequired() = (770, GetStringFunc("tcSimpleMethodNameRequired",",,,") )
+ /// The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class
+ /// (Originally from ..\FSComp.txt:606)
+ static member tcPredefinedTypeCannotBeUsedAsSuperType() = (771, GetStringFunc("tcPredefinedTypeCannotBeUsedAsSuperType",",,,") )
+ /// 'new' must be used with a named type
+ /// (Originally from ..\FSComp.txt:607)
+ static member tcNewMustBeUsedWithNamedType() = (772, GetStringFunc("tcNewMustBeUsedWithNamedType",",,,") )
+ /// Cannot create an extension of a sealed type
+ /// (Originally from ..\FSComp.txt:608)
+ static member tcCannotCreateExtensionOfSealedType() = (773, GetStringFunc("tcCannotCreateExtensionOfSealedType",",,,") )
+ /// No arguments may be given when constructing a record value
+ /// (Originally from ..\FSComp.txt:609)
+ static member tcNoArgumentsForRecordValue() = (774, GetStringFunc("tcNoArgumentsForRecordValue",",,,") )
+ /// Interface implementations cannot be given on construction expressions
+ /// (Originally from ..\FSComp.txt:610)
+ static member tcNoInterfaceImplementationForConstructionExpression() = (775, GetStringFunc("tcNoInterfaceImplementationForConstructionExpression",",,,") )
+ /// Object construction expressions may only be used to implement constructors in class types
+ /// (Originally from ..\FSComp.txt:611)
+ static member tcObjectConstructionCanOnlyBeUsedInClassTypes() = (776, GetStringFunc("tcObjectConstructionCanOnlyBeUsedInClassTypes",",,,") )
+ /// Only simple bindings of the form 'id = expr' can be used in construction expressions
+ /// (Originally from ..\FSComp.txt:612)
+ static member tcOnlySimpleBindingsCanBeUsedInConstructionExpressions() = (777, GetStringFunc("tcOnlySimpleBindingsCanBeUsedInConstructionExpressions",",,,") )
+ /// Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field
+ /// (Originally from ..\FSComp.txt:613)
+ static member tcObjectsMustBeInitializedWithObjectExpression() = (778, GetStringFunc("tcObjectsMustBeInitializedWithObjectExpression",",,,") )
+ /// Expected an interface type
+ /// (Originally from ..\FSComp.txt:614)
+ static member tcExpectedInterfaceType() = (779, GetStringFunc("tcExpectedInterfaceType",",,,") )
+ /// Constructor expressions for interfaces do not take arguments
+ /// (Originally from ..\FSComp.txt:615)
+ static member tcConstructorForInterfacesDoNotTakeArguments() = (780, GetStringFunc("tcConstructorForInterfacesDoNotTakeArguments",",,,") )
+ /// This object constructor requires arguments
+ /// (Originally from ..\FSComp.txt:616)
+ static member tcConstructorRequiresArguments() = (781, GetStringFunc("tcConstructorRequiresArguments",",,,") )
+ /// 'new' may only be used with object constructors
+ /// (Originally from ..\FSComp.txt:617)
+ static member tcNewRequiresObjectConstructor() = (782, GetStringFunc("tcNewRequiresObjectConstructor",",,,") )
+ /// At least one override did not correctly implement its corresponding abstract member
+ /// (Originally from ..\FSComp.txt:618)
+ static member tcAtLeastOneOverrideIsInvalid() = (783, GetStringFunc("tcAtLeastOneOverrideIsInvalid",",,,") )
+ /// This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope
+ /// (Originally from ..\FSComp.txt:619)
+ static member tcNumericLiteralRequiresModule(a0 : System.String) = (784, GetStringFunc("tcNumericLiteralRequiresModule",",,,%s,,,") a0)
+ /// Invalid record construction
+ /// (Originally from ..\FSComp.txt:620)
+ static member tcInvalidRecordConstruction() = (785, GetStringFunc("tcInvalidRecordConstruction",",,,") )
+ /// The expression form { expr with ... } may only be used with record types. To build object types use { new Type(...) with ... }
+ /// (Originally from ..\FSComp.txt:621)
+ static member tcExpressionFormRequiresRecordTypes() = (786, GetStringFunc("tcExpressionFormRequiresRecordTypes",",,,") )
+ /// The inherited type is not an object model type
+ /// (Originally from ..\FSComp.txt:622)
+ static member tcInheritedTypeIsNotObjectModelType() = (787, GetStringFunc("tcInheritedTypeIsNotObjectModelType",",,,") )
+ /// Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors
+ /// (Originally from ..\FSComp.txt:623)
+ static member tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes() = (788, GetStringFunc("tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes",",,,") )
+ /// '{ }' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'.
+ /// (Originally from ..\FSComp.txt:624)
+ static member tcEmptyRecordInvalid() = (789, GetStringFunc("tcEmptyRecordInvalid",",,,") )
+ /// This type is not a record type. Values of class and struct types must be created using calls to object constructors.
+ /// (Originally from ..\FSComp.txt:625)
+ static member tcTypeIsNotARecordTypeNeedConstructor() = (790, GetStringFunc("tcTypeIsNotARecordTypeNeedConstructor",",,,") )
+ /// This type is not a record type
+ /// (Originally from ..\FSComp.txt:626)
+ static member tcTypeIsNotARecordType() = (791, GetStringFunc("tcTypeIsNotARecordType",",,,") )
+ /// This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder { ... }'.
+ /// (Originally from ..\FSComp.txt:627)
+ static member tcConstructIsAmbiguousInComputationExpression() = (792, GetStringFunc("tcConstructIsAmbiguousInComputationExpression",",,,") )
+ /// This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {... }'.
+ /// (Originally from ..\FSComp.txt:628)
+ static member tcConstructIsAmbiguousInSequenceExpression() = (793, GetStringFunc("tcConstructIsAmbiguousInSequenceExpression",",,,") )
+ /// 'do!' cannot be used within sequence expressions
+ /// (Originally from ..\FSComp.txt:629)
+ static member tcDoBangIllegalInSequenceExpression() = (794, GetStringFunc("tcDoBangIllegalInSequenceExpression",",,,") )
+ /// The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead.
+ /// (Originally from ..\FSComp.txt:630)
+ static member tcUseForInSequenceExpression() = (795, GetStringFunc("tcUseForInSequenceExpression",",,,") )
+ /// 'try'/'with' cannot be used within sequence expressions
+ /// (Originally from ..\FSComp.txt:631)
+ static member tcTryIllegalInSequenceExpression() = (796, GetStringFunc("tcTryIllegalInSequenceExpression",",,,") )
+ /// In sequence expressions, multiple results are generated using 'yield!'
+ /// (Originally from ..\FSComp.txt:632)
+ static member tcUseYieldBangForMultipleResults() = (797, GetStringFunc("tcUseYieldBangForMultipleResults",",,,") )
+ /// Invalid assignment
+ /// (Originally from ..\FSComp.txt:633)
+ static member tcInvalidAssignment() = (799, GetStringFunc("tcInvalidAssignment",",,,") )
+ /// Invalid use of a type name
+ /// (Originally from ..\FSComp.txt:634)
+ static member tcInvalidUseOfTypeName() = (800, GetStringFunc("tcInvalidUseOfTypeName",",,,") )
+ /// This type has no accessible object constructors
+ /// (Originally from ..\FSComp.txt:635)
+ static member tcTypeHasNoAccessibleConstructor() = (801, GetStringFunc("tcTypeHasNoAccessibleConstructor",",,,") )
+ /// Invalid use of an interface type
+ /// (Originally from ..\FSComp.txt:638)
+ static member tcInvalidUseOfInterfaceType() = (804, GetStringFunc("tcInvalidUseOfInterfaceType",",,,") )
+ /// Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'.
+ /// (Originally from ..\FSComp.txt:639)
+ static member tcInvalidUseOfDelegate() = (805, GetStringFunc("tcInvalidUseOfDelegate",",,,") )
+ /// Property '%s' is not static
+ /// (Originally from ..\FSComp.txt:640)
+ static member tcPropertyIsNotStatic(a0 : System.String) = (806, GetStringFunc("tcPropertyIsNotStatic",",,,%s,,,") a0)
+ /// Property '%s' is not readable
+ /// (Originally from ..\FSComp.txt:641)
+ static member tcPropertyIsNotReadable(a0 : System.String) = (807, GetStringFunc("tcPropertyIsNotReadable",",,,%s,,,") a0)
+ /// This lookup cannot be used here
+ /// (Originally from ..\FSComp.txt:642)
+ static member tcLookupMayNotBeUsedHere() = (808, GetStringFunc("tcLookupMayNotBeUsedHere",",,,") )
+ /// Property '%s' is static
+ /// (Originally from ..\FSComp.txt:643)
+ static member tcPropertyIsStatic(a0 : System.String) = (809, GetStringFunc("tcPropertyIsStatic",",,,%s,,,") a0)
+ /// Property '%s' cannot be set
+ /// (Originally from ..\FSComp.txt:644)
+ static member tcPropertyCannotBeSet1(a0 : System.String) = (810, GetStringFunc("tcPropertyCannotBeSet1",",,,%s,,,") a0)
+ /// Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'.
+ /// (Originally from ..\FSComp.txt:645)
+ static member tcConstructorsCannotBeFirstClassValues() = (811, GetStringFunc("tcConstructorsCannotBeFirstClassValues",",,,") )
+ /// The syntax 'expr.id' may only be used with record labels, properties and fields
+ /// (Originally from ..\FSComp.txt:646)
+ static member tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields() = (812, GetStringFunc("tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields",",,,") )
+ /// Event '%s' is static
+ /// (Originally from ..\FSComp.txt:647)
+ static member tcEventIsStatic(a0 : System.String) = (813, GetStringFunc("tcEventIsStatic",",,,%s,,,") a0)
+ /// Event '%s' is not static
+ /// (Originally from ..\FSComp.txt:648)
+ static member tcEventIsNotStatic(a0 : System.String) = (814, GetStringFunc("tcEventIsNotStatic",",,,%s,,,") a0)
+ /// The named argument '%s' did not match any argument or mutable property
+ /// (Originally from ..\FSComp.txt:649)
+ static member tcNamedArgumentDidNotMatch(a0 : System.String) = (815, GetStringFunc("tcNamedArgumentDidNotMatch",",,,%s,,,") a0)
+ /// One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form.
+ /// (Originally from ..\FSComp.txt:650)
+ static member tcOverloadsCannotHaveCurriedArguments() = (816, GetStringFunc("tcOverloadsCannotHaveCurriedArguments",",,,") )
+ /// The unnamed arguments do not form a prefix of the arguments of the method called
+ /// (Originally from ..\FSComp.txt:651)
+ static member tcUnnamedArgumentsDoNotFormPrefix() = (GetStringFunc("tcUnnamedArgumentsDoNotFormPrefix",",,,") )
+ /// Static optimization conditionals are only for use within the F# library
+ /// (Originally from ..\FSComp.txt:652)
+ static member tcStaticOptimizationConditionalsOnlyForFSharpLibrary() = (817, GetStringFunc("tcStaticOptimizationConditionalsOnlyForFSharpLibrary",",,,") )
+ /// The corresponding formal argument is not optional
+ /// (Originally from ..\FSComp.txt:653)
+ static member tcFormalArgumentIsNotOptional() = (818, GetStringFunc("tcFormalArgumentIsNotOptional",",,,") )
+ /// Invalid optional assignment to a property or field
+ /// (Originally from ..\FSComp.txt:654)
+ static member tcInvalidOptionalAssignmentToPropertyOrField() = (819, GetStringFunc("tcInvalidOptionalAssignmentToPropertyOrField",",,,") )
+ /// A delegate constructor must be passed a single function value
+ /// (Originally from ..\FSComp.txt:655)
+ static member tcDelegateConstructorMustBePassed() = (820, GetStringFunc("tcDelegateConstructorMustBePassed",",,,") )
+ /// A binding cannot be marked both 'use' and 'rec'
+ /// (Originally from ..\FSComp.txt:656)
+ static member tcBindingCannotBeUseAndRec() = (821, GetStringFunc("tcBindingCannotBeUseAndRec",",,,") )
+ /// The 'VolatileField' attribute may only be used on 'let' bindings in classes
+ /// (Originally from ..\FSComp.txt:657)
+ static member tcVolatileOnlyOnClassLetBindings() = (823, GetStringFunc("tcVolatileOnlyOnClassLetBindings",",,,") )
+ /// Attributes are not permitted on 'let' bindings in expressions
+ /// (Originally from ..\FSComp.txt:658)
+ static member tcAttributesAreNotPermittedOnLetBindings() = (824, GetStringFunc("tcAttributesAreNotPermittedOnLetBindings",",,,") )
+ /// The 'DefaultValue' attribute may only be used on 'val' declarations
+ /// (Originally from ..\FSComp.txt:659)
+ static member tcDefaultValueAttributeRequiresVal() = (825, GetStringFunc("tcDefaultValueAttributeRequiresVal",",,,") )
+ /// The 'ConditionalAttribute' attribute may only be used on members
+ /// (Originally from ..\FSComp.txt:660)
+ static member tcConditionalAttributeRequiresMembers() = (826, GetStringFunc("tcConditionalAttributeRequiresMembers",",,,") )
+ /// This is not a valid name for an active pattern
+ /// (Originally from ..\FSComp.txt:661)
+ static member tcInvalidActivePatternName() = (827, GetStringFunc("tcInvalidActivePatternName",",,,") )
+ /// The 'EntryPointAttribute' attribute may only be used on function definitions in modules
+ /// (Originally from ..\FSComp.txt:662)
+ static member tcEntryPointAttributeRequiresFunctionInModule() = (828, GetStringFunc("tcEntryPointAttributeRequiresFunctionInModule",",,,") )
+ /// Mutable values cannot be marked 'inline'
+ /// (Originally from ..\FSComp.txt:663)
+ static member tcMutableValuesCannotBeInline() = (829, GetStringFunc("tcMutableValuesCannotBeInline",",,,") )
+ /// Mutable values cannot have generic parameters
+ /// (Originally from ..\FSComp.txt:664)
+ static member tcMutableValuesMayNotHaveGenericParameters() = (830, GetStringFunc("tcMutableValuesMayNotHaveGenericParameters",",,,") )
+ /// Mutable function values should be written 'let mutable f = (fun args -> ...)'
+ /// (Originally from ..\FSComp.txt:665)
+ static member tcMutableValuesSyntax() = (831, GetStringFunc("tcMutableValuesSyntax",",,,") )
+ /// Only functions may be marked 'inline'
+ /// (Originally from ..\FSComp.txt:666)
+ static member tcOnlyFunctionsCanBeInline() = (832, GetStringFunc("tcOnlyFunctionsCanBeInline",",,,") )
+ /// A literal value cannot be given the [] or [] attributes
+ /// (Originally from ..\FSComp.txt:667)
+ static member tcIllegalAttributesForLiteral() = (833, GetStringFunc("tcIllegalAttributesForLiteral",",,,") )
+ /// A literal value cannot be marked 'mutable'
+ /// (Originally from ..\FSComp.txt:668)
+ static member tcLiteralCannotBeMutable() = (834, GetStringFunc("tcLiteralCannotBeMutable",",,,") )
+ /// A literal value cannot be marked 'inline'
+ /// (Originally from ..\FSComp.txt:669)
+ static member tcLiteralCannotBeInline() = (835, GetStringFunc("tcLiteralCannotBeInline",",,,") )
+ /// Literal values cannot have generic parameters
+ /// (Originally from ..\FSComp.txt:670)
+ static member tcLiteralCannotHaveGenericParameters() = (836, GetStringFunc("tcLiteralCannotHaveGenericParameters",",,,") )
+ /// This is not a valid constant expression
+ /// (Originally from ..\FSComp.txt:671)
+ static member tcInvalidConstantExpression() = (837, GetStringFunc("tcInvalidConstantExpression",",,,") )
+ /// This type is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:672)
+ static member tcTypeIsInaccessible() = (838, GetStringFunc("tcTypeIsInaccessible",",,,") )
+ /// Unexpected condition in imported assembly: failed to decode AttributeUsage attribute
+ /// (Originally from ..\FSComp.txt:673)
+ static member tcUnexpectedConditionInImportedAssembly() = (839, GetStringFunc("tcUnexpectedConditionInImportedAssembly",",,,") )
+ /// Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'.
+ /// (Originally from ..\FSComp.txt:674)
+ static member tcUnrecognizedAttributeTarget() = (840, GetStringFunc("tcUnrecognizedAttributeTarget",",,,") )
+ /// This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module.
+ /// (Originally from ..\FSComp.txt:675)
+ static member tcAttributeIsNotValidForLanguageElementUseDo() = (841, GetStringFunc("tcAttributeIsNotValidForLanguageElementUseDo",",,,") )
+ /// This attribute is not valid for use on this language element
+ /// (Originally from ..\FSComp.txt:676)
+ static member tcAttributeIsNotValidForLanguageElement() = (842, GetStringFunc("tcAttributeIsNotValidForLanguageElement",",,,") )
+ /// Optional arguments cannot be used in custom attributes
+ /// (Originally from ..\FSComp.txt:677)
+ static member tcOptionalArgumentsCannotBeUsedInCustomAttribute() = (843, GetStringFunc("tcOptionalArgumentsCannotBeUsedInCustomAttribute",",,,") )
+ /// This property cannot be set
+ /// (Originally from ..\FSComp.txt:678)
+ static member tcPropertyCannotBeSet0() = (844, GetStringFunc("tcPropertyCannotBeSet0",",,,") )
+ /// This property or field was not found on this custom attribute type
+ /// (Originally from ..\FSComp.txt:679)
+ static member tcPropertyOrFieldNotFoundInAttribute() = (845, GetStringFunc("tcPropertyOrFieldNotFoundInAttribute",",,,") )
+ /// A custom attribute must be a reference type
+ /// (Originally from ..\FSComp.txt:680)
+ static member tcCustomAttributeMustBeReferenceType() = (846, GetStringFunc("tcCustomAttributeMustBeReferenceType",",,,") )
+ /// The number of args for a custom attribute does not match the expected number of args for the attribute constructor
+ /// (Originally from ..\FSComp.txt:681)
+ static member tcCustomAttributeArgumentMismatch() = (847, GetStringFunc("tcCustomAttributeArgumentMismatch",",,,") )
+ /// A custom attribute must invoke an object constructor
+ /// (Originally from ..\FSComp.txt:682)
+ static member tcCustomAttributeMustInvokeConstructor() = (848, GetStringFunc("tcCustomAttributeMustInvokeConstructor",",,,") )
+ /// Attribute expressions must be calls to object constructors
+ /// (Originally from ..\FSComp.txt:683)
+ static member tcAttributeExpressionsMustBeConstructorCalls() = (849, GetStringFunc("tcAttributeExpressionsMustBeConstructorCalls",",,,") )
+ /// This attribute cannot be used in this version of F#
+ /// (Originally from ..\FSComp.txt:684)
+ static member tcUnsupportedAttribute() = (850, GetStringFunc("tcUnsupportedAttribute",",,,") )
+ /// Invalid inline specification
+ /// (Originally from ..\FSComp.txt:685)
+ static member tcInvalidInlineSpecification() = (851, GetStringFunc("tcInvalidInlineSpecification",",,,") )
+ /// 'use' bindings must be of the form 'use = '
+ /// (Originally from ..\FSComp.txt:686)
+ static member tcInvalidUseBinding() = (852, GetStringFunc("tcInvalidUseBinding",",,,") )
+ /// Abstract members are not permitted in an augmentation - they must be defined as part of the type itself
+ /// (Originally from ..\FSComp.txt:687)
+ static member tcAbstractMembersIllegalInAugmentation() = (853, GetStringFunc("tcAbstractMembersIllegalInAugmentation",",,,") )
+ /// Method overrides and interface implementations are not permitted here
+ /// (Originally from ..\FSComp.txt:688)
+ static member tcMethodOverridesIllegalHere() = (854, GetStringFunc("tcMethodOverridesIllegalHere",",,,") )
+ /// No abstract or interface member was found that corresponds to this override
+ /// (Originally from ..\FSComp.txt:689)
+ static member tcNoMemberFoundForOverride() = (855, GetStringFunc("tcNoMemberFoundForOverride",",,,") )
+ /// This override takes a different number of arguments to the corresponding abstract member. The following abstract members were found:%s
+ /// (Originally from ..\FSComp.txt:690)
+ static member tcOverrideArityMismatch(a0 : System.String) = (856, GetStringFunc("tcOverrideArityMismatch",",,,%s,,,") a0)
+ /// This method already has a default implementation
+ /// (Originally from ..\FSComp.txt:691)
+ static member tcDefaultImplementationAlreadyExists() = (857, GetStringFunc("tcDefaultImplementationAlreadyExists",",,,") )
+ /// The method implemented by this default is ambiguous
+ /// (Originally from ..\FSComp.txt:692)
+ static member tcDefaultAmbiguous() = (858, GetStringFunc("tcDefaultAmbiguous",",,,") )
+ /// No abstract property was found that corresponds to this override
+ /// (Originally from ..\FSComp.txt:693)
+ static member tcNoPropertyFoundForOverride() = (859, GetStringFunc("tcNoPropertyFoundForOverride",",,,") )
+ /// This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s
+ /// (Originally from ..\FSComp.txt:694)
+ static member tcAbstractPropertyMissingGetOrSet(a0 : System.String) = (860, GetStringFunc("tcAbstractPropertyMissingGetOrSet",",,,%s,,,") a0)
+ /// Invalid signature for set member
+ /// (Originally from ..\FSComp.txt:695)
+ static member tcInvalidSignatureForSet() = (861, GetStringFunc("tcInvalidSignatureForSet",",,,") )
+ /// This new member hides the abstract member '%s'. Rename the member or use 'override' instead.
+ /// (Originally from ..\FSComp.txt:696)
+ static member tcNewMemberHidesAbstractMember(a0 : System.String) = (864, GetStringFunc("tcNewMemberHidesAbstractMember",",,,%s,,,") a0)
+ /// This new member hides the abstract member '%s' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead.
+ /// (Originally from ..\FSComp.txt:697)
+ static member tcNewMemberHidesAbstractMemberWithSuffix(a0 : System.String) = (864, GetStringFunc("tcNewMemberHidesAbstractMemberWithSuffix",",,,%s,,,") a0)
+ /// Interfaces cannot contain definitions of static initializers
+ /// (Originally from ..\FSComp.txt:698)
+ static member tcStaticInitializersIllegalInInterface() = (865, GetStringFunc("tcStaticInitializersIllegalInInterface",",,,") )
+ /// Interfaces cannot contain definitions of object constructors
+ /// (Originally from ..\FSComp.txt:699)
+ static member tcObjectConstructorsIllegalInInterface() = (866, GetStringFunc("tcObjectConstructorsIllegalInInterface",",,,") )
+ /// Interfaces cannot contain definitions of member overrides
+ /// (Originally from ..\FSComp.txt:700)
+ static member tcMemberOverridesIllegalInInterface() = (867, GetStringFunc("tcMemberOverridesIllegalInInterface",",,,") )
+ /// Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class.
+ /// (Originally from ..\FSComp.txt:701)
+ static member tcConcreteMembersIllegalInInterface() = (868, GetStringFunc("tcConcreteMembersIllegalInInterface",",,,") )
+ /// Constructors cannot be specified in exception augmentations
+ /// (Originally from ..\FSComp.txt:702)
+ static member tcConstructorsDisallowedInExceptionAugmentation() = (869, GetStringFunc("tcConstructorsDisallowedInExceptionAugmentation",",,,") )
+ /// Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor.
+ /// (Originally from ..\FSComp.txt:703)
+ static member tcStructsCannotHaveConstructorWithNoArguments() = (870, GetStringFunc("tcStructsCannotHaveConstructorWithNoArguments",",,,") )
+ /// Constructors cannot be defined for this type
+ /// (Originally from ..\FSComp.txt:704)
+ static member tcConstructorsIllegalForThisType() = (871, GetStringFunc("tcConstructorsIllegalForThisType",",,,") )
+ /// Recursive bindings that include member specifications can only occur as a direct augmentation of a type
+ /// (Originally from ..\FSComp.txt:705)
+ static member tcRecursiveBindingsWithMembersMustBeDirectAugmentation() = (872, GetStringFunc("tcRecursiveBindingsWithMembersMustBeDirectAugmentation",",,,") )
+ /// Only simple variable patterns can be bound in 'let rec' constructs
+ /// (Originally from ..\FSComp.txt:706)
+ static member tcOnlySimplePatternsInLetRec() = (873, GetStringFunc("tcOnlySimplePatternsInLetRec",",,,") )
+ /// Only record fields and simple, non-recursive 'let' bindings may be marked mutable
+ /// (Originally from ..\FSComp.txt:707)
+ static member tcOnlyRecordFieldsAndSimpleLetCanBeMutable() = (874, GetStringFunc("tcOnlyRecordFieldsAndSimpleLetCanBeMutable",",,,") )
+ /// This member is not sufficiently generic
+ /// (Originally from ..\FSComp.txt:708)
+ static member tcMemberIsNotSufficientlyGeneric() = (875, GetStringFunc("tcMemberIsNotSufficientlyGeneric",",,,") )
+ /// A declaration may only be the [] attribute if a constant value is also given, e.g. 'val x : int = 1'
+ /// (Originally from ..\FSComp.txt:709)
+ static member tcLiteralAttributeRequiresConstantValue() = (876, GetStringFunc("tcLiteralAttributeRequiresConstantValue",",,,") )
+ /// A declaration may only be given a value in a signature if the declaration has the [] attribute
+ /// (Originally from ..\FSComp.txt:710)
+ static member tcValueInSignatureRequiresLiteralAttribute() = (877, GetStringFunc("tcValueInSignatureRequiresLiteralAttribute",",,,") )
+ /// Thread-static and context-static variables must be static and given the [] attribute to indicate that the value is initialized to the default value on each new thread
+ /// (Originally from ..\FSComp.txt:711)
+ static member tcThreadStaticAndContextStaticMustBeStatic() = (878, GetStringFunc("tcThreadStaticAndContextStaticMustBeStatic",",,,") )
+ /// Volatile fields must be marked 'mutable' and cannot be thread-static
+ /// (Originally from ..\FSComp.txt:712)
+ static member tcVolatileFieldsMustBeMutable() = (879, GetStringFunc("tcVolatileFieldsMustBeMutable",",,,") )
+ /// Uninitialized 'val' fields must be mutable and marked with the '[]' attribute. Consider using a 'let' binding instead of a 'val' field.
+ /// (Originally from ..\FSComp.txt:713)
+ static member tcUninitializedValFieldsMustBeMutable() = (880, GetStringFunc("tcUninitializedValFieldsMustBeMutable",",,,") )
+ /// Static 'val' fields in types must be mutable, private and marked with the '[]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type.
+ /// (Originally from ..\FSComp.txt:714)
+ static member tcStaticValFieldsMustBeMutableAndPrivate() = (881, GetStringFunc("tcStaticValFieldsMustBeMutableAndPrivate",",,,") )
+ /// This field requires a name
+ /// (Originally from ..\FSComp.txt:715)
+ static member tcFieldRequiresName() = (882, GetStringFunc("tcFieldRequiresName",",,,") )
+ /// Invalid namespace, module, type or union case name
+ /// (Originally from ..\FSComp.txt:716)
+ static member tcInvalidNamespaceModuleTypeUnionName() = (883, GetStringFunc("tcInvalidNamespaceModuleTypeUnionName",",,,") )
+ /// Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy'
+ /// (Originally from ..\FSComp.txt:717)
+ static member tcIllegalFormForExplicitTypeDeclaration() = (884, GetStringFunc("tcIllegalFormForExplicitTypeDeclaration",",,,") )
+ /// Return types of union cases must be identical to the type being defined, up to abbreviations
+ /// (Originally from ..\FSComp.txt:718)
+ static member tcReturnTypesForUnionMustBeSameAsType() = (885, GetStringFunc("tcReturnTypesForUnionMustBeSameAsType",",,,") )
+ /// This is not a valid value for an enumeration literal
+ /// (Originally from ..\FSComp.txt:719)
+ static member tcInvalidEnumerationLiteral() = (886, GetStringFunc("tcInvalidEnumerationLiteral",",,,") )
+ /// The type '%s' is not an interface type
+ /// (Originally from ..\FSComp.txt:720)
+ static member tcTypeIsNotInterfaceType1(a0 : System.String) = (887, GetStringFunc("tcTypeIsNotInterfaceType1",",,,%s,,,") a0)
+ /// Duplicate specification of an interface
+ /// (Originally from ..\FSComp.txt:721)
+ static member tcDuplicateSpecOfInterface() = (888, GetStringFunc("tcDuplicateSpecOfInterface",",,,") )
+ /// A field/val declaration is not permitted here
+ /// (Originally from ..\FSComp.txt:722)
+ static member tcFieldValIllegalHere() = (889, GetStringFunc("tcFieldValIllegalHere",",,,") )
+ /// A inheritance declaration is not permitted here
+ /// (Originally from ..\FSComp.txt:723)
+ static member tcInheritIllegalHere() = (890, GetStringFunc("tcInheritIllegalHere",",,,") )
+ /// This declaration opens the module '%s', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries.
+ /// (Originally from ..\FSComp.txt:724)
+ static member tcModuleRequiresQualifiedAccess(a0 : System.String) = (892, GetStringFunc("tcModuleRequiresQualifiedAccess",",,,%s,,,") a0)
+ /// This declaration opens the namespace or module '%s' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries.
+ /// (Originally from ..\FSComp.txt:725)
+ static member tcOpenUsedWithPartiallyQualifiedPath(a0 : System.String) = (893, GetStringFunc("tcOpenUsedWithPartiallyQualifiedPath",",,,%s,,,") a0)
+ /// Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline.
+ /// (Originally from ..\FSComp.txt:726)
+ static member tcLocalClassBindingsCannotBeInline() = (894, GetStringFunc("tcLocalClassBindingsCannotBeInline",",,,") )
+ /// Type abbreviations cannot have members
+ /// (Originally from ..\FSComp.txt:727)
+ static member tcTypeAbbreviationsMayNotHaveMembers() = (895, GetStringFunc("tcTypeAbbreviationsMayNotHaveMembers",",,,") )
+ /// As of F# 4.1, the accessibility of type abbreviations is checked at compile-time. Consider changing the accessibility of the type abbreviation. Ignoring this warning might lead to runtime errors.
+ /// (Originally from ..\FSComp.txt:728)
+ static member tcTypeAbbreviationsCheckedAtCompileTime() = (GetStringFunc("tcTypeAbbreviationsCheckedAtCompileTime",",,,") )
+ /// Enumerations cannot have members
+ /// (Originally from ..\FSComp.txt:729)
+ static member tcEnumerationsMayNotHaveMembers() = (896, GetStringFunc("tcEnumerationsMayNotHaveMembers",",,,") )
+ /// Measure declarations may have only static members
+ /// (Originally from ..\FSComp.txt:730)
+ static member tcMeasureDeclarationsRequireStaticMembers() = (897, GetStringFunc("tcMeasureDeclarationsRequireStaticMembers",",,,") )
+ /// Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings
+ /// (Originally from ..\FSComp.txt:731)
+ static member tcStructsMayNotContainDoBindings() = (GetStringFunc("tcStructsMayNotContainDoBindings",",,,") )
+ /// Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type.
+ /// (Originally from ..\FSComp.txt:732)
+ static member tcStructsMayNotContainLetBindings() = (901, GetStringFunc("tcStructsMayNotContainLetBindings",",,,") )
+ /// Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'.
+ /// (Originally from ..\FSComp.txt:733)
+ static member tcStaticLetBindingsRequireClassesWithImplicitConstructors() = (902, GetStringFunc("tcStaticLetBindingsRequireClassesWithImplicitConstructors",",,,") )
+ /// Measure declarations may have only static members: constructors are not available
+ /// (Originally from ..\FSComp.txt:734)
+ static member tcMeasureDeclarationsRequireStaticMembersNotConstructors() = (904, GetStringFunc("tcMeasureDeclarationsRequireStaticMembersNotConstructors",",,,") )
+ /// A member and a local class binding both have the name '%s'
+ /// (Originally from ..\FSComp.txt:735)
+ static member tcMemberAndLocalClassBindingHaveSameName(a0 : System.String) = (905, GetStringFunc("tcMemberAndLocalClassBindingHaveSameName",",,,%s,,,") a0)
+ /// Type abbreviations cannot have interface declarations
+ /// (Originally from ..\FSComp.txt:736)
+ static member tcTypeAbbreviationsCannotHaveInterfaceDeclaration() = (906, GetStringFunc("tcTypeAbbreviationsCannotHaveInterfaceDeclaration",",,,") )
+ /// Enumerations cannot have interface declarations
+ /// (Originally from ..\FSComp.txt:737)
+ static member tcEnumerationsCannotHaveInterfaceDeclaration() = (907, GetStringFunc("tcEnumerationsCannotHaveInterfaceDeclaration",",,,") )
+ /// This type is not an interface type
+ /// (Originally from ..\FSComp.txt:738)
+ static member tcTypeIsNotInterfaceType0() = (908, GetStringFunc("tcTypeIsNotInterfaceType0",",,,") )
+ /// All implemented interfaces should be declared on the initial declaration of the type
+ /// (Originally from ..\FSComp.txt:739)
+ static member tcAllImplementedInterfacesShouldBeDeclared() = (909, GetStringFunc("tcAllImplementedInterfacesShouldBeDeclared",",,,") )
+ /// A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type
+ /// (Originally from ..\FSComp.txt:740)
+ static member tcDefaultImplementationForInterfaceHasAlreadyBeenAdded() = (910, GetStringFunc("tcDefaultImplementationForInterfaceHasAlreadyBeenAdded",",,,") )
+ /// This member is not permitted in an interface implementation
+ /// (Originally from ..\FSComp.txt:741)
+ static member tcMemberNotPermittedInInterfaceImplementation() = (911, GetStringFunc("tcMemberNotPermittedInInterfaceImplementation",",,,") )
+ /// This declaration element is not permitted in an augmentation
+ /// (Originally from ..\FSComp.txt:742)
+ static member tcDeclarationElementNotPermittedInAugmentation() = (912, GetStringFunc("tcDeclarationElementNotPermittedInAugmentation",",,,") )
+ /// Types cannot contain nested type definitions
+ /// (Originally from ..\FSComp.txt:743)
+ static member tcTypesCannotContainNestedTypes() = (913, GetStringFunc("tcTypesCannotContainNestedTypes",",,,") )
+ /// type, exception or module
+ /// (Originally from ..\FSComp.txt:744)
+ static member tcTypeExceptionOrModule() = (GetStringFunc("tcTypeExceptionOrModule",",,,") )
+ /// type or module
+ /// (Originally from ..\FSComp.txt:745)
+ static member tcTypeOrModule() = (GetStringFunc("tcTypeOrModule",",,,") )
+ /// The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type.
+ /// (Originally from ..\FSComp.txt:746)
+ static member tcImplementsIStructuralEquatableExplicitly(a0 : System.String) = (914, GetStringFunc("tcImplementsIStructuralEquatableExplicitly",",,,%s,,,") a0)
+ /// The struct, record or union type '%s' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'.
+ /// (Originally from ..\FSComp.txt:747)
+ static member tcImplementsIEquatableExplicitly(a0 : System.String) = (915, GetStringFunc("tcImplementsIEquatableExplicitly",",,,%s,,,") a0)
+ /// Explicit type specifications cannot be used for exception constructors
+ /// (Originally from ..\FSComp.txt:748)
+ static member tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors() = (916, GetStringFunc("tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors",",,,") )
+ /// Exception abbreviations should not have argument lists
+ /// (Originally from ..\FSComp.txt:749)
+ static member tcExceptionAbbreviationsShouldNotHaveArgumentList() = (917, GetStringFunc("tcExceptionAbbreviationsShouldNotHaveArgumentList",",,,") )
+ /// Abbreviations for Common IL exceptions cannot take arguments
+ /// (Originally from ..\FSComp.txt:750)
+ static member tcAbbreviationsFordotNetExceptionsCannotTakeArguments() = (918, GetStringFunc("tcAbbreviationsFordotNetExceptionsCannotTakeArguments",",,,") )
+ /// Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception
+ /// (Originally from ..\FSComp.txt:751)
+ static member tcExceptionAbbreviationsMustReferToValidExceptions() = (919, GetStringFunc("tcExceptionAbbreviationsMustReferToValidExceptions",",,,") )
+ /// Abbreviations for Common IL exception types must have a matching object constructor
+ /// (Originally from ..\FSComp.txt:752)
+ static member tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor() = (920, GetStringFunc("tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor",",,,") )
+ /// Not an exception
+ /// (Originally from ..\FSComp.txt:753)
+ static member tcNotAnException() = (921, GetStringFunc("tcNotAnException",",,,") )
+ /// Invalid module name
+ /// (Originally from ..\FSComp.txt:755)
+ static member tcInvalidModuleName() = (924, GetStringFunc("tcInvalidModuleName",",,,") )
+ /// Invalid type extension
+ /// (Originally from ..\FSComp.txt:756)
+ static member tcInvalidTypeExtension() = (925, GetStringFunc("tcInvalidTypeExtension",",,,") )
+ /// The attributes of this type specify multiple kinds for the type
+ /// (Originally from ..\FSComp.txt:757)
+ static member tcAttributesOfTypeSpecifyMultipleKindsForType() = (926, GetStringFunc("tcAttributesOfTypeSpecifyMultipleKindsForType",",,,") )
+ /// The kind of the type specified by its attributes does not match the kind implied by its definition
+ /// (Originally from ..\FSComp.txt:758)
+ static member tcKindOfTypeSpecifiedDoesNotMatchDefinition() = (927, GetStringFunc("tcKindOfTypeSpecifiedDoesNotMatchDefinition",",,,") )
+ /// Measure definitions cannot have type parameters
+ /// (Originally from ..\FSComp.txt:759)
+ static member tcMeasureDefinitionsCannotHaveTypeParameters() = (928, GetStringFunc("tcMeasureDefinitionsCannotHaveTypeParameters",",,,") )
+ /// This type requires a definition
+ /// (Originally from ..\FSComp.txt:760)
+ static member tcTypeRequiresDefinition() = (929, GetStringFunc("tcTypeRequiresDefinition",",,,") )
+ /// This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'.
+ /// (Originally from ..\FSComp.txt:761)
+ static member tcTypeAbbreviationHasTypeParametersMissingOnType() = (GetStringFunc("tcTypeAbbreviationHasTypeParametersMissingOnType",",,,") )
+ /// Structs, interfaces, enums and delegates cannot inherit from other types
+ /// (Originally from ..\FSComp.txt:762)
+ static member tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes() = (931, GetStringFunc("tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes",",,,") )
+ /// Types cannot inherit from multiple concrete types
+ /// (Originally from ..\FSComp.txt:763)
+ static member tcTypesCannotInheritFromMultipleConcreteTypes() = (932, GetStringFunc("tcTypesCannotInheritFromMultipleConcreteTypes",",,,") )
+ /// Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute
+ /// (Originally from ..\FSComp.txt:764)
+ static member tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute() = (934, GetStringFunc("tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute",",,,") )
+ /// Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal
+ /// (Originally from ..\FSComp.txt:765)
+ static member tcAllowNullTypesMayOnlyInheritFromAllowNullTypes() = (935, GetStringFunc("tcAllowNullTypesMayOnlyInheritFromAllowNullTypes",",,,") )
+ /// Generic types cannot be given the 'StructLayout' attribute
+ /// (Originally from ..\FSComp.txt:766)
+ static member tcGenericTypesCannotHaveStructLayout() = (936, GetStringFunc("tcGenericTypesCannotHaveStructLayout",",,,") )
+ /// Only structs and classes without primary constructors may be given the 'StructLayout' attribute
+ /// (Originally from ..\FSComp.txt:767)
+ static member tcOnlyStructsCanHaveStructLayout() = (937, GetStringFunc("tcOnlyStructsCanHaveStructLayout",",,,") )
+ /// The representation of this type is hidden by the signature. It must be given an attribute such as [], [] or [] to indicate the characteristics of the type.
+ /// (Originally from ..\FSComp.txt:768)
+ static member tcRepresentationOfTypeHiddenBySignature() = (938, GetStringFunc("tcRepresentationOfTypeHiddenBySignature",",,,") )
+ /// Only classes may be given the 'AbstractClass' attribute
+ /// (Originally from ..\FSComp.txt:769)
+ static member tcOnlyClassesCanHaveAbstract() = (939, GetStringFunc("tcOnlyClassesCanHaveAbstract",",,,") )
+ /// Only types representing units-of-measure may be given the 'Measure' attribute
+ /// (Originally from ..\FSComp.txt:770)
+ static member tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure() = (940, GetStringFunc("tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure",",,,") )
+ /// Accessibility modifiers are not permitted on overrides or interface implementations
+ /// (Originally from ..\FSComp.txt:771)
+ static member tcOverridesCannotHaveVisibilityDeclarations() = (941, GetStringFunc("tcOverridesCannotHaveVisibilityDeclarations",",,,") )
+ /// Discriminated union types are always sealed
+ /// (Originally from ..\FSComp.txt:772)
+ static member tcTypesAreAlwaysSealedDU() = (942, GetStringFunc("tcTypesAreAlwaysSealedDU",",,,") )
+ /// Record types are always sealed
+ /// (Originally from ..\FSComp.txt:773)
+ static member tcTypesAreAlwaysSealedRecord() = (942, GetStringFunc("tcTypesAreAlwaysSealedRecord",",,,") )
+ /// Assembly code types are always sealed
+ /// (Originally from ..\FSComp.txt:774)
+ static member tcTypesAreAlwaysSealedAssemblyCode() = (942, GetStringFunc("tcTypesAreAlwaysSealedAssemblyCode",",,,") )
+ /// Struct types are always sealed
+ /// (Originally from ..\FSComp.txt:775)
+ static member tcTypesAreAlwaysSealedStruct() = (942, GetStringFunc("tcTypesAreAlwaysSealedStruct",",,,") )
+ /// Delegate types are always sealed
+ /// (Originally from ..\FSComp.txt:776)
+ static member tcTypesAreAlwaysSealedDelegate() = (942, GetStringFunc("tcTypesAreAlwaysSealedDelegate",",,,") )
+ /// Enum types are always sealed
+ /// (Originally from ..\FSComp.txt:777)
+ static member tcTypesAreAlwaysSealedEnum() = (942, GetStringFunc("tcTypesAreAlwaysSealedEnum",",,,") )
+ /// Interface types and delegate types cannot contain fields
+ /// (Originally from ..\FSComp.txt:778)
+ static member tcInterfaceTypesAndDelegatesCannotContainFields() = (943, GetStringFunc("tcInterfaceTypesAndDelegatesCannotContainFields",",,,") )
+ /// Abbreviated types cannot be given the 'Sealed' attribute
+ /// (Originally from ..\FSComp.txt:779)
+ static member tcAbbreviatedTypesCannotBeSealed() = (944, GetStringFunc("tcAbbreviatedTypesCannotBeSealed",",,,") )
+ /// Cannot inherit a sealed type
+ /// (Originally from ..\FSComp.txt:780)
+ static member tcCannotInheritFromSealedType() = (945, GetStringFunc("tcCannotInheritFromSealedType",",,,") )
+ /// Cannot inherit from interface type. Use interface ... with instead.
+ /// (Originally from ..\FSComp.txt:781)
+ static member tcCannotInheritFromInterfaceType() = (946, GetStringFunc("tcCannotInheritFromInterfaceType",",,,") )
+ /// Struct types cannot contain abstract members
+ /// (Originally from ..\FSComp.txt:782)
+ static member tcStructTypesCannotContainAbstractMembers() = (947, GetStringFunc("tcStructTypesCannotContainAbstractMembers",",,,") )
+ /// Interface types cannot be sealed
+ /// (Originally from ..\FSComp.txt:783)
+ static member tcInterfaceTypesCannotBeSealed() = (948, GetStringFunc("tcInterfaceTypesCannotBeSealed",",,,") )
+ /// Delegate specifications must be of the form 'typ -> typ'
+ /// (Originally from ..\FSComp.txt:784)
+ static member tcInvalidDelegateSpecification() = (949, GetStringFunc("tcInvalidDelegateSpecification",",,,") )
+ /// Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values.
+ /// (Originally from ..\FSComp.txt:785)
+ static member tcDelegatesCannotBeCurried() = (950, GetStringFunc("tcDelegatesCannotBeCurried",",,,") )
+ /// Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char
+ /// (Originally from ..\FSComp.txt:786)
+ static member tcInvalidTypeForLiteralEnumeration() = (951, GetStringFunc("tcInvalidTypeForLiteralEnumeration",",,,") )
+ /// This type definition involves an immediate cyclic reference through an abbreviation
+ /// (Originally from ..\FSComp.txt:788)
+ static member tcTypeDefinitionIsCyclic() = (953, GetStringFunc("tcTypeDefinitionIsCyclic",",,,") )
+ /// This type definition involves an immediate cyclic reference through a struct field or inheritance relation
+ /// (Originally from ..\FSComp.txt:789)
+ static member tcTypeDefinitionIsCyclicThroughInheritance() = (954, GetStringFunc("tcTypeDefinitionIsCyclicThroughInheritance",",,,") )
+ /// The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[] attribute to the type definition in the signature
+ /// (Originally from ..\FSComp.txt:790)
+ static member tcReservedSyntaxForAugmentation() = (GetStringFunc("tcReservedSyntaxForAugmentation",",,,") )
+ /// Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope.
+ /// (Originally from ..\FSComp.txt:791)
+ static member tcMembersThatExtendInterfaceMustBePlacedInSeparateModule() = (956, GetStringFunc("tcMembersThatExtendInterfaceMustBePlacedInSeparateModule",",,,") )
+ /// One or more of the declared type parameters for this type extension have a missing or wrong type constraint not matching the original type constraints on '%s'
+ /// (Originally from ..\FSComp.txt:792)
+ static member tcDeclaredTypeParametersForExtensionDoNotMatchOriginal(a0 : System.String) = (957, GetStringFunc("tcDeclaredTypeParametersForExtensionDoNotMatchOriginal",",,,%s,,,") a0)
+ /// Type definitions may only have one 'inherit' specification and it must be the first declaration
+ /// (Originally from ..\FSComp.txt:793)
+ static member tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit() = (959, GetStringFunc("tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit",",,,") )
+ /// 'let' and 'do' bindings must come before member and interface definitions in type definitions
+ /// (Originally from ..\FSComp.txt:794)
+ static member tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers() = (960, GetStringFunc("tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers",",,,") )
+ /// This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'.
+ /// (Originally from ..\FSComp.txt:795)
+ static member tcInheritDeclarationMissingArguments() = (961, GetStringFunc("tcInheritDeclarationMissingArguments",",,,") )
+ /// This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+ /// (Originally from ..\FSComp.txt:796)
+ static member tcInheritConstructionCallNotPartOfImplicitSequence() = (962, GetStringFunc("tcInheritConstructionCallNotPartOfImplicitSequence",",,,") )
+ /// This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+ /// (Originally from ..\FSComp.txt:797)
+ static member tcLetAndDoRequiresImplicitConstructionSequence() = (963, GetStringFunc("tcLetAndDoRequiresImplicitConstructionSequence",",,,") )
+ /// Type abbreviations cannot have augmentations
+ /// (Originally from ..\FSComp.txt:798)
+ static member tcTypeAbbreviationsCannotHaveAugmentations() = (964, GetStringFunc("tcTypeAbbreviationsCannotHaveAugmentations",",,,") )
+ /// The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace.
+ /// (Originally from ..\FSComp.txt:799)
+ static member tcModuleAbbreviationForNamespace(a0 : System.String) = (965, GetStringFunc("tcModuleAbbreviationForNamespace",",,,%s,,,") a0)
+ /// The type '%s' is used in an invalid way. A value prior to '%s' has an inferred type involving '%s', which is an invalid forward reference.
+ /// (Originally from ..\FSComp.txt:800)
+ static member tcTypeUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (966, GetStringFunc("tcTypeUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The member '%s' is used in an invalid way. A use of '%s' has been inferred prior to the definition of '%s', which is an invalid forward reference.
+ /// (Originally from ..\FSComp.txt:801)
+ static member tcMemberUsedInInvalidWay(a0 : System.String, a1 : System.String, a2 : System.String) = (967, GetStringFunc("tcMemberUsedInInvalidWay",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The attribute 'AutoOpen(\"%s\")' in the assembly '%s' did not refer to a valid module or namespace in that assembly and has been ignored
+ /// (Originally from ..\FSComp.txt:804)
+ static member tcAttributeAutoOpenWasIgnored(a0 : System.String, a1 : System.String) = (970, GetStringFunc("tcAttributeAutoOpenWasIgnored",",,,%s,,,%s,,,") a0 a1)
+ /// Undefined value '%s'
+ /// (Originally from ..\FSComp.txt:805)
+ static member ilUndefinedValue(a0 : System.String) = (971, GetStringFunc("ilUndefinedValue",",,,%s,,,") a0)
+ /// Label %s not found
+ /// (Originally from ..\FSComp.txt:806)
+ static member ilLabelNotFound(a0 : System.String) = (972, GetStringFunc("ilLabelNotFound",",,,%s,,,") a0)
+ /// Incorrect number of type arguments to local call
+ /// (Originally from ..\FSComp.txt:807)
+ static member ilIncorrectNumberOfTypeArguments() = (973, GetStringFunc("ilIncorrectNumberOfTypeArguments",",,,") )
+ /// Dynamic invocation of %s is not supported
+ /// (Originally from ..\FSComp.txt:808)
+ static member ilDynamicInvocationNotSupported(a0 : System.String) = (GetStringFunc("ilDynamicInvocationNotSupported",",,,%s,,,") a0)
+ /// Taking the address of a literal field is invalid
+ /// (Originally from ..\FSComp.txt:809)
+ static member ilAddressOfLiteralFieldIsInvalid() = (975, GetStringFunc("ilAddressOfLiteralFieldIsInvalid",",,,") )
+ /// This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid.
+ /// (Originally from ..\FSComp.txt:810)
+ static member ilAddressOfValueHereIsInvalid(a0 : System.String) = (976, GetStringFunc("ilAddressOfValueHereIsInvalid",",,,%s,,,") a0)
+ /// Custom marshallers cannot be specified in F# code. Consider using a C# helper function.
+ /// (Originally from ..\FSComp.txt:811)
+ static member ilCustomMarshallersCannotBeUsedInFSharp() = (980, GetStringFunc("ilCustomMarshallersCannotBeUsedInFSharp",",,,") )
+ /// The MarshalAs attribute could not be decoded
+ /// (Originally from ..\FSComp.txt:812)
+ static member ilMarshalAsAttributeCannotBeDecoded() = (981, GetStringFunc("ilMarshalAsAttributeCannotBeDecoded",",,,") )
+ /// The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function.
+ /// (Originally from ..\FSComp.txt:813)
+ static member ilSignatureForExternalFunctionContainsTypeParameters() = (982, GetStringFunc("ilSignatureForExternalFunctionContainsTypeParameters",",,,") )
+ /// The DllImport attribute could not be decoded
+ /// (Originally from ..\FSComp.txt:814)
+ static member ilDllImportAttributeCouldNotBeDecoded() = (983, GetStringFunc("ilDllImportAttributeCouldNotBeDecoded",",,,") )
+ /// Literal fields cannot be set
+ /// (Originally from ..\FSComp.txt:815)
+ static member ilLiteralFieldsCannotBeSet() = (984, GetStringFunc("ilLiteralFieldsCannotBeSet",",,,") )
+ /// GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression
+ /// (Originally from ..\FSComp.txt:816)
+ static member ilStaticMethodIsNotLambda(a0 : System.String) = (985, GetStringFunc("ilStaticMethodIsNotLambda",",,,%s,,,") a0)
+ /// Mutable variables cannot escape their method
+ /// (Originally from ..\FSComp.txt:817)
+ static member ilMutableVariablesCannotEscapeMethod() = (986, GetStringFunc("ilMutableVariablesCannotEscapeMethod",",,,") )
+ /// Compiler error: unexpected unrealized value
+ /// (Originally from ..\FSComp.txt:818)
+ static member ilUnexpectedUnrealizedValue() = (987, GetStringFunc("ilUnexpectedUnrealizedValue",",,,") )
+ /// Main module of program is empty: nothing will happen when it is run
+ /// (Originally from ..\FSComp.txt:819)
+ static member ilMainModuleEmpty() = (988, GetStringFunc("ilMainModuleEmpty",",,,") )
+ /// This type cannot be used for a literal field
+ /// (Originally from ..\FSComp.txt:820)
+ static member ilTypeCannotBeUsedForLiteralField() = (989, GetStringFunc("ilTypeCannotBeUsedForLiteralField",",,,") )
+ /// Unexpected GetSet annotation on a property
+ /// (Originally from ..\FSComp.txt:821)
+ static member ilUnexpectedGetSetAnnotation() = (990, GetStringFunc("ilUnexpectedGetSetAnnotation",",,,") )
+ /// The FieldOffset attribute could not be decoded
+ /// (Originally from ..\FSComp.txt:822)
+ static member ilFieldOffsetAttributeCouldNotBeDecoded() = (991, GetStringFunc("ilFieldOffsetAttributeCouldNotBeDecoded",",,,") )
+ /// The StructLayout attribute could not be decoded
+ /// (Originally from ..\FSComp.txt:823)
+ static member ilStructLayoutAttributeCouldNotBeDecoded() = (992, GetStringFunc("ilStructLayoutAttributeCouldNotBeDecoded",",,,") )
+ /// The DefaultAugmentation attribute could not be decoded
+ /// (Originally from ..\FSComp.txt:824)
+ static member ilDefaultAugmentationAttributeCouldNotBeDecoded() = (993, GetStringFunc("ilDefaultAugmentationAttributeCouldNotBeDecoded",",,,") )
+ /// Reflected definitions cannot contain uses of the prefix splice operator '%%'
+ /// (Originally from ..\FSComp.txt:825)
+ static member ilReflectedDefinitionsCannotUseSliceOperator() = (994, GetStringFunc("ilReflectedDefinitionsCannotUseSliceOperator",",,,") )
+ /// Problem with codepage '%d': %s
+ /// (Originally from ..\FSComp.txt:826)
+ static member optsProblemWithCodepage(a0 : System.Int32, a1 : System.String) = (1000, GetStringFunc("optsProblemWithCodepage",",,,%d,,,%s,,,") a0 a1)
+ /// Copyright (c) Microsoft Corporation. All Rights Reserved.
+ /// (Originally from ..\FSComp.txt:827)
+ static member optsCopyright() = (GetStringFunc("optsCopyright",",,,") )
+ /// Freely distributed under the MIT Open Source License. https://github.com/Microsoft/visualfsharp/blob/master/License.txt
+ /// (Originally from ..\FSComp.txt:828)
+ static member optsCopyrightCommunity() = (GetStringFunc("optsCopyrightCommunity",",,,") )
+ /// Name of the output file (Short form: -o)
+ /// (Originally from ..\FSComp.txt:829)
+ static member optsNameOfOutputFile() = (GetStringFunc("optsNameOfOutputFile",",,,") )
+ /// Build a console executable
+ /// (Originally from ..\FSComp.txt:830)
+ static member optsBuildConsole() = (GetStringFunc("optsBuildConsole",",,,") )
+ /// Build a Windows executable
+ /// (Originally from ..\FSComp.txt:831)
+ static member optsBuildWindows() = (GetStringFunc("optsBuildWindows",",,,") )
+ /// Build a library (Short form: -a)
+ /// (Originally from ..\FSComp.txt:832)
+ static member optsBuildLibrary() = (GetStringFunc("optsBuildLibrary",",,,") )
+ /// Build a module that can be added to another assembly
+ /// (Originally from ..\FSComp.txt:833)
+ static member optsBuildModule() = (GetStringFunc("optsBuildModule",",,,") )
+ /// Delay-sign the assembly using only the public portion of the strong name key
+ /// (Originally from ..\FSComp.txt:834)
+ static member optsDelaySign() = (GetStringFunc("optsDelaySign",",,,") )
+ /// Public-sign the assembly using only the public portion of the strong name key, and mark the assembly as signed
+ /// (Originally from ..\FSComp.txt:835)
+ static member optsPublicSign() = (GetStringFunc("optsPublicSign",",,,") )
+ /// Write the xmldoc of the assembly to the given file
+ /// (Originally from ..\FSComp.txt:836)
+ static member optsWriteXml() = (GetStringFunc("optsWriteXml",",,,") )
+ /// Specify a strong name key file
+ /// (Originally from ..\FSComp.txt:837)
+ static member optsStrongKeyFile() = (GetStringFunc("optsStrongKeyFile",",,,") )
+ /// Specify a strong name key container
+ /// (Originally from ..\FSComp.txt:838)
+ static member optsStrongKeyContainer() = (GetStringFunc("optsStrongKeyContainer",",,,") )
+ /// Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu.
+ /// (Originally from ..\FSComp.txt:839)
+ static member optsPlatform() = (GetStringFunc("optsPlatform",",,,") )
+ /// Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility.
+ /// (Originally from ..\FSComp.txt:840)
+ static member optsNoOpt() = (GetStringFunc("optsNoOpt",",,,") )
+ /// Don't add a resource to the generated assembly containing F#-specific metadata
+ /// (Originally from ..\FSComp.txt:841)
+ static member optsNoInterface() = (GetStringFunc("optsNoInterface",",,,") )
+ /// Print the inferred interface of the assembly to a file
+ /// (Originally from ..\FSComp.txt:842)
+ static member optsSig() = (GetStringFunc("optsSig",",,,") )
+ /// Reference an assembly (Short form: -r)
+ /// (Originally from ..\FSComp.txt:843)
+ static member optsReference() = (GetStringFunc("optsReference",",,,") )
+ /// Specify a Win32 resource file (.res)
+ /// (Originally from ..\FSComp.txt:844)
+ static member optsWin32res() = (GetStringFunc("optsWin32res",",,,") )
+ /// Specify a Win32 manifest file
+ /// (Originally from ..\FSComp.txt:845)
+ static member optsWin32manifest() = (GetStringFunc("optsWin32manifest",",,,") )
+ /// Do not include the default Win32 manifest
+ /// (Originally from ..\FSComp.txt:846)
+ static member optsNowin32manifest() = (GetStringFunc("optsNowin32manifest",",,,") )
+ /// Embed all source files in the portable PDB file
+ /// (Originally from ..\FSComp.txt:847)
+ static member optsEmbedAllSource() = (GetStringFunc("optsEmbedAllSource",",,,") )
+ /// Embed specific source files in the portable PDB file
+ /// (Originally from ..\FSComp.txt:848)
+ static member optsEmbedSource() = (GetStringFunc("optsEmbedSource",",,,") )
+ /// Source link information file to embed in the portable PDB file
+ /// (Originally from ..\FSComp.txt:849)
+ static member optsSourceLink() = (GetStringFunc("optsSourceLink",",,,") )
+ /// --embed switch only supported when emitting a Portable PDB (--debug:portable or --debug:embedded)
+ /// (Originally from ..\FSComp.txt:850)
+ static member optsEmbeddedSourceRequirePortablePDBs() = (1501, GetStringFunc("optsEmbeddedSourceRequirePortablePDBs",",,,") )
+ /// --sourcelink switch only supported when emitting a Portable PDB (--debug:portable or --debug:embedded)
+ /// (Originally from ..\FSComp.txt:851)
+ static member optsSourceLinkRequirePortablePDBs() = (1502, GetStringFunc("optsSourceLinkRequirePortablePDBs",",,,") )
+ /// Source file is too large to embed in a portable PDB
+ /// (Originally from ..\FSComp.txt:852)
+ static member srcFileTooLarge() = (GetStringFunc("srcFileTooLarge",",,,") )
+ /// Embed the specified managed resource
+ /// (Originally from ..\FSComp.txt:853)
+ static member optsResource() = (GetStringFunc("optsResource",",,,") )
+ /// Link the specified resource to this assembly where the resinfo format is [,[,public|private]]
+ /// (Originally from ..\FSComp.txt:854)
+ static member optsLinkresource() = (GetStringFunc("optsLinkresource",",,,") )
+ /// Emit debug information (Short form: -g)
+ /// (Originally from ..\FSComp.txt:855)
+ static member optsDebugPM() = (GetStringFunc("optsDebugPM",",,,") )
+ /// Specify debugging type: full, portable, embedded, pdbonly. ('%s' is the default if no debuggging type specified and enables attaching a debugger to a running program, 'portable' is a cross-platform format, 'embedded' is a cross-platform format embedded into the output file).
+ /// (Originally from ..\FSComp.txt:856)
+ static member optsDebug(a0 : System.String) = (GetStringFunc("optsDebug",",,,%s,,,") a0)
+ /// Enable optimizations (Short form: -O)
+ /// (Originally from ..\FSComp.txt:857)
+ static member optsOptimize() = (GetStringFunc("optsOptimize",",,,") )
+ /// Enable or disable tailcalls
+ /// (Originally from ..\FSComp.txt:858)
+ static member optsTailcalls() = (GetStringFunc("optsTailcalls",",,,") )
+ /// Produce a deterministic assembly (including module version GUID and timestamp)
+ /// (Originally from ..\FSComp.txt:859)
+ static member optsDeterministic() = (GetStringFunc("optsDeterministic",",,,") )
+ /// Enable or disable cross-module optimizations
+ /// (Originally from ..\FSComp.txt:860)
+ static member optsCrossoptimize() = (GetStringFunc("optsCrossoptimize",",,,") )
+ /// Report all warnings as errors
+ /// (Originally from ..\FSComp.txt:861)
+ static member optsWarnaserrorPM() = (GetStringFunc("optsWarnaserrorPM",",,,") )
+ /// Report specific warnings as errors
+ /// (Originally from ..\FSComp.txt:862)
+ static member optsWarnaserror() = (GetStringFunc("optsWarnaserror",",,,") )
+ /// Set a warning level (0-5)
+ /// (Originally from ..\FSComp.txt:863)
+ static member optsWarn() = (GetStringFunc("optsWarn",",,,") )
+ /// Disable specific warning messages
+ /// (Originally from ..\FSComp.txt:864)
+ static member optsNowarn() = (GetStringFunc("optsNowarn",",,,") )
+ /// Enable specific warnings that may be off by default
+ /// (Originally from ..\FSComp.txt:865)
+ static member optsWarnOn() = (GetStringFunc("optsWarnOn",",,,") )
+ /// Generate overflow checks
+ /// (Originally from ..\FSComp.txt:866)
+ static member optsChecked() = (GetStringFunc("optsChecked",",,,") )
+ /// Define conditional compilation symbols (Short form: -d)
+ /// (Originally from ..\FSComp.txt:867)
+ static member optsDefine() = (GetStringFunc("optsDefine",",,,") )
+ /// Ignore ML compatibility warnings
+ /// (Originally from ..\FSComp.txt:868)
+ static member optsMlcompatibility() = (GetStringFunc("optsMlcompatibility",",,,") )
+ /// Suppress compiler copyright message
+ /// (Originally from ..\FSComp.txt:869)
+ static member optsNologo() = (GetStringFunc("optsNologo",",,,") )
+ /// Display this usage message (Short form: -?)
+ /// (Originally from ..\FSComp.txt:870)
+ static member optsHelp() = (GetStringFunc("optsHelp",",,,") )
+ /// Read response file for more options
+ /// (Originally from ..\FSComp.txt:871)
+ static member optsResponseFile() = (GetStringFunc("optsResponseFile",",,,") )
+ /// Specify the codepage used to read source files
+ /// (Originally from ..\FSComp.txt:872)
+ static member optsCodepage() = (GetStringFunc("optsCodepage",",,,") )
+ /// Output messages in UTF-8 encoding
+ /// (Originally from ..\FSComp.txt:873)
+ static member optsUtf8output() = (GetStringFunc("optsUtf8output",",,,") )
+ /// Output messages with fully qualified paths
+ /// (Originally from ..\FSComp.txt:874)
+ static member optsFullpaths() = (GetStringFunc("optsFullpaths",",,,") )
+ /// Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I)
+ /// (Originally from ..\FSComp.txt:875)
+ static member optsLib() = (GetStringFunc("optsLib",",,,") )
+ /// Base address for the library to be built
+ /// (Originally from ..\FSComp.txt:876)
+ static member optsBaseaddress() = (GetStringFunc("optsBaseaddress",",,,") )
+ /// Do not reference the default CLI assemblies by default
+ /// (Originally from ..\FSComp.txt:877)
+ static member optsNoframework() = (GetStringFunc("optsNoframework",",,,") )
+ /// Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated
+ /// (Originally from ..\FSComp.txt:878)
+ static member optsStandalone() = (GetStringFunc("optsStandalone",",,,") )
+ /// Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name.
+ /// (Originally from ..\FSComp.txt:879)
+ static member optsStaticlink() = (GetStringFunc("optsStaticlink",",,,") )
+ /// Use a resident background compilation service to improve compiler startup times.
+ /// (Originally from ..\FSComp.txt:880)
+ static member optsResident() = (GetStringFunc("optsResident",",,,") )
+ /// Name the output debug file
+ /// (Originally from ..\FSComp.txt:881)
+ static member optsPdb() = (GetStringFunc("optsPdb",",,,") )
+ /// Resolve assembly references using directory-based rules rather than MSBuild resolution
+ /// (Originally from ..\FSComp.txt:882)
+ static member optsSimpleresolution() = (GetStringFunc("optsSimpleresolution",",,,") )
+ /// Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module'
+ /// (Originally from ..\FSComp.txt:883)
+ static member optsUnrecognizedTarget(a0 : System.String) = (1048, GetStringFunc("optsUnrecognizedTarget",",,,%s,,,") a0)
+ /// Unrecognized debug type '%s', expected 'pdbonly' or 'full'
+ /// (Originally from ..\FSComp.txt:884)
+ static member optsUnrecognizedDebugType(a0 : System.String) = (1049, GetStringFunc("optsUnrecognizedDebugType",",,,%s,,,") a0)
+ /// Invalid warning level '%d'
+ /// (Originally from ..\FSComp.txt:885)
+ static member optsInvalidWarningLevel(a0 : System.Int32) = (1050, GetStringFunc("optsInvalidWarningLevel",",,,%d,,,") a0)
+ /// Short form of '%s'
+ /// (Originally from ..\FSComp.txt:886)
+ static member optsShortFormOf(a0 : System.String) = (GetStringFunc("optsShortFormOf",",,,%s,,,") a0)
+ /// The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead.
+ /// (Originally from ..\FSComp.txt:887)
+ static member optsClirootDeprecatedMsg() = (GetStringFunc("optsClirootDeprecatedMsg",",,,") )
+ /// Use to override where the compiler looks for mscorlib.dll and framework components
+ /// (Originally from ..\FSComp.txt:888)
+ static member optsClirootDescription() = (GetStringFunc("optsClirootDescription",",,,") )
+ /// - OUTPUT FILES -
+ /// (Originally from ..\FSComp.txt:889)
+ static member optsHelpBannerOutputFiles() = (GetStringFunc("optsHelpBannerOutputFiles",",,,") )
+ /// - INPUT FILES -
+ /// (Originally from ..\FSComp.txt:890)
+ static member optsHelpBannerInputFiles() = (GetStringFunc("optsHelpBannerInputFiles",",,,") )
+ /// - RESOURCES -
+ /// (Originally from ..\FSComp.txt:891)
+ static member optsHelpBannerResources() = (GetStringFunc("optsHelpBannerResources",",,,") )
+ /// - CODE GENERATION -
+ /// (Originally from ..\FSComp.txt:892)
+ static member optsHelpBannerCodeGen() = (GetStringFunc("optsHelpBannerCodeGen",",,,") )
+ /// - ADVANCED -
+ /// (Originally from ..\FSComp.txt:893)
+ static member optsHelpBannerAdvanced() = (GetStringFunc("optsHelpBannerAdvanced",",,,") )
+ /// - MISCELLANEOUS -
+ /// (Originally from ..\FSComp.txt:894)
+ static member optsHelpBannerMisc() = (GetStringFunc("optsHelpBannerMisc",",,,") )
+ /// - LANGUAGE -
+ /// (Originally from ..\FSComp.txt:895)
+ static member optsHelpBannerLanguage() = (GetStringFunc("optsHelpBannerLanguage",",,,") )
+ /// - ERRORS AND WARNINGS -
+ /// (Originally from ..\FSComp.txt:896)
+ static member optsHelpBannerErrsAndWarns() = (GetStringFunc("optsHelpBannerErrsAndWarns",",,,") )
+ /// Unknown --test argument: '%s'
+ /// (Originally from ..\FSComp.txt:897)
+ static member optsUnknownArgumentToTheTestSwitch(a0 : System.String) = (1063, GetStringFunc("optsUnknownArgumentToTheTestSwitch",",,,%s,,,") a0)
+ /// Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu'
+ /// (Originally from ..\FSComp.txt:898)
+ static member optsUnknownPlatform(a0 : System.String) = (1064, GetStringFunc("optsUnknownPlatform",",,,%s,,,") a0)
+ /// The command-line option '%s' is for test purposes only
+ /// (Originally from ..\FSComp.txt:899)
+ static member optsInternalNoDescription(a0 : System.String) = (GetStringFunc("optsInternalNoDescription",",,,%s,,,") a0)
+ /// The command-line option '%s' has been deprecated
+ /// (Originally from ..\FSComp.txt:900)
+ static member optsDCLONoDescription(a0 : System.String) = (GetStringFunc("optsDCLONoDescription",",,,%s,,,") a0)
+ /// The command-line option '%s' has been deprecated. Use '%s' instead.
+ /// (Originally from ..\FSComp.txt:901)
+ static member optsDCLODeprecatedSuggestAlternative(a0 : System.String, a1 : System.String) = (GetStringFunc("optsDCLODeprecatedSuggestAlternative",",,,%s,,,%s,,,") a0 a1)
+ /// The command-line option '%s' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe.
+ /// (Originally from ..\FSComp.txt:902)
+ static member optsDCLOHtmlDoc(a0 : System.String) = (GetStringFunc("optsDCLOHtmlDoc",",,,%s,,,") a0)
+ /// Output warning and error messages in color
+ /// (Originally from ..\FSComp.txt:903)
+ static member optsConsoleColors() = (GetStringFunc("optsConsoleColors",",,,") )
+ /// Enable high-entropy ASLR
+ /// (Originally from ..\FSComp.txt:904)
+ static member optsUseHighEntropyVA() = (GetStringFunc("optsUseHighEntropyVA",",,,") )
+ /// Specify subsystem version of this assembly
+ /// (Originally from ..\FSComp.txt:905)
+ static member optsSubSystemVersion() = (GetStringFunc("optsSubSystemVersion",",,,") )
+ /// Specify target framework profile of this assembly. Valid values are mscorlib, netcore or netstandard. Default - mscorlib
+ /// (Originally from ..\FSComp.txt:906)
+ static member optsTargetProfile() = (GetStringFunc("optsTargetProfile",",,,") )
+ /// Emit debug information in quotations
+ /// (Originally from ..\FSComp.txt:907)
+ static member optsEmitDebugInfoInQuotations() = (GetStringFunc("optsEmitDebugInfoInQuotations",",,,") )
+ /// Specify the preferred output language culture name (e.g. es-ES, ja-JP)
+ /// (Originally from ..\FSComp.txt:908)
+ static member optsPreferredUiLang() = (GetStringFunc("optsPreferredUiLang",",,,") )
+ /// Don't copy FSharp.Core.dll along the produced binaries
+ /// (Originally from ..\FSComp.txt:909)
+ static member optsNoCopyFsharpCore() = (GetStringFunc("optsNoCopyFsharpCore",",,,") )
+ /// Invalid version '%s' for '--subsystemversion'. The version must be 4.00 or greater.
+ /// (Originally from ..\FSComp.txt:910)
+ static member optsInvalidSubSystemVersion(a0 : System.String) = (1051, GetStringFunc("optsInvalidSubSystemVersion",",,,%s,,,") a0)
+ /// Invalid value '%s' for '--targetprofile', valid values are 'mscorlib', 'netcore' or 'netstandard'.
+ /// (Originally from ..\FSComp.txt:911)
+ static member optsInvalidTargetProfile(a0 : System.String) = (1052, GetStringFunc("optsInvalidTargetProfile",",,,%s,,,") a0)
+ /// Full name
+ /// (Originally from ..\FSComp.txt:912)
+ static member typeInfoFullName() = (GetStringFunc("typeInfoFullName",",,,") )
+ /// and %d other overloads
+ /// (Originally from ..\FSComp.txt:916)
+ static member typeInfoOtherOverloads(a0 : System.Int32) = (GetStringFunc("typeInfoOtherOverloads",",,,%d,,,") a0)
+ /// union case
+ /// (Originally from ..\FSComp.txt:917)
+ static member typeInfoUnionCase() = (GetStringFunc("typeInfoUnionCase",",,,") )
+ /// active pattern result
+ /// (Originally from ..\FSComp.txt:918)
+ static member typeInfoActivePatternResult() = (GetStringFunc("typeInfoActivePatternResult",",,,") )
+ /// active recognizer
+ /// (Originally from ..\FSComp.txt:919)
+ static member typeInfoActiveRecognizer() = (GetStringFunc("typeInfoActiveRecognizer",",,,") )
+ /// field
+ /// (Originally from ..\FSComp.txt:920)
+ static member typeInfoField() = (GetStringFunc("typeInfoField",",,,") )
+ /// event
+ /// (Originally from ..\FSComp.txt:921)
+ static member typeInfoEvent() = (GetStringFunc("typeInfoEvent",",,,") )
+ /// property
+ /// (Originally from ..\FSComp.txt:922)
+ static member typeInfoProperty() = (GetStringFunc("typeInfoProperty",",,,") )
+ /// extension
+ /// (Originally from ..\FSComp.txt:923)
+ static member typeInfoExtension() = (GetStringFunc("typeInfoExtension",",,,") )
+ /// custom operation
+ /// (Originally from ..\FSComp.txt:924)
+ static member typeInfoCustomOperation() = (GetStringFunc("typeInfoCustomOperation",",,,") )
+ /// argument
+ /// (Originally from ..\FSComp.txt:925)
+ static member typeInfoArgument() = (GetStringFunc("typeInfoArgument",",,,") )
+ /// patvar
+ /// (Originally from ..\FSComp.txt:926)
+ static member typeInfoPatternVariable() = (GetStringFunc("typeInfoPatternVariable",",,,") )
+ /// namespace
+ /// (Originally from ..\FSComp.txt:927)
+ static member typeInfoNamespace() = (GetStringFunc("typeInfoNamespace",",,,") )
+ /// module
+ /// (Originally from ..\FSComp.txt:928)
+ static member typeInfoModule() = (GetStringFunc("typeInfoModule",",,,") )
+ /// namespace/module
+ /// (Originally from ..\FSComp.txt:929)
+ static member typeInfoNamespaceOrModule() = (GetStringFunc("typeInfoNamespaceOrModule",",,,") )
+ /// from %s
+ /// (Originally from ..\FSComp.txt:930)
+ static member typeInfoFromFirst(a0 : System.String) = (GetStringFunc("typeInfoFromFirst",",,,%s,,,") a0)
+ /// also from %s
+ /// (Originally from ..\FSComp.txt:931)
+ static member typeInfoFromNext(a0 : System.String) = (GetStringFunc("typeInfoFromNext",",,,%s,,,") a0)
+ /// generated property
+ /// (Originally from ..\FSComp.txt:932)
+ static member typeInfoGeneratedProperty() = (GetStringFunc("typeInfoGeneratedProperty",",,,") )
+ /// generated type
+ /// (Originally from ..\FSComp.txt:933)
+ static member typeInfoGeneratedType() = (GetStringFunc("typeInfoGeneratedType",",,,") )
+ /// Found by AssemblyFolders registry key
+ /// (Originally from ..\FSComp.txt:934)
+ static member assemblyResolutionFoundByAssemblyFoldersKey() = (GetStringFunc("assemblyResolutionFoundByAssemblyFoldersKey",",,,") )
+ /// Found by AssemblyFoldersEx registry key
+ /// (Originally from ..\FSComp.txt:935)
+ static member assemblyResolutionFoundByAssemblyFoldersExKey() = (GetStringFunc("assemblyResolutionFoundByAssemblyFoldersExKey",",,,") )
+ /// .NET Framework
+ /// (Originally from ..\FSComp.txt:936)
+ static member assemblyResolutionNetFramework() = (GetStringFunc("assemblyResolutionNetFramework",",,,") )
+ /// Global Assembly Cache
+ /// (Originally from ..\FSComp.txt:937)
+ static member assemblyResolutionGAC() = (GetStringFunc("assemblyResolutionGAC",",,,") )
+ /// Recursive class hierarchy in type '%s'
+ /// (Originally from ..\FSComp.txt:938)
+ static member recursiveClassHierarchy(a0 : System.String) = (1089, GetStringFunc("recursiveClassHierarchy",",,,%s,,,") a0)
+ /// Invalid recursive reference to an abstract slot
+ /// (Originally from ..\FSComp.txt:939)
+ static member InvalidRecursiveReferenceToAbstractSlot() = (1090, GetStringFunc("InvalidRecursiveReferenceToAbstractSlot",",,,") )
+ /// The event '%s' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit %s and %s methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'.
+ /// (Originally from ..\FSComp.txt:940)
+ static member eventHasNonStandardType(a0 : System.String, a1 : System.String, a2 : System.String) = (1091, GetStringFunc("eventHasNonStandardType",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The type '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:941)
+ static member typeIsNotAccessible(a0 : System.String) = (1092, GetStringFunc("typeIsNotAccessible",",,,%s,,,") a0)
+ /// The union cases or fields of the type '%s' are not accessible from this code location
+ /// (Originally from ..\FSComp.txt:942)
+ static member unionCasesAreNotAccessible(a0 : System.String) = (1093, GetStringFunc("unionCasesAreNotAccessible",",,,%s,,,") a0)
+ /// The value '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:943)
+ static member valueIsNotAccessible(a0 : System.String) = (1094, GetStringFunc("valueIsNotAccessible",",,,%s,,,") a0)
+ /// The union case '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:944)
+ static member unionCaseIsNotAccessible(a0 : System.String) = (1095, GetStringFunc("unionCaseIsNotAccessible",",,,%s,,,") a0)
+ /// The record, struct or class field '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:945)
+ static member fieldIsNotAccessible(a0 : System.String) = (1096, GetStringFunc("fieldIsNotAccessible",",,,%s,,,") a0)
+ /// The struct or class field '%s' is not accessible from this code location
+ /// (Originally from ..\FSComp.txt:946)
+ static member structOrClassFieldIsNotAccessible(a0 : System.String) = (1097, GetStringFunc("structOrClassFieldIsNotAccessible",",,,%s,,,") a0)
+ /// This construct is experimental
+ /// (Originally from ..\FSComp.txt:947)
+ static member experimentalConstruct() = (GetStringFunc("experimentalConstruct",",,,") )
+ /// No Invoke methods found for delegate type
+ /// (Originally from ..\FSComp.txt:948)
+ static member noInvokeMethodsFound() = (1099, GetStringFunc("noInvokeMethodsFound",",,,") )
+ /// More than one Invoke method found for delegate type
+ /// (Originally from ..\FSComp.txt:949)
+ static member moreThanOneInvokeMethodFound() = (GetStringFunc("moreThanOneInvokeMethodFound",",,,") )
+ /// Delegates are not allowed to have curried signatures
+ /// (Originally from ..\FSComp.txt:950)
+ static member delegatesNotAllowedToHaveCurriedSignatures() = (1101, GetStringFunc("delegatesNotAllowedToHaveCurriedSignatures",",,,") )
+ /// Unexpected Expr.TyChoose
+ /// (Originally from ..\FSComp.txt:951)
+ static member tlrUnexpectedTExpr() = (1102, GetStringFunc("tlrUnexpectedTExpr",",,,") )
+ /// Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition.
+ /// (Originally from ..\FSComp.txt:952)
+ static member tlrLambdaLiftingOptimizationsNotApplied() = (1103, GetStringFunc("tlrLambdaLiftingOptimizationsNotApplied",",,,") )
+ /// Identifiers containing '@' are reserved for use in F# code generation
+ /// (Originally from ..\FSComp.txt:953)
+ static member lexhlpIdentifiersContainingAtSymbolReserved() = (1104, GetStringFunc("lexhlpIdentifiersContainingAtSymbolReserved",",,,") )
+ /// The identifier '%s' is reserved for future use by F#
+ /// (Originally from ..\FSComp.txt:954)
+ static member lexhlpIdentifierReserved(a0 : System.String) = (GetStringFunc("lexhlpIdentifierReserved",",,,%s,,,") a0)
+ /// Missing variable '%s'
+ /// (Originally from ..\FSComp.txt:955)
+ static member patcMissingVariable(a0 : System.String) = (1106, GetStringFunc("patcMissingVariable",",,,%s,,,") a0)
+ /// Partial active patterns may only generate one result
+ /// (Originally from ..\FSComp.txt:956)
+ static member patcPartialActivePatternsGenerateOneResult() = (1107, GetStringFunc("patcPartialActivePatternsGenerateOneResult",",,,") )
+ /// The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'.
+ /// (Originally from ..\FSComp.txt:957)
+ static member impTypeRequiredUnavailable(a0 : System.String, a1 : System.String) = (1108, GetStringFunc("impTypeRequiredUnavailable",",,,%s,,,%s,,,") a0 a1)
+ /// A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly
+ /// (Originally from ..\FSComp.txt:958)
+ static member impReferencedTypeCouldNotBeFoundInAssembly(a0 : System.String, a1 : System.String) = (1109, GetStringFunc("impReferencedTypeCouldNotBeFoundInAssembly",",,,%s,,,%s,,,") a0 a1)
+ /// Internal error or badly formed metadata: not enough type parameters were in scope while importing
+ /// (Originally from ..\FSComp.txt:959)
+ static member impNotEnoughTypeParamsInScopeWhileImporting() = (1110, GetStringFunc("impNotEnoughTypeParamsInScopeWhileImporting",",,,") )
+ /// A reference to the DLL %s is required by assembly %s. The imported type %s is located in the first assembly and could not be resolved.
+ /// (Originally from ..\FSComp.txt:960)
+ static member impReferenceToDllRequiredByAssembly(a0 : System.String, a1 : System.String, a2 : System.String) = (1111, GetStringFunc("impReferenceToDllRequiredByAssembly",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// An imported assembly uses the type '%s' but that type is not public
+ /// (Originally from ..\FSComp.txt:961)
+ static member impImportedAssemblyUsesNotPublicType(a0 : System.String) = (1112, GetStringFunc("impImportedAssemblyUsesNotPublicType",",,,%s,,,") a0)
+ /// The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible
+ /// (Originally from ..\FSComp.txt:962)
+ static member optValueMarkedInlineButIncomplete(a0 : System.String) = (1113, GetStringFunc("optValueMarkedInlineButIncomplete",",,,%s,,,") a0)
+ /// The value '%s' was marked inline but was not bound in the optimization environment
+ /// (Originally from ..\FSComp.txt:963)
+ static member optValueMarkedInlineButWasNotBoundInTheOptEnv(a0 : System.String) = (1114, GetStringFunc("optValueMarkedInlineButWasNotBoundInTheOptEnv",",,,%s,,,") a0)
+ /// Local value %s not found during optimization
+ /// (Originally from ..\FSComp.txt:964)
+ static member optLocalValueNotFoundDuringOptimization(a0 : System.String) = (1115, GetStringFunc("optLocalValueNotFoundDuringOptimization",",,,%s,,,") a0)
+ /// A value marked as 'inline' has an unexpected value
+ /// (Originally from ..\FSComp.txt:965)
+ static member optValueMarkedInlineHasUnexpectedValue() = (1116, GetStringFunc("optValueMarkedInlineHasUnexpectedValue",",,,") )
+ /// A value marked as 'inline' could not be inlined
+ /// (Originally from ..\FSComp.txt:966)
+ static member optValueMarkedInlineCouldNotBeInlined() = (1117, GetStringFunc("optValueMarkedInlineCouldNotBeInlined",",,,") )
+ /// Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline'
+ /// (Originally from ..\FSComp.txt:967)
+ static member optFailedToInlineValue(a0 : System.String) = (1118, GetStringFunc("optFailedToInlineValue",",,,%s,,,") a0)
+ /// Recursive ValValue %s
+ /// (Originally from ..\FSComp.txt:968)
+ static member optRecursiveValValue(a0 : System.String) = (1119, GetStringFunc("optRecursiveValValue",",,,%s,,,") a0)
+ /// The indentation of this 'in' token is incorrect with respect to the corresponding 'let'
+ /// (Originally from ..\FSComp.txt:969)
+ static member lexfltIncorrentIndentationOfIn() = (GetStringFunc("lexfltIncorrentIndentationOfIn",",,,") )
+ /// Possible incorrect indentation: this token is offside of context started at position %s. Try indenting this token further or using standard formatting conventions.
+ /// (Originally from ..\FSComp.txt:970)
+ static member lexfltTokenIsOffsideOfContextStartedEarlier(a0 : System.String) = (GetStringFunc("lexfltTokenIsOffsideOfContextStartedEarlier",",,,%s,,,") a0)
+ /// The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation.
+ /// (Originally from ..\FSComp.txt:971)
+ static member lexfltSeparatorTokensOfPatternMatchMisaligned() = (GetStringFunc("lexfltSeparatorTokensOfPatternMatchMisaligned",",,,") )
+ /// Invalid module/expression/type
+ /// (Originally from ..\FSComp.txt:972)
+ static member nrInvalidModuleExprType() = (1123, GetStringFunc("nrInvalidModuleExprType",",,,") )
+ /// Multiple types exist called '%s', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '%s'.
+ /// (Originally from ..\FSComp.txt:973)
+ static member nrTypeInstantiationNeededToDisambiguateTypesWithSameName(a0 : System.String, a1 : System.String) = (1124, GetStringFunc("nrTypeInstantiationNeededToDisambiguateTypesWithSameName",",,,%s,,,%s,,,") a0 a1)
+ /// The instantiation of the generic type '%s' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '%s'.
+ /// (Originally from ..\FSComp.txt:974)
+ static member nrTypeInstantiationIsMissingAndCouldNotBeInferred(a0 : System.String, a1 : System.String) = (1125, GetStringFunc("nrTypeInstantiationIsMissingAndCouldNotBeInferred",",,,%s,,,%s,,,") a0 a1)
+ /// 'global' may only be used as the first name in a qualified path
+ /// (Originally from ..\FSComp.txt:975)
+ static member nrGlobalUsedOnlyAsFirstName() = (1126, GetStringFunc("nrGlobalUsedOnlyAsFirstName",",,,") )
+ /// This is not a constructor or literal, or a constructor is being used incorrectly
+ /// (Originally from ..\FSComp.txt:976)
+ static member nrIsNotConstructorOrLiteral() = (1127, GetStringFunc("nrIsNotConstructorOrLiteral",",,,") )
+ /// Unexpected empty long identifier
+ /// (Originally from ..\FSComp.txt:977)
+ static member nrUnexpectedEmptyLongId() = (1128, GetStringFunc("nrUnexpectedEmptyLongId",",,,") )
+ /// The record type '%s' does not contain a label '%s'.
+ /// (Originally from ..\FSComp.txt:978)
+ static member nrRecordDoesNotContainSuchLabel(a0 : System.String, a1 : System.String) = (1129, GetStringFunc("nrRecordDoesNotContainSuchLabel",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid field label
+ /// (Originally from ..\FSComp.txt:979)
+ static member nrInvalidFieldLabel() = (1130, GetStringFunc("nrInvalidFieldLabel",",,,") )
+ /// Invalid expression '%s'
+ /// (Originally from ..\FSComp.txt:980)
+ static member nrInvalidExpression(a0 : System.String) = (1132, GetStringFunc("nrInvalidExpression",",,,%s,,,") a0)
+ /// No constructors are available for the type '%s'
+ /// (Originally from ..\FSComp.txt:981)
+ static member nrNoConstructorsAvailableForType(a0 : System.String) = (1133, GetStringFunc("nrNoConstructorsAvailableForType",",,,%s,,,") a0)
+ /// The union type for union case '%s' was defined with the RequireQualifiedAccessAttribute. Include the name of the union type ('%s') in the name you are using.
+ /// (Originally from ..\FSComp.txt:982)
+ static member nrUnionTypeNeedsQualifiedAccess(a0 : System.String, a1 : System.String) = (1134, GetStringFunc("nrUnionTypeNeedsQualifiedAccess",",,,%s,,,%s,,,") a0 a1)
+ /// The record type for the record field '%s' was defined with the RequireQualifiedAccessAttribute. Include the name of the record type ('%s') in the name you are using.
+ /// (Originally from ..\FSComp.txt:983)
+ static member nrRecordTypeNeedsQualifiedAccess(a0 : System.String, a1 : System.String) = (1135, GetStringFunc("nrRecordTypeNeedsQualifiedAccess",",,,%s,,,%s,,,") a0 a1)
+ /// Unexpected error creating debug information file '%s'
+ /// (Originally from ..\FSComp.txt:984)
+ static member ilwriteErrorCreatingPdb(a0 : System.String) = (1136, GetStringFunc("ilwriteErrorCreatingPdb",",,,%s,,,") a0)
+ /// This number is outside the allowable range for this integer type
+ /// (Originally from ..\FSComp.txt:985)
+ static member lexOutsideIntegerRange() = (1138, GetStringFunc("lexOutsideIntegerRange",",,,") )
+ /// '%s' is not permitted as a character in operator names and is reserved for future use
+ /// (Originally from ..\FSComp.txt:989)
+ static member lexCharNotAllowedInOperatorNames(a0 : System.String) = (GetStringFunc("lexCharNotAllowedInOperatorNames",",,,%s,,,") a0)
+ /// Unexpected character '%s'
+ /// (Originally from ..\FSComp.txt:990)
+ static member lexUnexpectedChar(a0 : System.String) = (GetStringFunc("lexUnexpectedChar",",,,%s,,,") a0)
+ /// This byte array literal contains characters that do not encode as a single byte
+ /// (Originally from ..\FSComp.txt:991)
+ static member lexByteArrayCannotEncode() = (1140, GetStringFunc("lexByteArrayCannotEncode",",,,") )
+ /// Identifiers followed by '%s' are reserved for future use
+ /// (Originally from ..\FSComp.txt:992)
+ static member lexIdentEndInMarkReserved(a0 : System.String) = (1141, GetStringFunc("lexIdentEndInMarkReserved",",,,%s,,,") a0)
+ /// This number is outside the allowable range for 8-bit signed integers
+ /// (Originally from ..\FSComp.txt:993)
+ static member lexOutsideEightBitSigned() = (1142, GetStringFunc("lexOutsideEightBitSigned",",,,") )
+ /// This number is outside the allowable range for hexadecimal 8-bit signed integers
+ /// (Originally from ..\FSComp.txt:994)
+ static member lexOutsideEightBitSignedHex() = (1143, GetStringFunc("lexOutsideEightBitSignedHex",",,,") )
+ /// This number is outside the allowable range for 8-bit unsigned integers
+ /// (Originally from ..\FSComp.txt:995)
+ static member lexOutsideEightBitUnsigned() = (1144, GetStringFunc("lexOutsideEightBitUnsigned",",,,") )
+ /// This number is outside the allowable range for 16-bit signed integers
+ /// (Originally from ..\FSComp.txt:996)
+ static member lexOutsideSixteenBitSigned() = (1145, GetStringFunc("lexOutsideSixteenBitSigned",",,,") )
+ /// This number is outside the allowable range for 16-bit unsigned integers
+ /// (Originally from ..\FSComp.txt:997)
+ static member lexOutsideSixteenBitUnsigned() = (1146, GetStringFunc("lexOutsideSixteenBitUnsigned",",,,") )
+ /// This number is outside the allowable range for 32-bit signed integers
+ /// (Originally from ..\FSComp.txt:998)
+ static member lexOutsideThirtyTwoBitSigned() = (1147, GetStringFunc("lexOutsideThirtyTwoBitSigned",",,,") )
+ /// This number is outside the allowable range for 32-bit unsigned integers
+ /// (Originally from ..\FSComp.txt:999)
+ static member lexOutsideThirtyTwoBitUnsigned() = (1148, GetStringFunc("lexOutsideThirtyTwoBitUnsigned",",,,") )
+ /// This number is outside the allowable range for 64-bit signed integers
+ /// (Originally from ..\FSComp.txt:1000)
+ static member lexOutsideSixtyFourBitSigned() = (1149, GetStringFunc("lexOutsideSixtyFourBitSigned",",,,") )
+ /// This number is outside the allowable range for 64-bit unsigned integers
+ /// (Originally from ..\FSComp.txt:1001)
+ static member lexOutsideSixtyFourBitUnsigned() = (1150, GetStringFunc("lexOutsideSixtyFourBitUnsigned",",,,") )
+ /// This number is outside the allowable range for signed native integers
+ /// (Originally from ..\FSComp.txt:1002)
+ static member lexOutsideNativeSigned() = (1151, GetStringFunc("lexOutsideNativeSigned",",,,") )
+ /// This number is outside the allowable range for unsigned native integers
+ /// (Originally from ..\FSComp.txt:1003)
+ static member lexOutsideNativeUnsigned() = (1152, GetStringFunc("lexOutsideNativeUnsigned",",,,") )
+ /// Invalid floating point number
+ /// (Originally from ..\FSComp.txt:1004)
+ static member lexInvalidFloat() = (1153, GetStringFunc("lexInvalidFloat",",,,") )
+ /// This number is outside the allowable range for decimal literals
+ /// (Originally from ..\FSComp.txt:1005)
+ static member lexOusideDecimal() = (1154, GetStringFunc("lexOusideDecimal",",,,") )
+ /// This number is outside the allowable range for 32-bit floats
+ /// (Originally from ..\FSComp.txt:1006)
+ static member lexOusideThirtyTwoBitFloat() = (1155, GetStringFunc("lexOusideThirtyTwoBitFloat",",,,") )
+ /// This is not a valid numeric literal. Valid numeric literals include 1, 0x1, 0b0001 (int), 1u (uint32), 1L (int64), 1UL (uint64), 1s (int16), 1y (sbyte), 1uy (byte), 1.0 (float), 1.0f (float32), 1.0m (decimal), 1I (BigInteger).
+ /// (Originally from ..\FSComp.txt:1007)
+ static member lexInvalidNumericLiteral() = (1156, GetStringFunc("lexInvalidNumericLiteral",",,,") )
+ /// This is not a valid byte literal
+ /// (Originally from ..\FSComp.txt:1008)
+ static member lexInvalidByteLiteral() = (1157, GetStringFunc("lexInvalidByteLiteral",",,,") )
+ /// This is not a valid character literal
+ /// (Originally from ..\FSComp.txt:1009)
+ static member lexInvalidCharLiteral() = (1158, GetStringFunc("lexInvalidCharLiteral",",,,") )
+ /// This Unicode encoding is only valid in string literals
+ /// (Originally from ..\FSComp.txt:1010)
+ static member lexThisUnicodeOnlyInStringLiterals() = (1159, GetStringFunc("lexThisUnicodeOnlyInStringLiterals",",,,") )
+ /// This token is reserved for future use
+ /// (Originally from ..\FSComp.txt:1011)
+ static member lexTokenReserved() = (1160, GetStringFunc("lexTokenReserved",",,,") )
+ /// TABs are not allowed in F# code unless the #indent \"off\" option is used
+ /// (Originally from ..\FSComp.txt:1012)
+ static member lexTabsNotAllowed() = (1161, GetStringFunc("lexTabsNotAllowed",",,,") )
+ /// Invalid line number: '%s'
+ /// (Originally from ..\FSComp.txt:1013)
+ static member lexInvalidLineNumber(a0 : System.String) = (1162, GetStringFunc("lexInvalidLineNumber",",,,%s,,,") a0)
+ /// #if directive must appear as the first non-whitespace character on a line
+ /// (Originally from ..\FSComp.txt:1014)
+ static member lexHashIfMustBeFirst() = (1163, GetStringFunc("lexHashIfMustBeFirst",",,,") )
+ /// #else has no matching #if
+ /// (Originally from ..\FSComp.txt:1015)
+ static member lexHashElseNoMatchingIf() = (GetStringFunc("lexHashElseNoMatchingIf",",,,") )
+ /// #endif required for #else
+ /// (Originally from ..\FSComp.txt:1016)
+ static member lexHashEndifRequiredForElse() = (GetStringFunc("lexHashEndifRequiredForElse",",,,") )
+ /// #else directive must appear as the first non-whitespace character on a line
+ /// (Originally from ..\FSComp.txt:1017)
+ static member lexHashElseMustBeFirst() = (1166, GetStringFunc("lexHashElseMustBeFirst",",,,") )
+ /// #endif has no matching #if
+ /// (Originally from ..\FSComp.txt:1018)
+ static member lexHashEndingNoMatchingIf() = (GetStringFunc("lexHashEndingNoMatchingIf",",,,") )
+ /// #endif directive must appear as the first non-whitespace character on a line
+ /// (Originally from ..\FSComp.txt:1019)
+ static member lexHashEndifMustBeFirst() = (1168, GetStringFunc("lexHashEndifMustBeFirst",",,,") )
+ /// #if directive should be immediately followed by an identifier
+ /// (Originally from ..\FSComp.txt:1020)
+ static member lexHashIfMustHaveIdent() = (1169, GetStringFunc("lexHashIfMustHaveIdent",",,,") )
+ /// Syntax error. Wrong nested #endif, unexpected tokens before it.
+ /// (Originally from ..\FSComp.txt:1021)
+ static member lexWrongNestedHashEndif() = (1170, GetStringFunc("lexWrongNestedHashEndif",",,,") )
+ /// #! may only appear as the first line at the start of a file.
+ /// (Originally from ..\FSComp.txt:1022)
+ static member lexHashBangMustBeFirstInFile() = (GetStringFunc("lexHashBangMustBeFirstInFile",",,,") )
+ /// Expected single line comment or end of line
+ /// (Originally from ..\FSComp.txt:1023)
+ static member pplexExpectedSingleLineComment() = (1171, GetStringFunc("pplexExpectedSingleLineComment",",,,") )
+ /// Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+ /// (Originally from ..\FSComp.txt:1024)
+ static member memberOperatorDefinitionWithNoArguments(a0 : System.String) = (1172, GetStringFunc("memberOperatorDefinitionWithNoArguments",",,,%s,,,") a0)
+ /// Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+ /// (Originally from ..\FSComp.txt:1025)
+ static member memberOperatorDefinitionWithNonPairArgument(a0 : System.String, a1 : System.Int32) = (1173, GetStringFunc("memberOperatorDefinitionWithNonPairArgument",",,,%s,,,%d,,,") a0 a1)
+ /// Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+ /// (Originally from ..\FSComp.txt:1026)
+ static member memberOperatorDefinitionWithCurriedArguments(a0 : System.String) = (1174, GetStringFunc("memberOperatorDefinitionWithCurriedArguments",",,,%s,,,") a0)
+ /// All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison'
+ /// (Originally from ..\FSComp.txt:1027)
+ static member tcFSharpCoreRequiresExplicit() = (1175, GetStringFunc("tcFSharpCoreRequiresExplicit",",,,") )
+ /// The struct, record or union type '%s' has the 'StructuralComparison' attribute but the type parameter '%s' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter
+ /// (Originally from ..\FSComp.txt:1028)
+ static member tcStructuralComparisonNotSatisfied1(a0 : System.String, a1 : System.String) = (1176, GetStringFunc("tcStructuralComparisonNotSatisfied1",",,,%s,,,%s,,,") a0 a1)
+ /// The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint
+ /// (Originally from ..\FSComp.txt:1029)
+ static member tcStructuralComparisonNotSatisfied2(a0 : System.String, a1 : System.String) = (1177, GetStringFunc("tcStructuralComparisonNotSatisfied2",",,,%s,,,%s,,,") a0 a1)
+ /// The struct, record or union type '%s' is not structurally comparable because the type parameter %s does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable
+ /// (Originally from ..\FSComp.txt:1030)
+ static member tcNoComparisonNeeded1(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoComparisonNeeded1",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The struct, record or union type '%s' is not structurally comparable because the type '%s' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '%s' to clarify that the type is not comparable
+ /// (Originally from ..\FSComp.txt:1031)
+ static member tcNoComparisonNeeded2(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoComparisonNeeded2",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The struct, record or union type '%s' does not support structural equality because the type parameter %s does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality
+ /// (Originally from ..\FSComp.txt:1032)
+ static member tcNoEqualityNeeded1(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoEqualityNeeded1",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The struct, record or union type '%s' does not support structural equality because the type '%s' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '%s' to clarify that the type does not support structural equality
+ /// (Originally from ..\FSComp.txt:1033)
+ static member tcNoEqualityNeeded2(a0 : System.String, a1 : System.String, a2 : System.String) = (1178, GetStringFunc("tcNoEqualityNeeded2",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The struct, record or union type '%s' has the 'StructuralEquality' attribute but the type parameter '%s' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter
+ /// (Originally from ..\FSComp.txt:1034)
+ static member tcStructuralEqualityNotSatisfied1(a0 : System.String, a1 : System.String) = (1179, GetStringFunc("tcStructuralEqualityNotSatisfied1",",,,%s,,,%s,,,") a0 a1)
+ /// The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint
+ /// (Originally from ..\FSComp.txt:1035)
+ static member tcStructuralEqualityNotSatisfied2(a0 : System.String, a1 : System.String) = (1180, GetStringFunc("tcStructuralEqualityNotSatisfied2",",,,%s,,,%s,,,") a0 a1)
+ /// Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct.
+ /// (Originally from ..\FSComp.txt:1036)
+ static member tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly() = (1181, GetStringFunc("tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly",",,,") )
+ /// The value '%s' is unused
+ /// (Originally from ..\FSComp.txt:1037)
+ static member chkUnusedValue(a0 : System.String) = (1182, GetStringFunc("chkUnusedValue",",,,%s,,,") a0)
+ /// The recursive object reference '%s' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference.
+ /// (Originally from ..\FSComp.txt:1038)
+ static member chkUnusedThisVariable(a0 : System.String) = (1183, GetStringFunc("chkUnusedThisVariable",",,,%s,,,") a0)
+ /// A getter property may have at most one argument group
+ /// (Originally from ..\FSComp.txt:1039)
+ static member parsGetterAtMostOneArgument() = (1184, GetStringFunc("parsGetterAtMostOneArgument",",,,") )
+ /// A setter property may have at most two argument groups
+ /// (Originally from ..\FSComp.txt:1040)
+ static member parsSetterAtMostTwoArguments() = (1185, GetStringFunc("parsSetterAtMostTwoArguments",",,,") )
+ /// Invalid property getter or setter
+ /// (Originally from ..\FSComp.txt:1041)
+ static member parsInvalidProperty() = (1186, GetStringFunc("parsInvalidProperty",",,,") )
+ /// An indexer property must be given at least one argument
+ /// (Originally from ..\FSComp.txt:1042)
+ static member parsIndexerPropertyRequiresAtLeastOneArgument() = (1187, GetStringFunc("parsIndexerPropertyRequiresAtLeastOneArgument",",,,") )
+ /// This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation
+ /// (Originally from ..\FSComp.txt:1043)
+ static member tastInvalidAddressOfMutableAcrossAssemblyBoundary() = (1188, GetStringFunc("tastInvalidAddressOfMutableAcrossAssemblyBoundary",",,,") )
+ /// Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\"
+ /// (Originally from ..\FSComp.txt:1044)
+ static member parsNonAdjacentTypars() = (1189, GetStringFunc("parsNonAdjacentTypars",",,,") )
+ /// Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\"
+ /// (Originally from ..\FSComp.txt:1045)
+ static member parsNonAdjacentTyargs() = (1190, GetStringFunc("parsNonAdjacentTyargs",",,,") )
+ /// The use of the type syntax 'int C' and 'C ' is not permitted here. Consider adjusting this type to be written in the form 'C'
+ /// (Originally from ..\FSComp.txt:1046)
+ static member parsNonAtomicType() = (GetStringFunc("parsNonAtomicType",",,,") )
+ /// The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s'
+ /// (Originally from ..\FSComp.txt:1049)
+ static member tastUndefinedItemRefModuleNamespace(a0 : System.String, a1 : System.String, a2 : System.String) = (1193, GetStringFunc("tastUndefinedItemRefModuleNamespace",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The module/namespace '%s' from compilation unit '%s' did not contain the val '%s'
+ /// (Originally from ..\FSComp.txt:1050)
+ static member tastUndefinedItemRefVal(a0 : System.String, a1 : System.String, a2 : System.String) = (1194, GetStringFunc("tastUndefinedItemRefVal",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s'
+ /// (Originally from ..\FSComp.txt:1051)
+ static member tastUndefinedItemRefModuleNamespaceType(a0 : System.String, a1 : System.String, a2 : System.String) = (1195, GetStringFunc("tastUndefinedItemRefModuleNamespaceType",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case
+ /// (Originally from ..\FSComp.txt:1052)
+ static member tcInvalidUseNullAsTrueValue() = (1196, GetStringFunc("tcInvalidUseNullAsTrueValue",",,,") )
+ /// The parameter '%s' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref'. When used, a byref parameter is implicitly dereferenced.
+ /// (Originally from ..\FSComp.txt:1053)
+ static member tcParameterInferredByref(a0 : System.String) = (1197, GetStringFunc("tcParameterInferredByref",",,,%s,,,") a0)
+ /// The generic member '%s' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints.
+ /// (Originally from ..\FSComp.txt:1054)
+ static member tcNonUniformMemberUse(a0 : System.String) = (1198, GetStringFunc("tcNonUniformMemberUse",",,,%s,,,") a0)
+ /// The attribute '%s' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code.
+ /// (Originally from ..\FSComp.txt:1055)
+ static member tcAttribArgsDiffer(a0 : System.String) = (1200, GetStringFunc("tcAttribArgsDiffer",",,,%s,,,") a0)
+ /// Cannot call an abstract base member: '%s'
+ /// (Originally from ..\FSComp.txt:1056)
+ static member tcCannotCallAbstractBaseMember(a0 : System.String) = (1201, GetStringFunc("tcCannotCallAbstractBaseMember",",,,%s,,,") a0)
+ /// Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position
+ /// (Originally from ..\FSComp.txt:1057)
+ static member typrelCannotResolveAmbiguityInUnmanaged() = (1202, GetStringFunc("typrelCannotResolveAmbiguityInUnmanaged",",,,") )
+ /// This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'.
+ /// (Originally from ..\FSComp.txt:1060)
+ static member mlCompatMessage(a0 : System.String) = (GetStringFunc("mlCompatMessage",",,,%s,,,") a0)
+ /// The type '%s' has been marked as having an Explicit layout, but the field '%s' has not been marked with the 'FieldOffset' attribute
+ /// (Originally from ..\FSComp.txt:1062)
+ static member ilFieldDoesNotHaveValidOffsetForStructureLayout(a0 : System.String, a1 : System.String) = (1206, GetStringFunc("ilFieldDoesNotHaveValidOffsetForStructureLayout",",,,%s,,,%s,,,") a0 a1)
+ /// Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...'
+ /// (Originally from ..\FSComp.txt:1063)
+ static member tcInterfacesShouldUseInheritNotInterface() = (1207, GetStringFunc("tcInterfacesShouldUseInheritNotInterface",",,,") )
+ /// Invalid prefix operator
+ /// (Originally from ..\FSComp.txt:1064)
+ static member parsInvalidPrefixOperator() = (1208, GetStringFunc("parsInvalidPrefixOperator",",,,") )
+ /// Invalid operator definition. Prefix operator definitions must use a valid prefix operator name.
+ /// (Originally from ..\FSComp.txt:1065)
+ static member parsInvalidPrefixOperatorDefinition() = (1208, GetStringFunc("parsInvalidPrefixOperatorDefinition",",,,") )
+ /// The file extensions '.ml' and '.mli' are for ML compatibility
+ /// (Originally from ..\FSComp.txt:1066)
+ static member buildCompilingExtensionIsForML() = (GetStringFunc("buildCompilingExtensionIsForML",",,,") )
+ /// Consider using a file with extension '.ml' or '.mli' instead
+ /// (Originally from ..\FSComp.txt:1067)
+ static member lexIndentOffForML() = (GetStringFunc("lexIndentOffForML",",,,") )
+ /// Active pattern '%s' is not a function
+ /// (Originally from ..\FSComp.txt:1068)
+ static member activePatternIdentIsNotFunctionTyped(a0 : System.String) = (1209, GetStringFunc("activePatternIdentIsNotFunctionTyped",",,,%s,,,") a0)
+ /// Active pattern '%s' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice = A x'
+ /// (Originally from ..\FSComp.txt:1069)
+ static member activePatternChoiceHasFreeTypars(a0 : System.String) = (1210, GetStringFunc("activePatternChoiceHasFreeTypars",",,,%s,,,") a0)
+ /// The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit)
+ /// (Originally from ..\FSComp.txt:1070)
+ static member ilFieldHasOffsetForSequentialLayout() = (1211, GetStringFunc("ilFieldHasOffsetForSequentialLayout",",,,") )
+ /// Optional arguments must come at the end of the argument list, after any non-optional arguments
+ /// (Originally from ..\FSComp.txt:1071)
+ static member tcOptionalArgsMustComeAfterNonOptionalArgs() = (1212, GetStringFunc("tcOptionalArgsMustComeAfterNonOptionalArgs",",,,") )
+ /// Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes
+ /// (Originally from ..\FSComp.txt:1072)
+ static member tcConditionalAttributeUsage() = (1213, GetStringFunc("tcConditionalAttributeUsage",",,,") )
+ /// Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead.
+ /// (Originally from ..\FSComp.txt:1074)
+ static member tcMemberOperatorDefinitionInExtrinsic() = (1215, GetStringFunc("tcMemberOperatorDefinitionInExtrinsic",",,,") )
+ /// The name of the MDB file must be .mdb. The --pdb option will be ignored.
+ /// (Originally from ..\FSComp.txt:1075)
+ static member ilwriteMDBFileNameCannotBeChangedWarning() = (1216, GetStringFunc("ilwriteMDBFileNameCannotBeChangedWarning",",,,") )
+ /// MDB generation failed. Could not find compatible member %s
+ /// (Originally from ..\FSComp.txt:1076)
+ static member ilwriteMDBMemberMissing(a0 : System.String) = (1217, GetStringFunc("ilwriteMDBMemberMissing",",,,%s,,,") a0)
+ /// Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly.
+ /// (Originally from ..\FSComp.txt:1077)
+ static member ilwriteErrorCreatingMdb() = (1218, GetStringFunc("ilwriteErrorCreatingMdb",",,,") )
+ /// The union case named '%s' conflicts with the generated type '%s'
+ /// (Originally from ..\FSComp.txt:1078)
+ static member tcUnionCaseNameConflictsWithGeneratedType(a0 : System.String, a1 : System.String) = (1219, GetStringFunc("tcUnionCaseNameConflictsWithGeneratedType",",,,%s,,,%s,,,") a0 a1)
+ /// ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter
+ /// (Originally from ..\FSComp.txt:1079)
+ static member chkNoReflectedDefinitionOnStructMember() = (1220, GetStringFunc("chkNoReflectedDefinitionOnStructMember",",,,") )
+ /// DLLImport bindings must be static members in a class or function definitions in a module
+ /// (Originally from ..\FSComp.txt:1080)
+ static member tcDllImportNotAllowed() = (1221, GetStringFunc("tcDllImportNotAllowed",",,,") )
+ /// When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed
+ /// (Originally from ..\FSComp.txt:1081)
+ static member buildExplicitCoreLibRequiresNoFramework(a0 : System.String) = (1222, GetStringFunc("buildExplicitCoreLibRequiresNoFramework",",,,%s,,,") a0)
+ /// FSharp.Core.sigdata not found alongside FSharp.Core. File expected in %s. Consider upgrading to a more recent version of FSharp.Core, where this file is no longer be required.
+ /// (Originally from ..\FSComp.txt:1082)
+ static member buildExpectedSigdataFile(a0 : System.String) = (1223, GetStringFunc("buildExpectedSigdataFile",",,,%s,,,") a0)
+ /// File '%s' not found alongside FSharp.Core. File expected in %s. Consider upgrading to a more recent version of FSharp.Core, where this file is no longer be required.
+ /// (Originally from ..\FSComp.txt:1083)
+ static member buildExpectedFileAlongSideFSharpCore(a0 : System.String, a1 : System.String) = (1225, GetStringFunc("buildExpectedFileAlongSideFSharpCore",",,,%s,,,%s,,,") a0 a1)
+ /// Filename '%s' contains invalid character '%s'
+ /// (Originally from ..\FSComp.txt:1084)
+ static member buildUnexpectedFileNameCharacter(a0 : System.String, a1 : System.String) = (1227, GetStringFunc("buildUnexpectedFileNameCharacter",",,,%s,,,%s,,,") a0 a1)
+ /// 'use!' bindings must be of the form 'use! = '
+ /// (Originally from ..\FSComp.txt:1085)
+ static member tcInvalidUseBangBinding() = (1228, GetStringFunc("tcInvalidUseBangBinding",",,,") )
+ /// Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic.
+ /// (Originally from ..\FSComp.txt:1086)
+ static member crefNoInnerGenericsInQuotations() = (1230, GetStringFunc("crefNoInnerGenericsInQuotations",",,,") )
+ /// The type '%s' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property
+ /// (Originally from ..\FSComp.txt:1087)
+ static member tcEnumTypeCannotBeEnumerated(a0 : System.String) = (1231, GetStringFunc("tcEnumTypeCannotBeEnumerated",",,,%s,,,") a0)
+ /// End of file in triple-quote string begun at or before here
+ /// (Originally from ..\FSComp.txt:1088)
+ static member parsEofInTripleQuoteString() = (1232, GetStringFunc("parsEofInTripleQuoteString",",,,") )
+ /// End of file in triple-quote string embedded in comment begun at or before here
+ /// (Originally from ..\FSComp.txt:1089)
+ static member parsEofInTripleQuoteStringInComment() = (1233, GetStringFunc("parsEofInTripleQuoteStringInComment",",,,") )
+ /// This type test or downcast will ignore the unit-of-measure '%s'
+ /// (Originally from ..\FSComp.txt:1090)
+ static member tcTypeTestLosesMeasures(a0 : System.String) = (1240, GetStringFunc("tcTypeTestLosesMeasures",",,,%s,,,") a0)
+ /// Expected type argument or static argument
+ /// (Originally from ..\FSComp.txt:1091)
+ static member parsMissingTypeArgs() = (1241, GetStringFunc("parsMissingTypeArgs",",,,") )
+ /// Unmatched '<'. Expected closing '>'
+ /// (Originally from ..\FSComp.txt:1092)
+ static member parsMissingGreaterThan() = (1242, GetStringFunc("parsMissingGreaterThan",",,,") )
+ /// Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters.
+ /// (Originally from ..\FSComp.txt:1093)
+ static member parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString() = (1243, GetStringFunc("parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString",",,,") )
+ /// Attempted to parse this as an operator name, but failed
+ /// (Originally from ..\FSComp.txt:1094)
+ static member parsErrorParsingAsOperatorName() = (1244, GetStringFunc("parsErrorParsingAsOperatorName",",,,") )
+ /// \U%s is not a valid Unicode character escape sequence
+ /// (Originally from ..\FSComp.txt:1095)
+ static member lexInvalidUnicodeLiteral(a0 : System.String) = (1245, GetStringFunc("lexInvalidUnicodeLiteral",",,,%s,,,") a0)
+ /// '%s' must be applied to an argument of type '%s', but has been applied to an argument of type '%s'
+ /// (Originally from ..\FSComp.txt:1096)
+ static member tcCallerInfoWrongType(a0 : System.String, a1 : System.String, a2 : System.String) = (1246, GetStringFunc("tcCallerInfoWrongType",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// '%s' can only be applied to optional arguments
+ /// (Originally from ..\FSComp.txt:1097)
+ static member tcCallerInfoNotOptional(a0 : System.String) = (1247, GetStringFunc("tcCallerInfoNotOptional",",,,%s,,,") a0)
+ /// The specified .NET Framework version '%s' is not supported. Please specify a value from the enumeration Microsoft.Build.Utilities.TargetDotNetFrameworkVersion.
+ /// (Originally from ..\FSComp.txt:1099)
+ static member toolLocationHelperUnsupportedFrameworkVersion(a0 : System.String) = (1300, GetStringFunc("toolLocationHelperUnsupportedFrameworkVersion",",,,%s,,,") a0)
+ /// Invalid Magic value in CLR Header
+ /// (Originally from ..\FSComp.txt:1103)
+ static member ilSignInvalidMagicValue() = (1301, GetStringFunc("ilSignInvalidMagicValue",",,,") )
+ /// Bad image format
+ /// (Originally from ..\FSComp.txt:1104)
+ static member ilSignBadImageFormat() = (1302, GetStringFunc("ilSignBadImageFormat",",,,") )
+ /// Private key expected
+ /// (Originally from ..\FSComp.txt:1105)
+ static member ilSignPrivateKeyExpected() = (1303, GetStringFunc("ilSignPrivateKeyExpected",",,,") )
+ /// RSA key expected
+ /// (Originally from ..\FSComp.txt:1106)
+ static member ilSignRsaKeyExpected() = (1304, GetStringFunc("ilSignRsaKeyExpected",",,,") )
+ /// Invalid bit Length
+ /// (Originally from ..\FSComp.txt:1107)
+ static member ilSignInvalidBitLen() = (1305, GetStringFunc("ilSignInvalidBitLen",",,,") )
+ /// Invalid RSAParameters structure - '{0}' expected
+ /// (Originally from ..\FSComp.txt:1108)
+ static member ilSignInvalidRSAParams() = (1306, GetStringFunc("ilSignInvalidRSAParams",",,,") )
+ /// Invalid algId - 'Exponent' expected
+ /// (Originally from ..\FSComp.txt:1109)
+ static member ilSignInvalidAlgId() = (1307, GetStringFunc("ilSignInvalidAlgId",",,,") )
+ /// Invalid signature size
+ /// (Originally from ..\FSComp.txt:1110)
+ static member ilSignInvalidSignatureSize() = (1308, GetStringFunc("ilSignInvalidSignatureSize",",,,") )
+ /// No signature directory
+ /// (Originally from ..\FSComp.txt:1111)
+ static member ilSignNoSignatureDirectory() = (1309, GetStringFunc("ilSignNoSignatureDirectory",",,,") )
+ /// Invalid Public Key blob
+ /// (Originally from ..\FSComp.txt:1112)
+ static member ilSignInvalidPKBlob() = (1310, GetStringFunc("ilSignInvalidPKBlob",",,,") )
+ /// Exiting - too many errors
+ /// (Originally from ..\FSComp.txt:1114)
+ static member fscTooManyErrors() = (GetStringFunc("fscTooManyErrors",",,,") )
+ /// The documentation file has no .xml suffix
+ /// (Originally from ..\FSComp.txt:1115)
+ static member docfileNoXmlSuffix() = (2001, GetStringFunc("docfileNoXmlSuffix",",,,") )
+ /// No implementation files specified
+ /// (Originally from ..\FSComp.txt:1116)
+ static member fscNoImplementationFiles() = (2002, GetStringFunc("fscNoImplementationFiles",",,,") )
+ /// An %s specified version '%s', but this value is invalid and has been ignored
+ /// (Originally from ..\FSComp.txt:1117)
+ static member fscBadAssemblyVersion(a0 : System.String, a1 : System.String) = (2003, GetStringFunc("fscBadAssemblyVersion",",,,%s,,,%s,,,") a0 a1)
+ /// Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used.
+ /// (Originally from ..\FSComp.txt:1118)
+ static member fscTwoResourceManifests() = (2004, GetStringFunc("fscTwoResourceManifests",",,,") )
+ /// The code in assembly '%s' makes uses of quotation literals. Static linking may not include components that make use of quotation literals unless all assemblies are compiled with at least F# 4.0.
+ /// (Originally from ..\FSComp.txt:1119)
+ static member fscQuotationLiteralsStaticLinking(a0 : System.String) = (2005, GetStringFunc("fscQuotationLiteralsStaticLinking",",,,%s,,,") a0)
+ /// Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals unless all assemblies are compiled with at least F# 4.0.
+ /// (Originally from ..\FSComp.txt:1120)
+ static member fscQuotationLiteralsStaticLinking0() = (2006, GetStringFunc("fscQuotationLiteralsStaticLinking0",",,,") )
+ /// Static linking may not include a .EXE
+ /// (Originally from ..\FSComp.txt:1121)
+ static member fscStaticLinkingNoEXE() = (2007, GetStringFunc("fscStaticLinkingNoEXE",",,,") )
+ /// Static linking may not include a mixed managed/unmanaged DLL
+ /// (Originally from ..\FSComp.txt:1122)
+ static member fscStaticLinkingNoMixedDLL() = (2008, GetStringFunc("fscStaticLinkingNoMixedDLL",",,,") )
+ /// Ignoring mixed managed/unmanaged assembly '%s' during static linking
+ /// (Originally from ..\FSComp.txt:1123)
+ static member fscIgnoringMixedWhenLinking(a0 : System.String) = (2009, GetStringFunc("fscIgnoringMixedWhenLinking",",,,%s,,,") a0)
+ /// Assembly '%s' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL.
+ /// (Originally from ..\FSComp.txt:1124)
+ static member fscAssumeStaticLinkContainsNoDependencies(a0 : System.String) = (2011, GetStringFunc("fscAssumeStaticLinkContainsNoDependencies",",,,%s,,,") a0)
+ /// Assembly '%s' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked.
+ /// (Originally from ..\FSComp.txt:1125)
+ static member fscAssemblyNotFoundInDependencySet(a0 : System.String) = (2012, GetStringFunc("fscAssemblyNotFoundInDependencySet",",,,%s,,,") a0)
+ /// The key file '%s' could not be opened
+ /// (Originally from ..\FSComp.txt:1126)
+ static member fscKeyFileCouldNotBeOpened(a0 : System.String) = (2013, GetStringFunc("fscKeyFileCouldNotBeOpened",",,,%s,,,") a0)
+ /// A problem occurred writing the binary '%s': %s
+ /// (Originally from ..\FSComp.txt:1127)
+ static member fscProblemWritingBinary(a0 : System.String, a1 : System.String) = (2014, GetStringFunc("fscProblemWritingBinary",",,,%s,,,%s,,,") a0 a1)
+ /// The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option
+ /// (Originally from ..\FSComp.txt:1128)
+ static member fscAssemblyVersionAttributeIgnored() = (2015, GetStringFunc("fscAssemblyVersionAttributeIgnored",",,,") )
+ /// Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty'
+ /// (Originally from ..\FSComp.txt:1129)
+ static member fscAssemblyCultureAttributeError() = (2016, GetStringFunc("fscAssemblyCultureAttributeError",",,,") )
+ /// Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module
+ /// (Originally from ..\FSComp.txt:1130)
+ static member fscDelaySignWarning() = (2017, GetStringFunc("fscDelaySignWarning",",,,") )
+ /// Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module
+ /// (Originally from ..\FSComp.txt:1131)
+ static member fscKeyFileWarning() = (2018, GetStringFunc("fscKeyFileWarning",",,,") )
+ /// Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module
+ /// (Originally from ..\FSComp.txt:1132)
+ static member fscKeyNameWarning() = (2019, GetStringFunc("fscKeyNameWarning",",,,") )
+ /// The assembly '%s' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'.
+ /// (Originally from ..\FSComp.txt:1133)
+ static member fscReferenceOnCommandLine(a0 : System.String) = (2020, GetStringFunc("fscReferenceOnCommandLine",",,,%s,,,") a0)
+ /// The resident compilation service was not used because a problem occured in communicating with the server.
+ /// (Originally from ..\FSComp.txt:1134)
+ static member fscRemotingError() = (2021, GetStringFunc("fscRemotingError",",,,") )
+ /// Problem with filename '%s': Illegal characters in path.
+ /// (Originally from ..\FSComp.txt:1135)
+ static member pathIsInvalid(a0 : System.String) = (2022, GetStringFunc("pathIsInvalid",",,,%s,,,") a0)
+ /// Passing a .resx file (%s) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an item in the .fsproj project file.
+ /// (Originally from ..\FSComp.txt:1136)
+ static member fscResxSourceFileDeprecated(a0 : System.String) = (2023, GetStringFunc("fscResxSourceFileDeprecated",",,,%s,,,") a0)
+ /// Static linking may not be used on an assembly referencing mscorlib (e.g. a .NET Framework assembly) when generating an assembly that references System.Runtime (e.g. a .NET Core or Portable assembly).
+ /// (Originally from ..\FSComp.txt:1137)
+ static member fscStaticLinkingNoProfileMismatches() = (2024, GetStringFunc("fscStaticLinkingNoProfileMismatches",",,,") )
+ /// An %s specified version '%s', but this value is a wildcard, and you have requested a deterministic build, these are in conflict.
+ /// (Originally from ..\FSComp.txt:1138)
+ static member fscAssemblyWildcardAndDeterminism(a0 : System.String, a1 : System.String) = (2025, GetStringFunc("fscAssemblyWildcardAndDeterminism",",,,%s,,,%s,,,") a0 a1)
+ /// Determinstic builds only support portable PDBs (--debug:portable or --debug:embedded)
+ /// (Originally from ..\FSComp.txt:1139)
+ static member fscDeterministicDebugRequiresPortablePdb() = (2026, GetStringFunc("fscDeterministicDebugRequiresPortablePdb",",,,") )
+ /// Character '%s' is not allowed in provided namespace name '%s'
+ /// (Originally from ..\FSComp.txt:1140)
+ static member etIllegalCharactersInNamespaceName(a0 : System.String, a1 : System.String) = (3000, GetStringFunc("etIllegalCharactersInNamespaceName",",,,%s,,,%s,,,") a0 a1)
+ /// The provided type '%s' returned a member with a null or empty member name
+ /// (Originally from ..\FSComp.txt:1141)
+ static member etNullOrEmptyMemberName(a0 : System.String) = (3001, GetStringFunc("etNullOrEmptyMemberName",",,,%s,,,") a0)
+ /// The provided type '%s' returned a null member
+ /// (Originally from ..\FSComp.txt:1142)
+ static member etNullMember(a0 : System.String) = (3002, GetStringFunc("etNullMember",",,,%s,,,") a0)
+ /// The provided type '%s' member info '%s' has null declaring type
+ /// (Originally from ..\FSComp.txt:1143)
+ static member etNullMemberDeclaringType(a0 : System.String, a1 : System.String) = (3003, GetStringFunc("etNullMemberDeclaringType",",,,%s,,,%s,,,") a0 a1)
+ /// The provided type '%s' has member '%s' which has declaring type '%s'. Expected declaring type to be the same as provided type.
+ /// (Originally from ..\FSComp.txt:1144)
+ static member etNullMemberDeclaringTypeDifferentFromProvidedType(a0 : System.String, a1 : System.String, a2 : System.String) = (3004, GetStringFunc("etNullMemberDeclaringTypeDifferentFromProvidedType",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Referenced assembly '%s' has assembly level attribute '%s' but no public type provider classes were found
+ /// (Originally from ..\FSComp.txt:1145)
+ static member etHostingAssemblyFoundWithoutHosts(a0 : System.String, a1 : System.String) = (3005, GetStringFunc("etHostingAssemblyFoundWithoutHosts",",,,%s,,,%s,,,") a0 a1)
+ /// Type '%s' from type provider '%s' has an empty namespace. Use 'null' for the global namespace.
+ /// (Originally from ..\FSComp.txt:1146)
+ static member etEmptyNamespaceOfTypeNotAllowed(a0 : System.String, a1 : System.String) = (3006, GetStringFunc("etEmptyNamespaceOfTypeNotAllowed",",,,%s,,,%s,,,") a0 a1)
+ /// Empty namespace found from the type provider '%s'. Use 'null' for the global namespace.
+ /// (Originally from ..\FSComp.txt:1147)
+ static member etEmptyNamespaceNotAllowed(a0 : System.String) = (3007, GetStringFunc("etEmptyNamespaceNotAllowed",",,,%s,,,") a0)
+ /// Provided type '%s' has 'IsGenericType' as true, but generic types are not supported.
+ /// (Originally from ..\FSComp.txt:1148)
+ static member etMustNotBeGeneric(a0 : System.String) = (3011, GetStringFunc("etMustNotBeGeneric",",,,%s,,,") a0)
+ /// Provided type '%s' has 'IsArray' as true, but array types are not supported.
+ /// (Originally from ..\FSComp.txt:1149)
+ static member etMustNotBeAnArray(a0 : System.String) = (3013, GetStringFunc("etMustNotBeAnArray",",,,%s,,,") a0)
+ /// Invalid member '%s' on provided type '%s'. Provided type members must be public, and not be generic, virtual, or abstract.
+ /// (Originally from ..\FSComp.txt:1150)
+ static member etMethodHasRequirements(a0 : System.String, a1 : System.String) = (3014, GetStringFunc("etMethodHasRequirements",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid member '%s' on provided type '%s'. Only properties, methods and constructors are allowed
+ /// (Originally from ..\FSComp.txt:1151)
+ static member etUnsupportedMemberKind(a0 : System.String, a1 : System.String) = (3015, GetStringFunc("etUnsupportedMemberKind",",,,%s,,,%s,,,") a0 a1)
+ /// Property '%s' on provided type '%s' has CanRead=true but there was no value from GetGetMethod()
+ /// (Originally from ..\FSComp.txt:1152)
+ static member etPropertyCanReadButHasNoGetter(a0 : System.String, a1 : System.String) = (3016, GetStringFunc("etPropertyCanReadButHasNoGetter",",,,%s,,,%s,,,") a0 a1)
+ /// Property '%s' on provided type '%s' has CanRead=false but GetGetMethod() returned a method
+ /// (Originally from ..\FSComp.txt:1153)
+ static member etPropertyHasGetterButNoCanRead(a0 : System.String, a1 : System.String) = (3017, GetStringFunc("etPropertyHasGetterButNoCanRead",",,,%s,,,%s,,,") a0 a1)
+ /// Property '%s' on provided type '%s' has CanWrite=true but there was no value from GetSetMethod()
+ /// (Originally from ..\FSComp.txt:1154)
+ static member etPropertyCanWriteButHasNoSetter(a0 : System.String, a1 : System.String) = (3018, GetStringFunc("etPropertyCanWriteButHasNoSetter",",,,%s,,,%s,,,") a0 a1)
+ /// Property '%s' on provided type '%s' has CanWrite=false but GetSetMethod() returned a method
+ /// (Originally from ..\FSComp.txt:1155)
+ static member etPropertyHasSetterButNoCanWrite(a0 : System.String, a1 : System.String) = (3019, GetStringFunc("etPropertyHasSetterButNoCanWrite",",,,%s,,,%s,,,") a0 a1)
+ /// One or more errors seen during provided type setup
+ /// (Originally from ..\FSComp.txt:1156)
+ static member etOneOrMoreErrorsSeenDuringExtensionTypeSetting() = (3020, GetStringFunc("etOneOrMoreErrorsSeenDuringExtensionTypeSetting",",,,") )
+ /// Unexpected exception from provided type '%s' member '%s': %s
+ /// (Originally from ..\FSComp.txt:1157)
+ static member etUnexpectedExceptionFromProvidedTypeMember(a0 : System.String, a1 : System.String, a2 : System.String) = (3021, GetStringFunc("etUnexpectedExceptionFromProvidedTypeMember",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Unsupported constant type '%s'. Quotations provided by type providers can only contain simple constants. The implementation of the type provider may need to be adjusted by moving a value declared outside a provided quotation literal to be a 'let' binding inside the quotation literal.
+ /// (Originally from ..\FSComp.txt:1158)
+ static member etUnsupportedConstantType(a0 : System.String) = (3022, GetStringFunc("etUnsupportedConstantType",",,,%s,,,") a0)
+ /// Unsupported expression '%s' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression.
+ /// (Originally from ..\FSComp.txt:1159)
+ static member etUnsupportedProvidedExpression(a0 : System.String) = (3025, GetStringFunc("etUnsupportedProvidedExpression",",,,%s,,,") a0)
+ /// Expected provided type named '%s' but provided type has 'Name' with value '%s'
+ /// (Originally from ..\FSComp.txt:1160)
+ static member etProvidedTypeHasUnexpectedName(a0 : System.String, a1 : System.String) = (3028, GetStringFunc("etProvidedTypeHasUnexpectedName",",,,%s,,,%s,,,") a0 a1)
+ /// Event '%s' on provided type '%s' has no value from GetAddMethod()
+ /// (Originally from ..\FSComp.txt:1161)
+ static member etEventNoAdd(a0 : System.String, a1 : System.String) = (3029, GetStringFunc("etEventNoAdd",",,,%s,,,%s,,,") a0 a1)
+ /// Event '%s' on provided type '%s' has no value from GetRemoveMethod()
+ /// (Originally from ..\FSComp.txt:1162)
+ static member etEventNoRemove(a0 : System.String, a1 : System.String) = (3030, GetStringFunc("etEventNoRemove",",,,%s,,,%s,,,") a0 a1)
+ /// Assembly attribute '%s' refers to a designer assembly '%s' which cannot be loaded or doesn't exist. %s
+ /// (Originally from ..\FSComp.txt:1163)
+ static member etProviderHasWrongDesignerAssembly(a0 : System.String, a1 : System.String, a2 : System.String) = (3031, GetStringFunc("etProviderHasWrongDesignerAssembly",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected.
+ /// (Originally from ..\FSComp.txt:1164)
+ static member etProviderDoesNotHaveValidConstructor() = (3032, GetStringFunc("etProviderDoesNotHaveValidConstructor",",,,") )
+ /// The type provider '%s' reported an error: %s
+ /// (Originally from ..\FSComp.txt:1165)
+ static member etProviderError(a0 : System.String, a1 : System.String) = (3033, GetStringFunc("etProviderError",",,,%s,,,%s,,,") a0 a1)
+ /// The type provider '%s' used an invalid parameter in the ParameterExpression: %s
+ /// (Originally from ..\FSComp.txt:1166)
+ static member etIncorrectParameterExpression(a0 : System.String, a1 : System.String) = (3034, GetStringFunc("etIncorrectParameterExpression",",,,%s,,,%s,,,") a0 a1)
+ /// The type provider '%s' provided a method with a name '%s' and metadata token '%d', which is not reported among its methods of its declaring type '%s'
+ /// (Originally from ..\FSComp.txt:1167)
+ static member etIncorrectProvidedMethod(a0 : System.String, a1 : System.String, a2 : System.Int32, a3 : System.String) = (3035, GetStringFunc("etIncorrectProvidedMethod",",,,%s,,,%s,,,%d,,,%s,,,") a0 a1 a2 a3)
+ /// The type provider '%s' provided a constructor which is not reported among the constructors of its declaring type '%s'
+ /// (Originally from ..\FSComp.txt:1168)
+ static member etIncorrectProvidedConstructor(a0 : System.String, a1 : System.String) = (3036, GetStringFunc("etIncorrectProvidedConstructor",",,,%s,,,%s,,,") a0 a1)
+ /// A direct reference to the generated type '%s' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = '. This indicates that a type provider adds generated types to your assembly.
+ /// (Originally from ..\FSComp.txt:1169)
+ static member etDirectReferenceToGeneratedTypeNotAllowed(a0 : System.String) = (3039, GetStringFunc("etDirectReferenceToGeneratedTypeNotAllowed",",,,%s,,,") a0)
+ /// Expected provided type with path '%s' but provided type has path '%s'
+ /// (Originally from ..\FSComp.txt:1170)
+ static member etProvidedTypeHasUnexpectedPath(a0 : System.String, a1 : System.String) = (3041, GetStringFunc("etProvidedTypeHasUnexpectedPath",",,,%s,,,%s,,,") a0 a1)
+ /// Unexpected 'null' return value from provided type '%s' member '%s'
+ /// (Originally from ..\FSComp.txt:1171)
+ static member etUnexpectedNullFromProvidedTypeMember(a0 : System.String, a1 : System.String) = (3042, GetStringFunc("etUnexpectedNullFromProvidedTypeMember",",,,%s,,,%s,,,") a0 a1)
+ /// Unexpected exception from member '%s' of provided type '%s' member '%s': %s
+ /// (Originally from ..\FSComp.txt:1172)
+ static member etUnexpectedExceptionFromProvidedMemberMember(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3043, GetStringFunc("etUnexpectedExceptionFromProvidedMemberMember",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// Nested provided types do not take static arguments or generic parameters
+ /// (Originally from ..\FSComp.txt:1173)
+ static member etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters() = (3044, GetStringFunc("etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters",",,,") )
+ /// Invalid static argument to provided type. Expected an argument of kind '%s'.
+ /// (Originally from ..\FSComp.txt:1174)
+ static member etInvalidStaticArgument(a0 : System.String) = (3045, GetStringFunc("etInvalidStaticArgument",",,,%s,,,") a0)
+ /// An error occured applying the static arguments to a provided type
+ /// (Originally from ..\FSComp.txt:1175)
+ static member etErrorApplyingStaticArgumentsToType() = (3046, GetStringFunc("etErrorApplyingStaticArgumentsToType",",,,") )
+ /// Unknown static argument kind '%s' when resolving a reference to a provided type or method '%s'
+ /// (Originally from ..\FSComp.txt:1176)
+ static member etUnknownStaticArgumentKind(a0 : System.String, a1 : System.String) = (3047, GetStringFunc("etUnknownStaticArgumentKind",",,,%s,,,%s,,,") a0 a1)
+ /// invalid namespace for provided type
+ /// (Originally from ..\FSComp.txt:1177)
+ static member invalidNamespaceForProvidedType() = (GetStringFunc("invalidNamespaceForProvidedType",",,,") )
+ /// invalid full name for provided type
+ /// (Originally from ..\FSComp.txt:1178)
+ static member invalidFullNameForProvidedType() = (GetStringFunc("invalidFullNameForProvidedType",",,,") )
+ /// The type provider returned 'null', which is not a valid return value from '%s'
+ /// (Originally from ..\FSComp.txt:1180)
+ static member etProviderReturnedNull(a0 : System.String) = (3051, GetStringFunc("etProviderReturnedNull",",,,%s,,,") a0)
+ /// The type provider constructor has thrown an exception: %s
+ /// (Originally from ..\FSComp.txt:1181)
+ static member etTypeProviderConstructorException(a0 : System.String) = (3053, GetStringFunc("etTypeProviderConstructorException",",,,%s,,,") a0)
+ /// Type provider '%s' returned null from GetInvokerExpression.
+ /// (Originally from ..\FSComp.txt:1182)
+ static member etNullProvidedExpression(a0 : System.String) = (3056, GetStringFunc("etNullProvidedExpression",",,,%s,,,") a0)
+ /// The type provider '%s' returned an invalid type from 'ApplyStaticArguments'. A type with name '%s' was expected, but a type with name '%s' was returned.
+ /// (Originally from ..\FSComp.txt:1183)
+ static member etProvidedAppliedTypeHadWrongName(a0 : System.String, a1 : System.String, a2 : System.String) = (3057, GetStringFunc("etProvidedAppliedTypeHadWrongName",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// The type provider '%s' returned an invalid method from 'ApplyStaticArgumentsForMethod'. A method with name '%s' was expected, but a method with name '%s' was returned.
+ /// (Originally from ..\FSComp.txt:1184)
+ static member etProvidedAppliedMethodHadWrongName(a0 : System.String, a1 : System.String, a2 : System.String) = (3058, GetStringFunc("etProvidedAppliedMethodHadWrongName",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// This type test or downcast will erase the provided type '%s' to the type '%s'
+ /// (Originally from ..\FSComp.txt:1185)
+ static member tcTypeTestLossy(a0 : System.String, a1 : System.String) = (3060, GetStringFunc("tcTypeTestLossy",",,,%s,,,%s,,,") a0 a1)
+ /// This downcast will erase the provided type '%s' to the type '%s'.
+ /// (Originally from ..\FSComp.txt:1186)
+ static member tcTypeCastErased(a0 : System.String, a1 : System.String) = (3061, GetStringFunc("tcTypeCastErased",",,,%s,,,%s,,,") a0 a1)
+ /// This type test with a provided type '%s' is not allowed because this provided type will be erased to '%s' at runtime.
+ /// (Originally from ..\FSComp.txt:1187)
+ static member tcTypeTestErased(a0 : System.String, a1 : System.String) = (3062, GetStringFunc("tcTypeTestErased",",,,%s,,,%s,,,") a0 a1)
+ /// Cannot inherit from erased provided type
+ /// (Originally from ..\FSComp.txt:1188)
+ static member tcCannotInheritFromErasedType() = (3063, GetStringFunc("tcCannotInheritFromErasedType",",,,") )
+ /// Assembly '%s' hase TypeProviderAssembly attribute with invalid value '%s'. The value should be a valid assembly name
+ /// (Originally from ..\FSComp.txt:1189)
+ static member etInvalidTypeProviderAssemblyName(a0 : System.String, a1 : System.String) = (3065, GetStringFunc("etInvalidTypeProviderAssemblyName",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid member name. Members may not have name '.ctor' or '.cctor'
+ /// (Originally from ..\FSComp.txt:1190)
+ static member tcInvalidMemberNameCtor() = (3066, GetStringFunc("tcInvalidMemberNameCtor",",,,") )
+ /// The function or member '%s' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '%s'.
+ /// (Originally from ..\FSComp.txt:1191)
+ static member tcInferredGenericTypeGivesRiseToInconsistency(a0 : System.String, a1 : System.String) = (3068, GetStringFunc("tcInferredGenericTypeGivesRiseToInconsistency",",,,%s,,,%s,,,") a0 a1)
+ /// The number of type arguments did not match: '%d' given, '%d' expected. This may be related to a previously reported error.
+ /// (Originally from ..\FSComp.txt:1192)
+ static member tcInvalidTypeArgumentCount(a0 : System.Int32, a1 : System.Int32) = (3069, GetStringFunc("tcInvalidTypeArgumentCount",",,,%d,,,%d,,,") a0 a1)
+ /// Cannot override inherited member '%s' because it is sealed
+ /// (Originally from ..\FSComp.txt:1193)
+ static member tcCannotOverrideSealedMethod(a0 : System.String) = (3070, GetStringFunc("tcCannotOverrideSealedMethod",",,,%s,,,") a0)
+ /// The type provider '%s' reported an error in the context of provided type '%s', member '%s'. The error: %s
+ /// (Originally from ..\FSComp.txt:1194)
+ static member etProviderErrorWithContext(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3071, GetStringFunc("etProviderErrorWithContext",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// An exception occurred when accessing the '%s' of a provided type: %s
+ /// (Originally from ..\FSComp.txt:1195)
+ static member etProvidedTypeWithNameException(a0 : System.String, a1 : System.String) = (3072, GetStringFunc("etProvidedTypeWithNameException",",,,%s,,,%s,,,") a0 a1)
+ /// The '%s' of a provided type was null or empty.
+ /// (Originally from ..\FSComp.txt:1196)
+ static member etProvidedTypeWithNullOrEmptyName(a0 : System.String) = (3073, GetStringFunc("etProvidedTypeWithNullOrEmptyName",",,,%s,,,") a0)
+ /// Character '%s' is not allowed in provided type name '%s'
+ /// (Originally from ..\FSComp.txt:1197)
+ static member etIllegalCharactersInTypeName(a0 : System.String, a1 : System.String) = (3075, GetStringFunc("etIllegalCharactersInTypeName",",,,%s,,,%s,,,") a0 a1)
+ /// In queries, '%s' must use a simple pattern
+ /// (Originally from ..\FSComp.txt:1198)
+ static member tcJoinMustUseSimplePattern(a0 : System.String) = (3077, GetStringFunc("tcJoinMustUseSimplePattern",",,,%s,,,") a0)
+ /// A custom query operation for '%s' is required but not specified
+ /// (Originally from ..\FSComp.txt:1199)
+ static member tcMissingCustomOperation(a0 : System.String) = (3078, GetStringFunc("tcMissingCustomOperation",",,,%s,,,") a0)
+ /// Named static arguments must come after all unnamed static arguments
+ /// (Originally from ..\FSComp.txt:1200)
+ static member etBadUnnamedStaticArgs() = (3080, GetStringFunc("etBadUnnamedStaticArgs",",,,") )
+ /// The static parameter '%s' of the provided type or method '%s' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '%s<%s=...>'.
+ /// (Originally from ..\FSComp.txt:1201)
+ static member etStaticParameterRequiresAValue(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3081, GetStringFunc("etStaticParameterRequiresAValue",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// No static parameter exists with name '%s'
+ /// (Originally from ..\FSComp.txt:1202)
+ static member etNoStaticParameterWithName(a0 : System.String) = (3082, GetStringFunc("etNoStaticParameterWithName",",,,%s,,,") a0)
+ /// The static parameter '%s' has already been given a value
+ /// (Originally from ..\FSComp.txt:1203)
+ static member etStaticParameterAlreadyHasValue(a0 : System.String) = (3083, GetStringFunc("etStaticParameterAlreadyHasValue",",,,%s,,,") a0)
+ /// Multiple static parameters exist with name '%s'
+ /// (Originally from ..\FSComp.txt:1204)
+ static member etMultipleStaticParameterWithName(a0 : System.String) = (3084, GetStringFunc("etMultipleStaticParameterWithName",",,,%s,,,") a0)
+ /// A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression
+ /// (Originally from ..\FSComp.txt:1205)
+ static member tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings() = (3085, GetStringFunc("tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings",",,,") )
+ /// A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression
+ /// (Originally from ..\FSComp.txt:1206)
+ static member tcCustomOperationMayNotBeUsedHere() = (3086, GetStringFunc("tcCustomOperationMayNotBeUsedHere",",,,") )
+ /// The custom operation '%s' refers to a method which is overloaded. The implementations of custom operations may not be overloaded.
+ /// (Originally from ..\FSComp.txt:1207)
+ static member tcCustomOperationMayNotBeOverloaded(a0 : System.String) = (3087, GetStringFunc("tcCustomOperationMayNotBeOverloaded",",,,%s,,,") a0)
+ /// An if/then/else expression may not be used within queries. Consider using either an if/then expression, or use a sequence expression instead.
+ /// (Originally from ..\FSComp.txt:1208)
+ static member tcIfThenElseMayNotBeUsedWithinQueries() = (3090, GetStringFunc("tcIfThenElseMayNotBeUsedWithinQueries",",,,") )
+ /// Invalid argument to 'methodhandleof' during codegen
+ /// (Originally from ..\FSComp.txt:1209)
+ static member ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen() = (3091, GetStringFunc("ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen",",,,") )
+ /// A reference to a provided type was missing a value for the static parameter '%s'. You may need to recompile one or more referenced assemblies.
+ /// (Originally from ..\FSComp.txt:1210)
+ static member etProvidedTypeReferenceMissingArgument(a0 : System.String) = (3092, GetStringFunc("etProvidedTypeReferenceMissingArgument",",,,%s,,,") a0)
+ /// A reference to a provided type had an invalid value '%s' for a static parameter. You may need to recompile one or more referenced assemblies.
+ /// (Originally from ..\FSComp.txt:1211)
+ static member etProvidedTypeReferenceInvalidText(a0 : System.String) = (3093, GetStringFunc("etProvidedTypeReferenceInvalidText",",,,%s,,,") a0)
+ /// '%s' is not used correctly. This is a custom operation in this query or computation expression.
+ /// (Originally from ..\FSComp.txt:1212)
+ static member tcCustomOperationNotUsedCorrectly(a0 : System.String) = (3095, GetStringFunc("tcCustomOperationNotUsedCorrectly",",,,%s,,,") a0)
+ /// '%s' is not used correctly. Usage: %s. This is a custom operation in this query or computation expression.
+ /// (Originally from ..\FSComp.txt:1213)
+ static member tcCustomOperationNotUsedCorrectly2(a0 : System.String, a1 : System.String) = (3095, GetStringFunc("tcCustomOperationNotUsedCorrectly2",",,,%s,,,%s,,,") a0 a1)
+ /// %s var in collection %s (outerKey = innerKey). Note that parentheses are required after '%s'
+ /// (Originally from ..\FSComp.txt:1214)
+ static member customOperationTextLikeJoin(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("customOperationTextLikeJoin",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// %s var in collection %s (outerKey = innerKey) into group. Note that parentheses are required after '%s'
+ /// (Originally from ..\FSComp.txt:1215)
+ static member customOperationTextLikeGroupJoin(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("customOperationTextLikeGroupJoin",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// %s var in collection
+ /// (Originally from ..\FSComp.txt:1216)
+ static member customOperationTextLikeZip(a0 : System.String) = (GetStringFunc("customOperationTextLikeZip",",,,%s,,,") a0)
+ /// '%s' must be followed by a variable name. Usage: %s.
+ /// (Originally from ..\FSComp.txt:1217)
+ static member tcBinaryOperatorRequiresVariable(a0 : System.String, a1 : System.String) = (3096, GetStringFunc("tcBinaryOperatorRequiresVariable",",,,%s,,,%s,,,") a0 a1)
+ /// Incorrect syntax for '%s'. Usage: %s.
+ /// (Originally from ..\FSComp.txt:1218)
+ static member tcOperatorIncorrectSyntax(a0 : System.String, a1 : System.String) = (3097, GetStringFunc("tcOperatorIncorrectSyntax",",,,%s,,,%s,,,") a0 a1)
+ /// '%s' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... %s ...
+ /// (Originally from ..\FSComp.txt:1219)
+ static member tcBinaryOperatorRequiresBody(a0 : System.String, a1 : System.String) = (3098, GetStringFunc("tcBinaryOperatorRequiresBody",",,,%s,,,%s,,,") a0 a1)
+ /// '%s' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected %d argument(s), but given %d.
+ /// (Originally from ..\FSComp.txt:1220)
+ static member tcCustomOperationHasIncorrectArgCount(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (3099, GetStringFunc("tcCustomOperationHasIncorrectArgCount",",,,%s,,,%d,,,%d,,,") a0 a1 a2)
+ /// Expected an expression after this point
+ /// (Originally from ..\FSComp.txt:1221)
+ static member parsExpectedExpressionAfterToken() = (3100, GetStringFunc("parsExpectedExpressionAfterToken",",,,") )
+ /// Expected a type after this point
+ /// (Originally from ..\FSComp.txt:1222)
+ static member parsExpectedTypeAfterToken() = (3101, GetStringFunc("parsExpectedTypeAfterToken",",,,") )
+ /// Unmatched '[<'. Expected closing '>]'
+ /// (Originally from ..\FSComp.txt:1223)
+ static member parsUnmatchedLBrackLess() = (3102, GetStringFunc("parsUnmatchedLBrackLess",",,,") )
+ /// Unexpected end of input in 'match' expression. Expected 'match with | -> | -> ...'.
+ /// (Originally from ..\FSComp.txt:1224)
+ static member parsUnexpectedEndOfFileMatch() = (3103, GetStringFunc("parsUnexpectedEndOfFileMatch",",,,") )
+ /// Unexpected end of input in 'try' expression. Expected 'try with ' or 'try finally '.
+ /// (Originally from ..\FSComp.txt:1225)
+ static member parsUnexpectedEndOfFileTry() = (3104, GetStringFunc("parsUnexpectedEndOfFileTry",",,,") )
+ /// Unexpected end of input in 'while' expression. Expected 'while do '.
+ /// (Originally from ..\FSComp.txt:1226)
+ static member parsUnexpectedEndOfFileWhile() = (3105, GetStringFunc("parsUnexpectedEndOfFileWhile",",,,") )
+ /// Unexpected end of input in 'for' expression. Expected 'for in do '.
+ /// (Originally from ..\FSComp.txt:1227)
+ static member parsUnexpectedEndOfFileFor() = (3106, GetStringFunc("parsUnexpectedEndOfFileFor",",,,") )
+ /// Unexpected end of input in 'match' or 'try' expression
+ /// (Originally from ..\FSComp.txt:1228)
+ static member parsUnexpectedEndOfFileWith() = (3107, GetStringFunc("parsUnexpectedEndOfFileWith",",,,") )
+ /// Unexpected end of input in 'then' branch of conditional expression. Expected 'if then ' or 'if then else '.
+ /// (Originally from ..\FSComp.txt:1229)
+ static member parsUnexpectedEndOfFileThen() = (3108, GetStringFunc("parsUnexpectedEndOfFileThen",",,,") )
+ /// Unexpected end of input in 'else' branch of conditional expression. Expected 'if then ' or 'if then else '.
+ /// (Originally from ..\FSComp.txt:1230)
+ static member parsUnexpectedEndOfFileElse() = (3109, GetStringFunc("parsUnexpectedEndOfFileElse",",,,") )
+ /// Unexpected end of input in body of lambda expression. Expected 'fun ... -> '.
+ /// (Originally from ..\FSComp.txt:1231)
+ static member parsUnexpectedEndOfFileFunBody() = (3110, GetStringFunc("parsUnexpectedEndOfFileFunBody",",,,") )
+ /// Unexpected end of input in type arguments
+ /// (Originally from ..\FSComp.txt:1232)
+ static member parsUnexpectedEndOfFileTypeArgs() = (3111, GetStringFunc("parsUnexpectedEndOfFileTypeArgs",",,,") )
+ /// Unexpected end of input in type signature
+ /// (Originally from ..\FSComp.txt:1233)
+ static member parsUnexpectedEndOfFileTypeSignature() = (3112, GetStringFunc("parsUnexpectedEndOfFileTypeSignature",",,,") )
+ /// Unexpected end of input in type definition
+ /// (Originally from ..\FSComp.txt:1234)
+ static member parsUnexpectedEndOfFileTypeDefinition() = (3113, GetStringFunc("parsUnexpectedEndOfFileTypeDefinition",",,,") )
+ /// Unexpected end of input in object members
+ /// (Originally from ..\FSComp.txt:1235)
+ static member parsUnexpectedEndOfFileObjectMembers() = (3114, GetStringFunc("parsUnexpectedEndOfFileObjectMembers",",,,") )
+ /// Unexpected end of input in value, function or member definition
+ /// (Originally from ..\FSComp.txt:1236)
+ static member parsUnexpectedEndOfFileDefinition() = (3115, GetStringFunc("parsUnexpectedEndOfFileDefinition",",,,") )
+ /// Unexpected end of input in expression
+ /// (Originally from ..\FSComp.txt:1237)
+ static member parsUnexpectedEndOfFileExpression() = (3116, GetStringFunc("parsUnexpectedEndOfFileExpression",",,,") )
+ /// Unexpected end of type. Expected a name after this point.
+ /// (Originally from ..\FSComp.txt:1238)
+ static member parsExpectedNameAfterToken() = (3117, GetStringFunc("parsExpectedNameAfterToken",",,,") )
+ /// Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword.
+ /// (Originally from ..\FSComp.txt:1239)
+ static member parsUnmatchedLet() = (3118, GetStringFunc("parsUnmatchedLet",",,,") )
+ /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword.
+ /// (Originally from ..\FSComp.txt:1240)
+ static member parsUnmatchedLetBang() = (3119, GetStringFunc("parsUnmatchedLetBang",",,,") )
+ /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword.
+ /// (Originally from ..\FSComp.txt:1241)
+ static member parsUnmatchedUseBang() = (3120, GetStringFunc("parsUnmatchedUseBang",",,,") )
+ /// Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword.
+ /// (Originally from ..\FSComp.txt:1242)
+ static member parsUnmatchedUse() = (3121, GetStringFunc("parsUnmatchedUse",",,,") )
+ /// Missing 'do' in 'while' expression. Expected 'while do '.
+ /// (Originally from ..\FSComp.txt:1243)
+ static member parsWhileDoExpected() = (3122, GetStringFunc("parsWhileDoExpected",",,,") )
+ /// Missing 'do' in 'for' expression. Expected 'for in do '.
+ /// (Originally from ..\FSComp.txt:1244)
+ static member parsForDoExpected() = (3123, GetStringFunc("parsForDoExpected",",,,") )
+ /// Invalid join relation in '%s'. Expected 'expr expr', where is =, =?, ?= or ?=?.
+ /// (Originally from ..\FSComp.txt:1245)
+ static member tcInvalidRelationInJoin(a0 : System.String) = (3125, GetStringFunc("tcInvalidRelationInJoin",",,,%s,,,") a0)
+ /// Calls
+ /// (Originally from ..\FSComp.txt:1246)
+ static member typeInfoCallsWord() = (GetStringFunc("typeInfoCallsWord",",,,") )
+ /// Invalid number of generic arguments to type '%s' in provided type. Expected '%d' arguments, given '%d'.
+ /// (Originally from ..\FSComp.txt:1247)
+ static member impInvalidNumberOfGenericArguments(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (3126, GetStringFunc("impInvalidNumberOfGenericArguments",",,,%s,,,%d,,,%d,,,") a0 a1 a2)
+ /// Invalid value '%s' for unit-of-measure parameter '%s'
+ /// (Originally from ..\FSComp.txt:1248)
+ static member impInvalidMeasureArgument1(a0 : System.String, a1 : System.String) = (3127, GetStringFunc("impInvalidMeasureArgument1",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid value unit-of-measure parameter '%s'
+ /// (Originally from ..\FSComp.txt:1249)
+ static member impInvalidMeasureArgument2(a0 : System.String) = (3127, GetStringFunc("impInvalidMeasureArgument2",",,,%s,,,") a0)
+ /// Property '%s' on provided type '%s' is neither readable nor writable as it has CanRead=false and CanWrite=false
+ /// (Originally from ..\FSComp.txt:1250)
+ static member etPropertyNeedsCanWriteOrCanRead(a0 : System.String, a1 : System.String) = (3128, GetStringFunc("etPropertyNeedsCanWriteOrCanRead",",,,%s,,,%s,,,") a0 a1)
+ /// A use of 'into' must be followed by the remainder of the computation
+ /// (Originally from ..\FSComp.txt:1251)
+ static member tcIntoNeedsRestOfQuery() = (3129, GetStringFunc("tcIntoNeedsRestOfQuery",",,,") )
+ /// The operator '%s' does not accept the use of 'into'
+ /// (Originally from ..\FSComp.txt:1252)
+ static member tcOperatorDoesntAcceptInto(a0 : System.String) = (3130, GetStringFunc("tcOperatorDoesntAcceptInto",",,,%s,,,") a0)
+ /// The definition of the custom operator '%s' does not use a valid combination of attribute flags
+ /// (Originally from ..\FSComp.txt:1253)
+ static member tcCustomOperationInvalid(a0 : System.String) = (3131, GetStringFunc("tcCustomOperationInvalid",",,,%s,,,") a0)
+ /// This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute.
+ /// (Originally from ..\FSComp.txt:1254)
+ static member tcThisTypeMayNotHaveACLIMutableAttribute() = (3132, GetStringFunc("tcThisTypeMayNotHaveACLIMutableAttribute",",,,") )
+ /// 'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+ /// (Originally from ..\FSComp.txt:1255)
+ static member tcAutoPropertyRequiresImplicitConstructionSequence() = (3133, GetStringFunc("tcAutoPropertyRequiresImplicitConstructionSequence",",,,") )
+ /// Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'.
+ /// (Originally from ..\FSComp.txt:1256)
+ static member parsMutableOnAutoPropertyShouldBeGetSet() = (3134, GetStringFunc("parsMutableOnAutoPropertyShouldBeGetSet",",,,") )
+ /// To indicate that this property can be set, use 'member val PropertyName = expr with get,set'.
+ /// (Originally from ..\FSComp.txt:1257)
+ static member parsMutableOnAutoPropertyShouldBeGetSetNotJustSet() = (3135, GetStringFunc("parsMutableOnAutoPropertyShouldBeGetSetNotJustSet",",,,") )
+ /// Type '%s' is illegal because in byref, T cannot contain byref types.
+ /// (Originally from ..\FSComp.txt:1258)
+ static member chkNoByrefsOfByrefs(a0 : System.String) = (3136, GetStringFunc("chkNoByrefsOfByrefs",",,,%s,,,") a0)
+ /// F# supports array ranks between 1 and 32. The value %d is not allowed.
+ /// (Originally from ..\FSComp.txt:1259)
+ static member tastopsMaxArrayThirtyTwo(a0 : System.Int32) = (3138, GetStringFunc("tastopsMaxArrayThirtyTwo",",,,%d,,,") a0)
+ /// In queries, use the form 'for x in n .. m do ...' for ranging over integers
+ /// (Originally from ..\FSComp.txt:1260)
+ static member tcNoIntegerForLoopInQuery() = (3139, GetStringFunc("tcNoIntegerForLoopInQuery",",,,") )
+ /// 'while' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1261)
+ static member tcNoWhileInQuery() = (3140, GetStringFunc("tcNoWhileInQuery",",,,") )
+ /// 'try/finally' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1262)
+ static member tcNoTryFinallyInQuery() = (3141, GetStringFunc("tcNoTryFinallyInQuery",",,,") )
+ /// 'use' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1263)
+ static member tcUseMayNotBeUsedInQueries() = (3142, GetStringFunc("tcUseMayNotBeUsedInQueries",",,,") )
+ /// 'let!', 'use!' and 'do!' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1264)
+ static member tcBindMayNotBeUsedInQueries() = (3143, GetStringFunc("tcBindMayNotBeUsedInQueries",",,,") )
+ /// 'return' and 'return!' may not be used in queries
+ /// (Originally from ..\FSComp.txt:1265)
+ static member tcReturnMayNotBeUsedInQueries() = (3144, GetStringFunc("tcReturnMayNotBeUsedInQueries",",,,") )
+ /// This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type.
+ /// (Originally from ..\FSComp.txt:1266)
+ static member tcUnrecognizedQueryOperator() = (3145, GetStringFunc("tcUnrecognizedQueryOperator",",,,") )
+ /// 'try/with' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1267)
+ static member tcTryWithMayNotBeUsedInQueries() = (3146, GetStringFunc("tcTryWithMayNotBeUsedInQueries",",,,") )
+ /// This 'let' definition may not be used in a query. Only simple value definitions may be used in queries.
+ /// (Originally from ..\FSComp.txt:1268)
+ static member tcNonSimpleLetBindingInQuery() = (3147, GetStringFunc("tcNonSimpleLetBindingInQuery",",,,") )
+ /// Too many static parameters. Expected at most %d parameters, but got %d unnamed and %d named parameters.
+ /// (Originally from ..\FSComp.txt:1269)
+ static member etTooManyStaticParameters(a0 : System.Int32, a1 : System.Int32, a2 : System.Int32) = (3148, GetStringFunc("etTooManyStaticParameters",",,,%d,,,%d,,,%d,,,") a0 a1 a2)
+ /// Invalid provided literal value '%s'
+ /// (Originally from ..\FSComp.txt:1270)
+ static member infosInvalidProvidedLiteralValue(a0 : System.String) = (3149, GetStringFunc("infosInvalidProvidedLiteralValue",",,,%s,,,") a0)
+ /// The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead.
+ /// (Originally from ..\FSComp.txt:1271)
+ static member invalidPlatformTarget() = (3150, GetStringFunc("invalidPlatformTarget",",,,") )
+ /// This member, function or value declaration may not be declared 'inline'
+ /// (Originally from ..\FSComp.txt:1272)
+ static member tcThisValueMayNotBeInlined() = (3151, GetStringFunc("tcThisValueMayNotBeInlined",",,,") )
+ /// The provider '%s' returned a non-generated type '%s' in the context of a set of generated types. Consider adjusting the type provider to only return generated types.
+ /// (Originally from ..\FSComp.txt:1273)
+ static member etErasedTypeUsedInGeneration(a0 : System.String, a1 : System.String) = (3152, GetStringFunc("etErasedTypeUsedInGeneration",",,,%s,,,%s,,,") a0 a1)
+ /// Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)'
+ /// (Originally from ..\FSComp.txt:1274)
+ static member tcUnrecognizedQueryBinaryOperator() = (3153, GetStringFunc("tcUnrecognizedQueryBinaryOperator",",,,") )
+ /// A quotation may not involve an assignment to or taking the address of a captured local variable
+ /// (Originally from ..\FSComp.txt:1275)
+ static member crefNoSetOfHole() = (3155, GetStringFunc("crefNoSetOfHole",",,,") )
+ /// + 1 overload
+ /// (Originally from ..\FSComp.txt:1276)
+ static member nicePrintOtherOverloads1() = (GetStringFunc("nicePrintOtherOverloads1",",,,") )
+ /// + %d overloads
+ /// (Originally from ..\FSComp.txt:1277)
+ static member nicePrintOtherOverloadsN(a0 : System.Int32) = (GetStringFunc("nicePrintOtherOverloadsN",",,,%d,,,") a0)
+ /// Erased to
+ /// (Originally from ..\FSComp.txt:1278)
+ static member erasedTo() = (GetStringFunc("erasedTo",",,,") )
+ /// Unexpected token '%s' or incomplete expression
+ /// (Originally from ..\FSComp.txt:1279)
+ static member parsUnfinishedExpression(a0 : System.String) = (3156, GetStringFunc("parsUnfinishedExpression",",,,%s,,,") a0)
+ /// Cannot find code target for this attribute, possibly because the code after the attribute is incomplete.
+ /// (Originally from ..\FSComp.txt:1280)
+ static member parsAttributeOnIncompleteCode() = (3158, GetStringFunc("parsAttributeOnIncompleteCode",",,,") )
+ /// Type name cannot be empty.
+ /// (Originally from ..\FSComp.txt:1281)
+ static member parsTypeNameCannotBeEmpty() = (3159, GetStringFunc("parsTypeNameCannotBeEmpty",",,,") )
+ /// Problem reading assembly '%s': %s
+ /// (Originally from ..\FSComp.txt:1282)
+ static member buildProblemReadingAssembly(a0 : System.String, a1 : System.String) = (3160, GetStringFunc("buildProblemReadingAssembly",",,,%s,,,%s,,,") a0 a1)
+ /// Invalid provided field. Provided fields of erased provided types must be literals.
+ /// (Originally from ..\FSComp.txt:1283)
+ static member tcTPFieldMustBeLiteral() = (3161, GetStringFunc("tcTPFieldMustBeLiteral",",,,") )
+ /// (loading description...)
+ /// (Originally from ..\FSComp.txt:1284)
+ static member loadingDescription() = (GetStringFunc("loadingDescription",",,,") )
+ /// (description unavailable...)
+ /// (Originally from ..\FSComp.txt:1285)
+ static member descriptionUnavailable() = (GetStringFunc("descriptionUnavailable",",,,") )
+ /// A type variable has been constrained by multiple different class types. A type variable may only have one class constraint.
+ /// (Originally from ..\FSComp.txt:1286)
+ static member chkTyparMultipleClassConstraints() = (3162, GetStringFunc("chkTyparMultipleClassConstraints",",,,") )
+ /// 'match' expressions may not be used in queries
+ /// (Originally from ..\FSComp.txt:1287)
+ static member tcMatchMayNotBeUsedWithQuery() = (3163, GetStringFunc("tcMatchMayNotBeUsedWithQuery",",,,") )
+ /// Infix operator member '%s' has %d initial argument(s). Expected a tuple of 3 arguments
+ /// (Originally from ..\FSComp.txt:1288)
+ static member memberOperatorDefinitionWithNonTripleArgument(a0 : System.String, a1 : System.Int32) = (3164, GetStringFunc("memberOperatorDefinitionWithNonTripleArgument",",,,%s,,,%d,,,") a0 a1)
+ /// The operator '%s' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+ /// (Originally from ..\FSComp.txt:1289)
+ static member cannotResolveNullableOperators(a0 : System.String) = (3165, GetStringFunc("cannotResolveNullableOperators",",,,%s,,,") a0)
+ /// '%s' must be followed by 'in'. Usage: %s.
+ /// (Originally from ..\FSComp.txt:1290)
+ static member tcOperatorRequiresIn(a0 : System.String, a1 : System.String) = (3167, GetStringFunc("tcOperatorRequiresIn",",,,%s,,,%s,,,") a0 a1)
+ /// Neither 'member val' nor 'override val' definitions are permitted in object expressions.
+ /// (Originally from ..\FSComp.txt:1291)
+ static member parsIllegalMemberVarInObjectImplementation() = (3168, GetStringFunc("parsIllegalMemberVarInObjectImplementation",",,,") )
+ /// Copy-and-update record expressions must include at least one field.
+ /// (Originally from ..\FSComp.txt:1292)
+ static member tcEmptyCopyAndUpdateRecordInvalid() = (3169, GetStringFunc("tcEmptyCopyAndUpdateRecordInvalid",",,,") )
+ /// '_' cannot be used as field name
+ /// (Originally from ..\FSComp.txt:1293)
+ static member parsUnderscoreInvalidFieldName() = (3170, GetStringFunc("parsUnderscoreInvalidFieldName",",,,") )
+ /// The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'.
+ /// (Originally from ..\FSComp.txt:1294)
+ static member tcGeneratedTypesShouldBeInternalOrPrivate() = (3171, GetStringFunc("tcGeneratedTypesShouldBeInternalOrPrivate",",,,") )
+ /// A property's getter and setter must have the same type. Property '%s' has getter of type '%s' but setter of type '%s'.
+ /// (Originally from ..\FSComp.txt:1295)
+ static member chkGetterAndSetterHaveSamePropertyType(a0 : System.String, a1 : System.String, a2 : System.String) = (3172, GetStringFunc("chkGetterAndSetterHaveSamePropertyType",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// Array method '%s' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module.
+ /// (Originally from ..\FSComp.txt:1296)
+ static member tcRuntimeSuppliedMethodCannotBeUsedInUserCode(a0 : System.String) = (3173, GetStringFunc("tcRuntimeSuppliedMethodCannotBeUsedInUserCode",",,,%s,,,") a0)
+ /// Union case/exception '%s' does not have field named '%s'.
+ /// (Originally from ..\FSComp.txt:1297)
+ static member tcUnionCaseConstructorDoesNotHaveFieldWithGivenName(a0 : System.String, a1 : System.String) = (3174, GetStringFunc("tcUnionCaseConstructorDoesNotHaveFieldWithGivenName",",,,%s,,,%s,,,") a0 a1)
+ /// Union case/exception field '%s' cannot be used more than once.
+ /// (Originally from ..\FSComp.txt:1298)
+ static member tcUnionCaseFieldCannotBeUsedMoreThanOnce(a0 : System.String) = (3175, GetStringFunc("tcUnionCaseFieldCannotBeUsedMoreThanOnce",",,,%s,,,") a0)
+ /// Named field '%s' is used more than once.
+ /// (Originally from ..\FSComp.txt:1299)
+ static member tcFieldNameIsUsedModeThanOnce(a0 : System.String) = (3176, GetStringFunc("tcFieldNameIsUsedModeThanOnce",",,,%s,,,") a0)
+ /// Named field '%s' conflicts with autogenerated name for anonymous field.
+ /// (Originally from ..\FSComp.txt:1300)
+ static member tcFieldNameConflictsWithGeneratedNameForAnonymousField(a0 : System.String) = (3176, GetStringFunc("tcFieldNameConflictsWithGeneratedNameForAnonymousField",",,,%s,,,") a0)
+ /// This literal expression or attribute argument results in an arithmetic overflow.
+ /// (Originally from ..\FSComp.txt:1301)
+ static member tastConstantExpressionOverflow() = (3177, GetStringFunc("tastConstantExpressionOverflow",",,,") )
+ /// This is not valid literal expression. The [] attribute will be ignored.
+ /// (Originally from ..\FSComp.txt:1302)
+ static member tcIllegalStructTypeForConstantExpression() = (3178, GetStringFunc("tcIllegalStructTypeForConstantExpression",",,,") )
+ /// System.Runtime.InteropServices assembly is required to use UnknownWrapper\DispatchWrapper classes.
+ /// (Originally from ..\FSComp.txt:1303)
+ static member fscSystemRuntimeInteropServicesIsRequired() = (3179, GetStringFunc("fscSystemRuntimeInteropServicesIsRequired",",,,") )
+ /// The mutable local '%s' is implicitly allocated as a reference cell because it has been captured by a closure. This warning is for informational purposes only to indicate where implicit allocations are performed.
+ /// (Originally from ..\FSComp.txt:1304)
+ static member abImplicitHeapAllocation(a0 : System.String) = (3180, GetStringFunc("abImplicitHeapAllocation",",,,%s,,,") a0)
+ /// A type provider implemented GetStaticParametersForMethod, but ApplyStaticArgumentsForMethod was not implemented or invalid
+ /// (Originally from ..\FSComp.txt:1305)
+ static member estApplyStaticArgumentsForMethodNotImplemented() = (GetStringFunc("estApplyStaticArgumentsForMethodNotImplemented",",,,") )
+ /// An error occured applying the static arguments to a provided method
+ /// (Originally from ..\FSComp.txt:1306)
+ static member etErrorApplyingStaticArgumentsToMethod() = (3181, GetStringFunc("etErrorApplyingStaticArgumentsToMethod",",,,") )
+ /// Unexpected character '%s' in preprocessor expression
+ /// (Originally from ..\FSComp.txt:1307)
+ static member pplexUnexpectedChar(a0 : System.String) = (3182, GetStringFunc("pplexUnexpectedChar",",,,%s,,,") a0)
+ /// Unexpected token '%s' in preprocessor expression
+ /// (Originally from ..\FSComp.txt:1308)
+ static member ppparsUnexpectedToken(a0 : System.String) = (3183, GetStringFunc("ppparsUnexpectedToken",",,,%s,,,") a0)
+ /// Incomplete preprocessor expression
+ /// (Originally from ..\FSComp.txt:1309)
+ static member ppparsIncompleteExpression() = (3184, GetStringFunc("ppparsIncompleteExpression",",,,") )
+ /// Missing token '%s' in preprocessor expression
+ /// (Originally from ..\FSComp.txt:1310)
+ static member ppparsMissingToken(a0 : System.String) = (3185, GetStringFunc("ppparsMissingToken",",,,%s,,,") a0)
+ /// An error occurred while reading the F# metadata node at position %d in table '%s' of assembly '%s'. The node had no matching declaration. Please report this warning. You may need to recompile the F# assembly you are using.
+ /// (Originally from ..\FSComp.txt:1311)
+ static member pickleMissingDefinition(a0 : System.Int32, a1 : System.String, a2 : System.String) = (3186, GetStringFunc("pickleMissingDefinition",",,,%d,,,%s,,,%s,,,") a0 a1 a2)
+ /// Type inference caused the type variable %s to escape its scope. Consider adding an explicit type parameter declaration or adjusting your code to be less generic.
+ /// (Originally from ..\FSComp.txt:1312)
+ static member checkNotSufficientlyGenericBecauseOfScope(a0 : System.String) = (3187, GetStringFunc("checkNotSufficientlyGenericBecauseOfScope",",,,%s,,,") a0)
+ /// Type inference caused an inference type variable to escape its scope. Consider adding type annotations to make your code less generic.
+ /// (Originally from ..\FSComp.txt:1313)
+ static member checkNotSufficientlyGenericBecauseOfScopeAnon() = (3188, GetStringFunc("checkNotSufficientlyGenericBecauseOfScopeAnon",",,,") )
+ /// Redundant arguments are being ignored in function '%s'. Expected %d but got %d arguments.
+ /// (Originally from ..\FSComp.txt:1314)
+ static member checkRaiseFamilyFunctionArgumentCount(a0 : System.String, a1 : System.Int32, a2 : System.Int32) = (3189, GetStringFunc("checkRaiseFamilyFunctionArgumentCount",",,,%s,,,%d,,,%d,,,") a0 a1 a2)
+ /// Lowercase literal '%s' is being shadowed by a new pattern with the same name. Only uppercase and module-prefixed literals can be used as named patterns.
+ /// (Originally from ..\FSComp.txt:1315)
+ static member checkLowercaseLiteralBindingInPattern(a0 : System.String) = (3190, GetStringFunc("checkLowercaseLiteralBindingInPattern",",,,%s,,,") a0)
+ /// This literal pattern does not take arguments
+ /// (Originally from ..\FSComp.txt:1316)
+ static member tcLiteralDoesNotTakeArguments() = (3191, GetStringFunc("tcLiteralDoesNotTakeArguments",",,,") )
+ /// Constructors are not permitted as extension members - they must be defined as part of the original definition of the type
+ /// (Originally from ..\FSComp.txt:1317)
+ static member tcConstructorsIllegalInAugmentation() = (3192, GetStringFunc("tcConstructorsIllegalInAugmentation",",,,") )
+ /// Invalid response file '%s' ( '%s' )
+ /// (Originally from ..\FSComp.txt:1318)
+ static member optsInvalidResponseFile(a0 : System.String, a1 : System.String) = (3193, GetStringFunc("optsInvalidResponseFile",",,,%s,,,%s,,,") a0 a1)
+ /// Response file '%s' not found in '%s'
+ /// (Originally from ..\FSComp.txt:1319)
+ static member optsResponseFileNotFound(a0 : System.String, a1 : System.String) = (3194, GetStringFunc("optsResponseFileNotFound",",,,%s,,,%s,,,") a0 a1)
+ /// Response file name '%s' is empty, contains invalid characters, has a drive specification without an absolute path, or is too long
+ /// (Originally from ..\FSComp.txt:1320)
+ static member optsResponseFileNameInvalid(a0 : System.String) = (3195, GetStringFunc("optsResponseFileNameInvalid",",,,%s,,,") a0)
+ /// Cannot find FSharp.Core.dll in compiler's directory
+ /// (Originally from ..\FSComp.txt:1321)
+ static member fsharpCoreNotFoundToBeCopied() = (3196, GetStringFunc("fsharpCoreNotFoundToBeCopied",",,,") )
+ /// One tuple type is a struct tuple, the other is a reference tuple
+ /// (Originally from ..\FSComp.txt:1322)
+ static member tcTupleStructMismatch() = (GetStringFunc("tcTupleStructMismatch",",,,") )
+ /// This provided method requires static parameters
+ /// (Originally from ..\FSComp.txt:1323)
+ static member etMissingStaticArgumentsToMethod() = (3197, GetStringFunc("etMissingStaticArgumentsToMethod",",,,") )
+ /// The conversion from %s to %s is a compile-time safe upcast, not a downcast. Consider using 'upcast' instead of 'downcast'.
+ /// (Originally from ..\FSComp.txt:1324)
+ static member considerUpcast(a0 : System.String, a1 : System.String) = (3198, GetStringFunc("considerUpcast",",,,%s,,,%s,,,") a0 a1)
+ /// The conversion from %s to %s is a compile-time safe upcast, not a downcast. Consider using the :> (upcast) operator instead of the :?> (downcast) operator.
+ /// (Originally from ..\FSComp.txt:1325)
+ static member considerUpcastOperator(a0 : System.String, a1 : System.String) = (3198, GetStringFunc("considerUpcastOperator",",,,%s,,,%s,,,") a0 a1)
+ /// The 'rec' on this module is implied by an outer 'rec' declaration and is being ignored
+ /// (Originally from ..\FSComp.txt:1326)
+ static member tcRecImplied() = (3199, GetStringFunc("tcRecImplied",",,,") )
+ /// In a recursive declaration group, 'open' declarations must come first in each module
+ /// (Originally from ..\FSComp.txt:1327)
+ static member tcOpenFirstInMutRec() = (3200, GetStringFunc("tcOpenFirstInMutRec",",,,") )
+ /// In a recursive declaration group, module abbreviations must come after all 'open' declarations and before other declarations
+ /// (Originally from ..\FSComp.txt:1328)
+ static member tcModuleAbbrevFirstInMutRec() = (3201, GetStringFunc("tcModuleAbbrevFirstInMutRec",",,,") )
+ /// This declaration is not supported in recursive declaration groups
+ /// (Originally from ..\FSComp.txt:1329)
+ static member tcUnsupportedMutRecDecl() = (3202, GetStringFunc("tcUnsupportedMutRecDecl",",,,") )
+ /// Invalid use of 'rec' keyword
+ /// (Originally from ..\FSComp.txt:1330)
+ static member parsInvalidUseOfRec() = (3203, GetStringFunc("parsInvalidUseOfRec",",,,") )
+ /// If a union type has more than one case and is a struct, then all fields within the union type must be given unique names.
+ /// (Originally from ..\FSComp.txt:1331)
+ static member tcStructUnionMultiCaseDistinctFields() = (3204, GetStringFunc("tcStructUnionMultiCaseDistinctFields",",,,") )
+ /// The CallerMemberNameAttribute applied to parameter '%s' will have no effect. It is overridden by the CallerFilePathAttribute.
+ /// (Originally from ..\FSComp.txt:1332)
+ static member CallerMemberNameIsOverriden(a0 : System.String) = (3206, GetStringFunc("CallerMemberNameIsOverriden",",,,%s,,,") a0)
+ /// Invalid use of 'fixed'. 'fixed' may only be used in a declaration of the form 'use x = fixed expr' where the expression is an array, the address of a field, the address of an array element or a string'
+ /// (Originally from ..\FSComp.txt:1333)
+ static member tcFixedNotAllowed() = (3207, GetStringFunc("tcFixedNotAllowed",",,,") )
+ /// Could not find method System.Runtime.CompilerServices.OffsetToStringData in references when building 'fixed' expression.
+ /// (Originally from ..\FSComp.txt:1334)
+ static member tcCouldNotFindOffsetToStringData() = (3208, GetStringFunc("tcCouldNotFindOffsetToStringData",",,,") )
+ /// The address of the variable '%s' cannot be used at this point. A method or function may not return the address of this local value.
+ /// (Originally from ..\FSComp.txt:1335)
+ static member chkNoByrefReturnOfLocal(a0 : System.String) = (3209, GetStringFunc("chkNoByrefReturnOfLocal",",,,%s,,,") a0)
+ /// %s is an active pattern and cannot be treated as a discriminated union case with named fields.
+ /// (Originally from ..\FSComp.txt:1336)
+ static member tcNamedActivePattern(a0 : System.String) = (3210, GetStringFunc("tcNamedActivePattern",",,,%s,,,") a0)
+ /// The default value does not have the same type as the argument. The DefaultParameterValue attribute and any Optional attribute will be ignored. Note: 'null' needs to be annotated with the correct type, e.g. 'DefaultParameterValue(null:obj)'.
+ /// (Originally from ..\FSComp.txt:1337)
+ static member DefaultParameterValueNotAppropriateForArgument() = (3211, GetStringFunc("DefaultParameterValueNotAppropriateForArgument",",,,") )
+ /// The system type '%s' was required but no referenced system DLL contained this type
+ /// (Originally from ..\FSComp.txt:1338)
+ static member tcGlobalsSystemTypeNotFound(a0 : System.String) = (GetStringFunc("tcGlobalsSystemTypeNotFound",",,,%s,,,") a0)
+ /// The member '%s' matches multiple overloads of the same method.\nPlease restrict it to one of the following:%s.
+ /// (Originally from ..\FSComp.txt:1339)
+ static member typrelMemberHasMultiplePossibleDispatchSlots(a0 : System.String, a1 : System.String) = (3213, GetStringFunc("typrelMemberHasMultiplePossibleDispatchSlots",",,,%s,,,%s,,,") a0 a1)
+ /// Method or object constructor '%s' is not static
+ /// (Originally from ..\FSComp.txt:1340)
+ static member methodIsNotStatic(a0 : System.String) = (3214, GetStringFunc("methodIsNotStatic",",,,%s,,,") a0)
+ /// Unexpected symbol '=' in expression. Did you intend to use 'for x in y .. z do' instead?
+ /// (Originally from ..\FSComp.txt:1341)
+ static member parsUnexpectedSymbolEqualsInsteadOfIn() = (3215, GetStringFunc("parsUnexpectedSymbolEqualsInsteadOfIn",",,,") )
+ /// Indicates a method that either has no implementation in the type in which it is declared or that is virtual and has a default implementation.
+ /// (Originally from ..\FSComp.txt:1342)
+ static member keywordDescriptionAbstract() = (GetStringFunc("keywordDescriptionAbstract",",,,") )
+ /// Used in mutually recursive bindings, in property declarations, and with multiple constraints on generic parameters.
+ /// (Originally from ..\FSComp.txt:1343)
+ static member keyworkDescriptionAnd() = (GetStringFunc("keyworkDescriptionAnd",",,,") )
+ /// Used to give the current class object an object name. Also used to give a name to a whole pattern within a pattern match.
+ /// (Originally from ..\FSComp.txt:1344)
+ static member keywordDescriptionAs() = (GetStringFunc("keywordDescriptionAs",",,,") )
+ /// Used to verify code during debugging.
+ /// (Originally from ..\FSComp.txt:1345)
+ static member keywordDescriptionAssert() = (GetStringFunc("keywordDescriptionAssert",",,,") )
+ /// Used as the name of the base class object.
+ /// (Originally from ..\FSComp.txt:1346)
+ static member keywordDescriptionBase() = (GetStringFunc("keywordDescriptionBase",",,,") )
+ /// In verbose syntax, indicates the start of a code block.
+ /// (Originally from ..\FSComp.txt:1347)
+ static member keywordDescriptionBegin() = (GetStringFunc("keywordDescriptionBegin",",,,") )
+ /// In verbose syntax, indicates the start of a class definition.
+ /// (Originally from ..\FSComp.txt:1348)
+ static member keywordDescriptionClass() = (GetStringFunc("keywordDescriptionClass",",,,") )
+ /// Indicates an implementation of an abstract method; used together with an abstract method declaration to create a virtual method.
+ /// (Originally from ..\FSComp.txt:1349)
+ static member keywordDescriptionDefault() = (GetStringFunc("keywordDescriptionDefault",",,,") )
+ /// Used to declare a delegate.
+ /// (Originally from ..\FSComp.txt:1350)
+ static member keywordDescriptionDelegate() = (GetStringFunc("keywordDescriptionDelegate",",,,") )
+ /// Used in looping constructs or to execute imperative code.
+ /// (Originally from ..\FSComp.txt:1351)
+ static member keywordDescriptionDo() = (GetStringFunc("keywordDescriptionDo",",,,") )
+ /// In verbose syntax, indicates the end of a block of code in a looping expression.
+ /// (Originally from ..\FSComp.txt:1352)
+ static member keywordDescriptionDone() = (GetStringFunc("keywordDescriptionDone",",,,") )
+ /// Used to convert to a type that is lower in the inheritance chain.
+ /// (Originally from ..\FSComp.txt:1353)
+ static member keywordDescriptionDowncast() = (GetStringFunc("keywordDescriptionDowncast",",,,") )
+ /// In a for expression, used when counting in reverse.
+ /// (Originally from ..\FSComp.txt:1354)
+ static member keywordDescriptionDownto() = (GetStringFunc("keywordDescriptionDownto",",,,") )
+ /// Used in conditional branching. A short form of else if.
+ /// (Originally from ..\FSComp.txt:1355)
+ static member keywordDescriptionElif() = (GetStringFunc("keywordDescriptionElif",",,,") )
+ /// Used in conditional branching.
+ /// (Originally from ..\FSComp.txt:1356)
+ static member keywordDescriptionElse() = (GetStringFunc("keywordDescriptionElse",",,,") )
+ /// In type definitions and type extensions, indicates the end of a section of member definitions. In verbose syntax, used to specify the end of a code block that starts with the begin keyword.
+ /// (Originally from ..\FSComp.txt:1357)
+ static member keywordDescriptionEnd() = (GetStringFunc("keywordDescriptionEnd",",,,") )
+ /// Used to declare an exception type.
+ /// (Originally from ..\FSComp.txt:1358)
+ static member keywordDescriptionException() = (GetStringFunc("keywordDescriptionException",",,,") )
+ /// Indicates that a declared program element is defined in another binary or assembly.
+ /// (Originally from ..\FSComp.txt:1359)
+ static member keywordDescriptionExtern() = (GetStringFunc("keywordDescriptionExtern",",,,") )
+ /// Used as a Boolean literal.
+ /// (Originally from ..\FSComp.txt:1360)
+ static member keywordDescriptionTrueFalse() = (GetStringFunc("keywordDescriptionTrueFalse",",,,") )
+ /// Used together with try to introduce a block of code that executes regardless of whether an exception occurs.
+ /// (Originally from ..\FSComp.txt:1361)
+ static member keywordDescriptionFinally() = (GetStringFunc("keywordDescriptionFinally",",,,") )
+ /// Used in looping constructs.
+ /// (Originally from ..\FSComp.txt:1362)
+ static member keywordDescriptionFor() = (GetStringFunc("keywordDescriptionFor",",,,") )
+ /// Used in lambda expressions, also known as anonymous functions.
+ /// (Originally from ..\FSComp.txt:1363)
+ static member keywordDescriptionFun() = (GetStringFunc("keywordDescriptionFun",",,,") )
+ /// Used as a shorter alternative to the fun keyword and a match expression in a lambda expression that has pattern matching on a single argument.
+ /// (Originally from ..\FSComp.txt:1364)
+ static member keywordDescriptionFunction() = (GetStringFunc("keywordDescriptionFunction",",,,") )
+ /// Used to reference the top-level .NET namespace.
+ /// (Originally from ..\FSComp.txt:1365)
+ static member keywordDescriptionGlobal() = (GetStringFunc("keywordDescriptionGlobal",",,,") )
+ /// Used in conditional branching constructs.
+ /// (Originally from ..\FSComp.txt:1366)
+ static member keywordDescriptionIf() = (GetStringFunc("keywordDescriptionIf",",,,") )
+ /// Used for sequence expressions and, in verbose syntax, to separate expressions from bindings.
+ /// (Originally from ..\FSComp.txt:1367)
+ static member keywordDescriptionIn() = (GetStringFunc("keywordDescriptionIn",",,,") )
+ /// Used to specify a base class or base interface.
+ /// (Originally from ..\FSComp.txt:1368)
+ static member keywordDescriptionInherit() = (GetStringFunc("keywordDescriptionInherit",",,,") )
+ /// Used to indicate a function that should be integrated directly into the caller's code.
+ /// (Originally from ..\FSComp.txt:1369)
+ static member keywordDescriptionInline() = (GetStringFunc("keywordDescriptionInline",",,,") )
+ /// Used to declare and implement interfaces.
+ /// (Originally from ..\FSComp.txt:1370)
+ static member keywordDescriptionInterface() = (GetStringFunc("keywordDescriptionInterface",",,,") )
+ /// Used to specify that a member is visible inside an assembly but not outside it.
+ /// (Originally from ..\FSComp.txt:1371)
+ static member keywordDescriptionInternal() = (GetStringFunc("keywordDescriptionInternal",",,,") )
+ /// Used to specify a computation that is to be performed only when a result is needed.
+ /// (Originally from ..\FSComp.txt:1372)
+ static member keywordDescriptionLazy() = (GetStringFunc("keywordDescriptionLazy",",,,") )
+ /// Used to associate, or bind, a name to a value or function.
+ /// (Originally from ..\FSComp.txt:1373)
+ static member keywordDescriptionLet() = (GetStringFunc("keywordDescriptionLet",",,,") )
+ /// Used in asynchronous workflows to bind a name to the result of an asynchronous computation, or, in other computation expressions, used to bind a name to a result, which is of the computation type.
+ /// (Originally from ..\FSComp.txt:1374)
+ static member keywordDescriptionLetBang() = (GetStringFunc("keywordDescriptionLetBang",",,,") )
+ /// Used to branch by comparing a value to a pattern.
+ /// (Originally from ..\FSComp.txt:1375)
+ static member keywordDescriptionMatch() = (GetStringFunc("keywordDescriptionMatch",",,,") )
+ /// Used to declare a property or method in an object type.
+ /// (Originally from ..\FSComp.txt:1376)
+ static member keywordDescriptionMember() = (GetStringFunc("keywordDescriptionMember",",,,") )
+ /// Used to associate a name with a group of related types, values, and functions, to logically separate it from other code.
+ /// (Originally from ..\FSComp.txt:1377)
+ static member keywordDescriptionModule() = (GetStringFunc("keywordDescriptionModule",",,,") )
+ /// Used to declare a variable, that is, a value that can be changed.
+ /// (Originally from ..\FSComp.txt:1378)
+ static member keywordDescriptionMutable() = (GetStringFunc("keywordDescriptionMutable",",,,") )
+ /// Used to associate a name with a group of related types and modules, to logically separate it from other code.
+ /// (Originally from ..\FSComp.txt:1379)
+ static member keywordDescriptionNamespace() = (GetStringFunc("keywordDescriptionNamespace",",,,") )
+ /// Used to declare, define, or invoke a constructor that creates or that can create an object. Also used in generic parameter constraints to indicate that a type must have a certain constructor.
+ /// (Originally from ..\FSComp.txt:1380)
+ static member keywordDescriptionNew() = (GetStringFunc("keywordDescriptionNew",",,,") )
+ /// Not actually a keyword. However, not struct in combination is used as a generic parameter constraint.
+ /// (Originally from ..\FSComp.txt:1381)
+ static member keywordDescriptionNot() = (GetStringFunc("keywordDescriptionNot",",,,") )
+ /// Indicates the absence of an object. Also used in generic parameter constraints.
+ /// (Originally from ..\FSComp.txt:1382)
+ static member keywordDescriptionNull() = (GetStringFunc("keywordDescriptionNull",",,,") )
+ /// Used in discriminated unions to indicate the type of categories of values, and in delegate and exception declarations.
+ /// (Originally from ..\FSComp.txt:1383)
+ static member keywordDescriptionOf() = (GetStringFunc("keywordDescriptionOf",",,,") )
+ /// Used to make the contents of a namespace or module available without qualification.
+ /// (Originally from ..\FSComp.txt:1384)
+ static member keywordDescriptionOpen() = (GetStringFunc("keywordDescriptionOpen",",,,") )
+ /// Used with Boolean conditions as a Boolean or operator. Equivalent to ||. Also used in member constraints.
+ /// (Originally from ..\FSComp.txt:1385)
+ static member keywordDescriptionOr() = (GetStringFunc("keywordDescriptionOr",",,,") )
+ /// Used to implement a version of an abstract or virtual method that differs from the base version.
+ /// (Originally from ..\FSComp.txt:1386)
+ static member keywordDescriptionOverride() = (GetStringFunc("keywordDescriptionOverride",",,,") )
+ /// Restricts access to a member to code in the same type or module.
+ /// (Originally from ..\FSComp.txt:1387)
+ static member keywordDescriptionPrivate() = (GetStringFunc("keywordDescriptionPrivate",",,,") )
+ /// Allows access to a member from outside the type.
+ /// (Originally from ..\FSComp.txt:1388)
+ static member keywordDescriptionPublic() = (GetStringFunc("keywordDescriptionPublic",",,,") )
+ /// Used to indicate that a function is recursive.
+ /// (Originally from ..\FSComp.txt:1389)
+ static member keywordDescriptionRec() = (GetStringFunc("keywordDescriptionRec",",,,") )
+ /// Used to indicate a value to provide as the result of a computation expression.
+ /// (Originally from ..\FSComp.txt:1390)
+ static member keywordDescriptionReturn() = (GetStringFunc("keywordDescriptionReturn",",,,") )
+ /// Used to indicate a computation expression that, when evaluated, provides the result of the containing computation expression.
+ /// (Originally from ..\FSComp.txt:1391)
+ static member keywordDescriptionReturnBang() = (GetStringFunc("keywordDescriptionReturnBang",",,,") )
+ /// Used in query expressions to specify what fields or columns to extract. Note that this is a contextual keyword, which means that it is not actually a reserved word and it only acts like a keyword in appropriate context.
+ /// (Originally from ..\FSComp.txt:1392)
+ static member keywordDescriptionSelect() = (GetStringFunc("keywordDescriptionSelect",",,,") )
+ /// Used to indicate a method or property that can be called without an instance of a type, or a value member that is shared among all instances of a type.
+ /// (Originally from ..\FSComp.txt:1393)
+ static member keywordDescriptionStatic() = (GetStringFunc("keywordDescriptionStatic",",,,") )
+ /// Used to declare a structure type. Also used in generic parameter constraints. Used for OCaml compatibility in module definitions.
+ /// (Originally from ..\FSComp.txt:1394)
+ static member keywordDescriptionStruct() = (GetStringFunc("keywordDescriptionStruct",",,,") )
+ /// Used in conditional expressions. Also used to perform side effects after object construction.
+ /// (Originally from ..\FSComp.txt:1395)
+ static member keywordDescriptionThen() = (GetStringFunc("keywordDescriptionThen",",,,") )
+ /// Used in for loops to indicate a range.
+ /// (Originally from ..\FSComp.txt:1396)
+ static member keywordDescriptionTo() = (GetStringFunc("keywordDescriptionTo",",,,") )
+ /// Used to introduce a block of code that might generate an exception. Used together with with or finally.
+ /// (Originally from ..\FSComp.txt:1397)
+ static member keywordDescriptionTry() = (GetStringFunc("keywordDescriptionTry",",,,") )
+ /// Used to declare a class, record, structure, discriminated union, enumeration type, unit of measure, or type abbreviation.
+ /// (Originally from ..\FSComp.txt:1398)
+ static member keywordDescriptionType() = (GetStringFunc("keywordDescriptionType",",,,") )
+ /// Used to convert to a type that is higher in the inheritance chain.
+ /// (Originally from ..\FSComp.txt:1399)
+ static member keywordDescriptionUpcast() = (GetStringFunc("keywordDescriptionUpcast",",,,") )
+ /// Used instead of let for values that require Dispose to be called to free resources.
+ /// (Originally from ..\FSComp.txt:1400)
+ static member keywordDescriptionUse() = (GetStringFunc("keywordDescriptionUse",",,,") )
+ /// Used instead of let! in asynchronous workflows and other computation expressions for values that require Dispose to be called to free resources.
+ /// (Originally from ..\FSComp.txt:1401)
+ static member keywordDescriptionUseBang() = (GetStringFunc("keywordDescriptionUseBang",",,,") )
+ /// Used in a signature to indicate a value, or in a type to declare a member, in limited situations.
+ /// (Originally from ..\FSComp.txt:1402)
+ static member keywordDescriptionVal() = (GetStringFunc("keywordDescriptionVal",",,,") )
+ /// Indicates the .NET void type. Used when interoperating with other .NET languages.
+ /// (Originally from ..\FSComp.txt:1403)
+ static member keywordDescriptionVoid() = (GetStringFunc("keywordDescriptionVoid",",,,") )
+ /// Used for Boolean conditions (when guards) on pattern matches and to introduce a constraint clause for a generic type parameter.
+ /// (Originally from ..\FSComp.txt:1404)
+ static member keywordDescriptionWhen() = (GetStringFunc("keywordDescriptionWhen",",,,") )
+ /// Introduces a looping construct.
+ /// (Originally from ..\FSComp.txt:1405)
+ static member keywordDescriptionWhile() = (GetStringFunc("keywordDescriptionWhile",",,,") )
+ /// Used together with the match keyword in pattern matching expressions. Also used in object expressions, record copying expressions, and type extensions to introduce member definitions, and to introduce exception handlers.
+ /// (Originally from ..\FSComp.txt:1406)
+ static member keywordDescriptionWith() = (GetStringFunc("keywordDescriptionWith",",,,") )
+ /// Used in a sequence expression to produce a value for a sequence.
+ /// (Originally from ..\FSComp.txt:1407)
+ static member keywordDescriptionYield() = (GetStringFunc("keywordDescriptionYield",",,,") )
+ /// Used in a computation expression to append the result of a given computation expression to a collection of results for the containing computation expression.
+ /// (Originally from ..\FSComp.txt:1408)
+ static member keywordDescriptionYieldBang() = (GetStringFunc("keywordDescriptionYieldBang",",,,") )
+ /// In function types, delimits arguments and return values. Yields an expression (in sequence expressions); equivalent to the yield keyword. Used in match expressions
+ /// (Originally from ..\FSComp.txt:1409)
+ static member keywordDescriptionRightArrow() = (GetStringFunc("keywordDescriptionRightArrow",",,,") )
+ /// Assigns a value to a variable.
+ /// (Originally from ..\FSComp.txt:1410)
+ static member keywordDescriptionLeftArrow() = (GetStringFunc("keywordDescriptionLeftArrow",",,,") )
+ /// Converts a type to type that is higher in the hierarchy.
+ /// (Originally from ..\FSComp.txt:1411)
+ static member keywordDescriptionCast() = (GetStringFunc("keywordDescriptionCast",",,,") )
+ /// Converts a type to a type that is lower in the hierarchy.
+ /// (Originally from ..\FSComp.txt:1412)
+ static member keywordDescriptionDynamicCast() = (GetStringFunc("keywordDescriptionDynamicCast",",,,") )
+ /// Delimits a typed code quotation.
+ /// (Originally from ..\FSComp.txt:1413)
+ static member keywordDescriptionTypedQuotation() = (GetStringFunc("keywordDescriptionTypedQuotation",",,,") )
+ /// Delimits a untyped code quotation.
+ /// (Originally from ..\FSComp.txt:1414)
+ static member keywordDescriptionUntypedQuotation() = (GetStringFunc("keywordDescriptionUntypedQuotation",",,,") )
+ /// %s '%s' not found in assembly '%s'. A possible cause may be a version incompatibility. You may need to explicitly reference the correct version of this assembly to allow all referenced components to use the correct version.
+ /// (Originally from ..\FSComp.txt:1415)
+ static member itemNotFoundDuringDynamicCodeGen(a0 : System.String, a1 : System.String, a2 : System.String) = (3216, GetStringFunc("itemNotFoundDuringDynamicCodeGen",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// %s '%s' not found in type '%s' from assembly '%s'. A possible cause may be a version incompatibility. You may need to explicitly reference the correct version of this assembly to allow all referenced components to use the correct version.
+ /// (Originally from ..\FSComp.txt:1416)
+ static member itemNotFoundInTypeDuringDynamicCodeGen(a0 : System.String, a1 : System.String, a2 : System.String, a3 : System.String) = (3216, GetStringFunc("itemNotFoundInTypeDuringDynamicCodeGen",",,,%s,,,%s,,,%s,,,%s,,,") a0 a1 a2 a3)
+ /// is
+ /// (Originally from ..\FSComp.txt:1417)
+ static member descriptionWordIs() = (GetStringFunc("descriptionWordIs",",,,") )
+ /// This value is not a function and cannot be applied.
+ /// (Originally from ..\FSComp.txt:1418)
+ static member notAFunction() = (GetStringFunc("notAFunction",",,,") )
+ /// This value is not a function and cannot be applied. Did you intend to access the indexer via %s.[index] instead?
+ /// (Originally from ..\FSComp.txt:1419)
+ static member notAFunctionButMaybeIndexerWithName(a0 : System.String) = (GetStringFunc("notAFunctionButMaybeIndexerWithName",",,,%s,,,") a0)
+ /// This expression is not a function and cannot be applied. Did you intend to access the indexer via expr.[index] instead?
+ /// (Originally from ..\FSComp.txt:1420)
+ static member notAFunctionButMaybeIndexer() = (GetStringFunc("notAFunctionButMaybeIndexer",",,,") )
+ ///
+ /// (Originally from ..\FSComp.txt:1421)
+ static member notAFunctionButMaybeIndexerErrorCode() = (3217, GetStringFunc("notAFunctionButMaybeIndexerErrorCode",",,,") )
+ /// This value is not a function and cannot be applied. Did you forget to terminate a declaration?
+ /// (Originally from ..\FSComp.txt:1422)
+ static member notAFunctionButMaybeDeclaration() = (GetStringFunc("notAFunctionButMaybeDeclaration",",,,") )
+ /// The argument names in the signature '%s' and implementation '%s' do not match. The argument name from the signature file will be used. This may cause problems when debugging or profiling.
+ /// (Originally from ..\FSComp.txt:1423)
+ static member ArgumentsInSigAndImplMismatch(a0 : System.String, a1 : System.String) = (3218, GetStringFunc("ArgumentsInSigAndImplMismatch",",,,%s,,,%s,,,") a0 a1)
+ /// An error occurred while reading the F# metadata of assembly '%s'. A reserved construct was utilized. You may need to upgrade your F# compiler or use an earlier version of the assembly that doesn't make use of a specific construct.
+ /// (Originally from ..\FSComp.txt:1424)
+ static member pickleUnexpectedNonZero(a0 : System.String) = (3219, GetStringFunc("pickleUnexpectedNonZero",",,,%s,,,") a0)
+
+ /// Call this method once to validate that all known resources are valid; throws if not
+ static member RunStartupValidation() =
+ ignore(GetString("undefinedNameNamespace"))
+ ignore(GetString("undefinedNameNamespaceOrModule"))
+ ignore(GetString("undefinedNameFieldConstructorOrMember"))
+ ignore(GetString("undefinedNameValueConstructorNamespaceOrType"))
+ ignore(GetString("undefinedNameValueOfConstructor"))
+ ignore(GetString("undefinedNameValueNamespaceTypeOrModule"))
+ ignore(GetString("undefinedNameConstructorModuleOrNamespace"))
+ ignore(GetString("undefinedNameType"))
+ ignore(GetString("undefinedNameTypeIn"))
+ ignore(GetString("undefinedNameRecordLabelOrNamespace"))
+ ignore(GetString("undefinedNameRecordLabel"))
+ ignore(GetString("undefinedNameSuggestionsIntro"))
+ ignore(GetString("undefinedNameTypeParameter"))
+ ignore(GetString("undefinedNamePatternDiscriminator"))
+ ignore(GetString("replaceWithSuggestion"))
+ ignore(GetString("addIndexerDot"))
+ ignore(GetString("listElementHasWrongType"))
+ ignore(GetString("arrayElementHasWrongType"))
+ ignore(GetString("missingElseBranch"))
+ ignore(GetString("ifExpression"))
+ ignore(GetString("elseBranchHasWrongType"))
+ ignore(GetString("followingPatternMatchClauseHasWrongType"))
+ ignore(GetString("patternMatchGuardIsNotBool"))
+ ignore(GetString("commaInsteadOfSemicolonInRecord"))
+ ignore(GetString("derefInsteadOfNot"))
+ ignore(GetString("buildUnexpectedTypeArgs"))
+ ignore(GetString("returnUsedInsteadOfReturnBang"))
+ ignore(GetString("yieldUsedInsteadOfYieldBang"))
+ ignore(GetString("tupleRequiredInAbstractMethod"))
+ ignore(GetString("buildInvalidWarningNumber"))
+ ignore(GetString("buildInvalidVersionString"))
+ ignore(GetString("buildInvalidVersionFile"))
+ ignore(GetString("buildProductName"))
+ ignore(GetString("buildProductNameCommunity"))
+ ignore(GetString("buildProblemWithFilename"))
+ ignore(GetString("buildNoInputsSpecified"))
+ ignore(GetString("buildPdbRequiresDebug"))
+ ignore(GetString("buildInvalidSearchDirectory"))
+ ignore(GetString("buildSearchDirectoryNotFound"))
+ ignore(GetString("buildInvalidFilename"))
+ ignore(GetString("buildInvalidAssemblyName"))
+ ignore(GetString("buildInvalidPrivacy"))
+ ignore(GetString("buildMultipleReferencesNotAllowed"))
+ ignore(GetString("buildCouldNotReadVersionInfoFromMscorlib"))
+ ignore(GetString("buildCannotReadAssembly"))
+ ignore(GetString("buildAssemblyResolutionFailed"))
+ ignore(GetString("buildImplicitModuleIsNotLegalIdentifier"))
+ ignore(GetString("buildMultiFileRequiresNamespaceOrModule"))
+ ignore(GetString("noEqualSignAfterModule"))
+ ignore(GetString("buildMultipleToplevelModules"))
+ ignore(GetString("buildOptionRequiresParameter"))
+ ignore(GetString("buildCouldNotFindSourceFile"))
+ ignore(GetString("buildInvalidSourceFileExtension"))
+ ignore(GetString("buildCouldNotResolveAssembly"))
+ ignore(GetString("buildCouldNotResolveAssemblyRequiredByFile"))
+ ignore(GetString("buildErrorOpeningBinaryFile"))
+ ignore(GetString("buildDifferentVersionMustRecompile"))
+ ignore(GetString("buildInvalidHashIDirective"))
+ ignore(GetString("buildInvalidHashrDirective"))
+ ignore(GetString("buildInvalidHashloadDirective"))
+ ignore(GetString("buildInvalidHashtimeDirective"))
+ ignore(GetString("buildDirectivesInModulesAreIgnored"))
+ ignore(GetString("buildSignatureAlreadySpecified"))
+ ignore(GetString("buildImplementationAlreadyGivenDetail"))
+ ignore(GetString("buildImplementationAlreadyGiven"))
+ ignore(GetString("buildSignatureWithoutImplementation"))
+ ignore(GetString("buildArgInvalidInt"))
+ ignore(GetString("buildArgInvalidFloat"))
+ ignore(GetString("buildUnrecognizedOption"))
+ ignore(GetString("buildInvalidModuleOrNamespaceName"))
+ ignore(GetString("pickleErrorReadingWritingMetadata"))
+ ignore(GetString("tastTypeOrModuleNotConcrete"))
+ ignore(GetString("tastTypeHasAssemblyCodeRepresentation"))
+ ignore(GetString("tastNamespaceAndModuleWithSameNameInAssembly"))
+ ignore(GetString("tastTwoModulesWithSameNameInAssembly"))
+ ignore(GetString("tastDuplicateTypeDefinitionInAssembly"))
+ ignore(GetString("tastConflictingModuleAndTypeDefinitionInAssembly"))
+ ignore(GetString("tastInvalidMemberSignature"))
+ ignore(GetString("tastValueDoesNotHaveSetterType"))
+ ignore(GetString("tastInvalidFormForPropertyGetter"))
+ ignore(GetString("tastInvalidFormForPropertySetter"))
+ ignore(GetString("tastUnexpectedByRef"))
+ ignore(GetString("tastValueMustBeLocalAndMutable"))
+ ignore(GetString("tastInvalidMutationOfConstant"))
+ ignore(GetString("tastValueHasBeenCopied"))
+ ignore(GetString("tastRecursiveValuesMayNotBeInConstructionOfTuple"))
+ ignore(GetString("tastRecursiveValuesMayNotAppearInConstructionOfType"))
+ ignore(GetString("tastRecursiveValuesMayNotBeAssignedToNonMutableField"))
+ ignore(GetString("tastUnexpectedDecodeOfAutoOpenAttribute"))
+ ignore(GetString("tastUnexpectedDecodeOfInternalsVisibleToAttribute"))
+ ignore(GetString("tastUnexpectedDecodeOfInterfaceDataVersionAttribute"))
+ ignore(GetString("tastActivePatternsLimitedToSeven"))
+ ignore(GetString("tastNotAConstantExpression"))
+ ignore(GetString("ValueNotContainedMutabilityAttributesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityNamesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityCompiledNamesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityDisplayNamesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityAccessibilityMore"))
+ ignore(GetString("ValueNotContainedMutabilityInlineFlagsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityLiteralConstantValuesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityOneIsTypeFunction"))
+ ignore(GetString("ValueNotContainedMutabilityParameterCountsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityTypesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityExtensionsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityArityNotInferred"))
+ ignore(GetString("ValueNotContainedMutabilityGenericParametersDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityGenericParametersAreDifferentKinds"))
+ ignore(GetString("ValueNotContainedMutabilityAritiesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityDotNetNamesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityStaticsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityVirtualsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityAbstractsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityFinalsDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityOverridesDiffer"))
+ ignore(GetString("ValueNotContainedMutabilityOneIsConstructor"))
+ ignore(GetString("ValueNotContainedMutabilityStaticButInstance"))
+ ignore(GetString("ValueNotContainedMutabilityInstanceButStatic"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleNamesDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleParameterCountsDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleAccessibilityDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleMissingInterface"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSaysNull2"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureSaysNull2"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationSealed"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationIsNotSealed"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplementationIsAbstract"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureIsAbstract"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypesHaveDifferentBaseTypes"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleNumbersDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureDefinesButImplDoesNot"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplDefinesButSignatureDoesNot"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleImplDefinesStruct"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleDotNetTypeRepresentationIsHidden"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypeIsHidden"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleTypeIsDifferentKind"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleILDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldWasPresent"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldOrderDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldRequiredButNotSpecified"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleFieldIsInImplButNotSig"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInImpl"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbstractMemberMissingInSig"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSignatureDeclaresDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbbreviationsDiffer"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleAbbreviationHiddenBySig"))
+ ignore(GetString("DefinitionsInSigAndImplNotCompatibleSigHasAbbreviation"))
+ ignore(GetString("ModuleContainsConstructorButNamesDiffer"))
+ ignore(GetString("ModuleContainsConstructorButDataFieldsDiffer"))
+ ignore(GetString("ModuleContainsConstructorButTypesOfFieldsDiffer"))
+ ignore(GetString("ModuleContainsConstructorButAccessibilityDiffers"))
+ ignore(GetString("FieldNotContainedNamesDiffer"))
+ ignore(GetString("FieldNotContainedAccessibilitiesDiffer"))
+ ignore(GetString("FieldNotContainedStaticsDiffer"))
+ ignore(GetString("FieldNotContainedMutablesDiffer"))
+ ignore(GetString("FieldNotContainedLiteralsDiffer"))
+ ignore(GetString("FieldNotContainedTypesDiffer"))
+ ignore(GetString("typrelCannotResolveImplicitGenericInstantiation"))
+ ignore(GetString("typrelCannotResolveAmbiguityInOverloadedOperator"))
+ ignore(GetString("typrelCannotResolveAmbiguityInPrintf"))
+ ignore(GetString("typrelCannotResolveAmbiguityInEnum"))
+ ignore(GetString("typrelCannotResolveAmbiguityInDelegate"))
+ ignore(GetString("typrelInvalidValue"))
+ ignore(GetString("typrelSigImplNotCompatibleParamCountsDiffer"))
+ ignore(GetString("typrelSigImplNotCompatibleCompileTimeRequirementsDiffer"))
+ ignore(GetString("typrelSigImplNotCompatibleConstraintsDiffer"))
+ ignore(GetString("typrelSigImplNotCompatibleConstraintsDifferRemove"))
+ ignore(GetString("typrelTypeImplementsIComparableShouldOverrideObjectEquals"))
+ ignore(GetString("typrelTypeImplementsIComparableDefaultObjectEqualsProvided"))
+ ignore(GetString("typrelExplicitImplementationOfGetHashCodeOrEquals"))
+ ignore(GetString("typrelExplicitImplementationOfGetHashCode"))
+ ignore(GetString("typrelExplicitImplementationOfEquals"))
+ ignore(GetString("ExceptionDefsNotCompatibleHiddenBySignature"))
+ ignore(GetString("ExceptionDefsNotCompatibleDotNetRepresentationsDiffer"))
+ ignore(GetString("ExceptionDefsNotCompatibleAbbreviationHiddenBySignature"))
+ ignore(GetString("ExceptionDefsNotCompatibleSignaturesDiffer"))
+ ignore(GetString("ExceptionDefsNotCompatibleExceptionDeclarationsDiffer"))
+ ignore(GetString("ExceptionDefsNotCompatibleFieldInSigButNotImpl"))
+ ignore(GetString("ExceptionDefsNotCompatibleFieldInImplButNotSig"))
+ ignore(GetString("ExceptionDefsNotCompatibleFieldOrderDiffers"))
+ ignore(GetString("typrelModuleNamespaceAttributesDifferInSigAndImpl"))
+ ignore(GetString("typrelMethodIsOverconstrained"))
+ ignore(GetString("typrelOverloadNotFound"))
+ ignore(GetString("typrelOverrideWasAmbiguous"))
+ ignore(GetString("typrelMoreThenOneOverride"))
+ ignore(GetString("typrelMethodIsSealed"))
+ ignore(GetString("typrelOverrideImplementsMoreThenOneSlot"))
+ ignore(GetString("typrelDuplicateInterface"))
+ ignore(GetString("typrelNeedExplicitImplementation"))
+ ignore(GetString("typrelNamedArgumentHasBeenAssignedMoreThenOnce"))
+ ignore(GetString("typrelNoImplementationGiven"))
+ ignore(GetString("typrelNoImplementationGivenWithSuggestion"))
+ ignore(GetString("typrelMemberDoesNotHaveCorrectNumberOfArguments"))
+ ignore(GetString("typrelMemberDoesNotHaveCorrectNumberOfTypeParameters"))
+ ignore(GetString("typrelMemberDoesNotHaveCorrectKindsOfGenericParameters"))
+ ignore(GetString("typrelMemberCannotImplement"))
+ ignore(GetString("astParseEmbeddedILError"))
+ ignore(GetString("astParseEmbeddedILTypeError"))
+ ignore(GetString("astDeprecatedIndexerNotation"))
+ ignore(GetString("astInvalidExprLeftHandOfAssignment"))
+ ignore(GetString("augNoRefEqualsOnStruct"))
+ ignore(GetString("augInvalidAttrs"))
+ ignore(GetString("augNoEqualityNeedsNoComparison"))
+ ignore(GetString("augStructCompNeedsStructEquality"))
+ ignore(GetString("augStructEqNeedsNoCompOrStructComp"))
+ ignore(GetString("augTypeCantHaveRefEqAndStructAttrs"))
+ ignore(GetString("augOnlyCertainTypesCanHaveAttrs"))
+ ignore(GetString("augRefEqCantHaveObjEquals"))
+ ignore(GetString("augCustomEqNeedsObjEquals"))
+ ignore(GetString("augCustomCompareNeedsIComp"))
+ ignore(GetString("augNoEqNeedsNoObjEquals"))
+ ignore(GetString("augNoCompCantImpIComp"))
+ ignore(GetString("augCustomEqNeedsNoCompOrCustomComp"))
+ ignore(GetString("forPositionalSpecifiersNotPermitted"))
+ ignore(GetString("forMissingFormatSpecifier"))
+ ignore(GetString("forFlagSetTwice"))
+ ignore(GetString("forPrefixFlagSpacePlusSetTwice"))
+ ignore(GetString("forHashSpecifierIsInvalid"))
+ ignore(GetString("forBadPrecision"))
+ ignore(GetString("forBadWidth"))
+ ignore(GetString("forDoesNotSupportZeroFlag"))
+ ignore(GetString("forPrecisionMissingAfterDot"))
+ ignore(GetString("forFormatDoesntSupportPrecision"))
+ ignore(GetString("forBadFormatSpecifier"))
+ ignore(GetString("forLIsUnnecessary"))
+ ignore(GetString("forHIsUnnecessary"))
+ ignore(GetString("forDoesNotSupportPrefixFlag"))
+ ignore(GetString("forBadFormatSpecifierGeneral"))
+ ignore(GetString("elSysEnvExitDidntExit"))
+ ignore(GetString("elDeprecatedOperator"))
+ ignore(GetString("chkProtectedOrBaseCalled"))
+ ignore(GetString("chkByrefUsedInInvalidWay"))
+ ignore(GetString("chkBaseUsedInInvalidWay"))
+ ignore(GetString("chkVariableUsedInInvalidWay"))
+ ignore(GetString("chkTypeLessAccessibleThanType"))
+ ignore(GetString("chkSystemVoidOnlyInTypeof"))
+ ignore(GetString("chkErrorUseOfByref"))
+ ignore(GetString("chkErrorContainsCallToRethrow"))
+ ignore(GetString("chkSplicingOnlyInQuotations"))
+ ignore(GetString("chkNoFirstClassSplicing"))
+ ignore(GetString("chkNoFirstClassAddressOf"))
+ ignore(GetString("chkNoFirstClassRethrow"))
+ ignore(GetString("chkNoByrefAtThisPoint"))
+ ignore(GetString("chkLimitationsOfBaseKeyword"))
+ ignore(GetString("chkObjCtorsCantUseExceptionHandling"))
+ ignore(GetString("chkNoAddressOfAtThisPoint"))
+ ignore(GetString("chkNoAddressStaticFieldAtThisPoint"))
+ ignore(GetString("chkNoAddressFieldAtThisPoint"))
+ ignore(GetString("chkNoAddressOfArrayElementAtThisPoint"))
+ ignore(GetString("chkFirstClassFuncNoByref"))
+ ignore(GetString("chkReturnTypeNoByref"))
+ ignore(GetString("chkInvalidCustAttrVal"))
+ ignore(GetString("chkAttrHasAllowMultiFalse"))
+ ignore(GetString("chkMemberUsedInInvalidWay"))
+ ignore(GetString("chkNoByrefAsTopValue"))
+ ignore(GetString("chkReflectedDefCantSplice"))
+ ignore(GetString("chkEntryPointUsage"))
+ ignore(GetString("chkUnionCaseCompiledForm"))
+ ignore(GetString("chkUnionCaseDefaultAugmentation"))
+ ignore(GetString("chkPropertySameNameMethod"))
+ ignore(GetString("chkGetterSetterDoNotMatchAbstract"))
+ ignore(GetString("chkPropertySameNameIndexer"))
+ ignore(GetString("chkCantStoreByrefValue"))
+ ignore(GetString("chkDuplicateMethod"))
+ ignore(GetString("chkDuplicateMethodWithSuffix"))
+ ignore(GetString("chkDuplicateMethodCurried"))
+ ignore(GetString("chkCurriedMethodsCantHaveOutParams"))
+ ignore(GetString("chkDuplicateProperty"))
+ ignore(GetString("chkDuplicatePropertyWithSuffix"))
+ ignore(GetString("chkDuplicateMethodInheritedType"))
+ ignore(GetString("chkDuplicateMethodInheritedTypeWithSuffix"))
+ ignore(GetString("chkMultipleGenericInterfaceInstantiations"))
+ ignore(GetString("chkValueWithDefaultValueMustHaveDefaultValue"))
+ ignore(GetString("chkNoByrefInTypeAbbrev"))
+ ignore(GetString("crefBoundVarUsedInSplice"))
+ ignore(GetString("crefQuotationsCantContainGenericExprs"))
+ ignore(GetString("crefQuotationsCantContainGenericFunctions"))
+ ignore(GetString("crefQuotationsCantContainObjExprs"))
+ ignore(GetString("crefQuotationsCantContainAddressOf"))
+ ignore(GetString("crefQuotationsCantContainStaticFieldRef"))
+ ignore(GetString("crefQuotationsCantContainInlineIL"))
+ ignore(GetString("crefQuotationsCantContainDescendingForLoops"))
+ ignore(GetString("crefQuotationsCantFetchUnionIndexes"))
+ ignore(GetString("crefQuotationsCantSetUnionFields"))
+ ignore(GetString("crefQuotationsCantSetExceptionFields"))
+ ignore(GetString("crefQuotationsCantRequireByref"))
+ ignore(GetString("crefQuotationsCantCallTraitMembers"))
+ ignore(GetString("crefQuotationsCantContainThisConstant"))
+ ignore(GetString("crefQuotationsCantContainThisPatternMatch"))
+ ignore(GetString("crefQuotationsCantContainArrayPatternMatching"))
+ ignore(GetString("crefQuotationsCantContainThisType"))
+ ignore(GetString("csTypeCannotBeResolvedAtCompileTime"))
+ ignore(GetString("csCodeLessGeneric"))
+ ignore(GetString("csTypeInferenceMaxDepth"))
+ ignore(GetString("csExpectedArguments"))
+ ignore(GetString("csIndexArgumentMismatch"))
+ ignore(GetString("csExpectTypeWithOperatorButGivenFunction"))
+ ignore(GetString("csExpectTypeWithOperatorButGivenTuple"))
+ ignore(GetString("csTypesDoNotSupportOperator"))
+ ignore(GetString("csTypeDoesNotSupportOperator"))
+ ignore(GetString("csTypesDoNotSupportOperatorNullable"))
+ ignore(GetString("csTypeDoesNotSupportOperatorNullable"))
+ ignore(GetString("csTypeDoesNotSupportConversion"))
+ ignore(GetString("csMethodFoundButIsStatic"))
+ ignore(GetString("csMethodFoundButIsNotStatic"))
+ ignore(GetString("csStructConstraintInconsistent"))
+ ignore(GetString("csTypeDoesNotHaveNull"))
+ ignore(GetString("csNullableTypeDoesNotHaveNull"))
+ ignore(GetString("csTypeDoesNotSupportComparison1"))
+ ignore(GetString("csTypeDoesNotSupportComparison2"))
+ ignore(GetString("csTypeDoesNotSupportComparison3"))
+ ignore(GetString("csTypeDoesNotSupportEquality1"))
+ ignore(GetString("csTypeDoesNotSupportEquality2"))
+ ignore(GetString("csTypeDoesNotSupportEquality3"))
+ ignore(GetString("csTypeIsNotEnumType"))
+ ignore(GetString("csTypeHasNonStandardDelegateType"))
+ ignore(GetString("csTypeIsNotDelegateType"))
+ ignore(GetString("csTypeParameterCannotBeNullable"))
+ ignore(GetString("csGenericConstructRequiresStructType"))
+ ignore(GetString("csGenericConstructRequiresUnmanagedType"))
+ ignore(GetString("csTypeNotCompatibleBecauseOfPrintf"))
+ ignore(GetString("csGenericConstructRequiresReferenceSemantics"))
+ ignore(GetString("csGenericConstructRequiresNonAbstract"))
+ ignore(GetString("csGenericConstructRequiresPublicDefaultConstructor"))
+ ignore(GetString("csTypeInstantiationLengthMismatch"))
+ ignore(GetString("csOptionalArgumentNotPermittedHere"))
+ ignore(GetString("csMemberIsNotStatic"))
+ ignore(GetString("csMemberIsNotInstance"))
+ ignore(GetString("csArgumentLengthMismatch"))
+ ignore(GetString("csArgumentTypesDoNotMatch"))
+ ignore(GetString("csMethodExpectsParams"))
+ ignore(GetString("csMemberIsNotAccessible"))
+ ignore(GetString("csMemberIsNotAccessible2"))
+ ignore(GetString("csMethodIsNotAStaticMethod"))
+ ignore(GetString("csMethodIsNotAnInstanceMethod"))
+ ignore(GetString("csMemberHasNoArgumentOrReturnProperty"))
+ ignore(GetString("csCtorHasNoArgumentOrReturnProperty"))
+ ignore(GetString("csRequiredSignatureIs"))
+ ignore(GetString("csMemberSignatureMismatch"))
+ ignore(GetString("csMemberSignatureMismatch2"))
+ ignore(GetString("csMemberSignatureMismatch3"))
+ ignore(GetString("csMemberSignatureMismatch4"))
+ ignore(GetString("csMemberSignatureMismatchArityNamed"))
+ ignore(GetString("csMemberSignatureMismatchArity"))
+ ignore(GetString("csCtorSignatureMismatchArity"))
+ ignore(GetString("csCtorSignatureMismatchArityProp"))
+ ignore(GetString("csMemberSignatureMismatchArityType"))
+ ignore(GetString("csMemberNotAccessible"))
+ ignore(GetString("csIncorrectGenericInstantiation"))
+ ignore(GetString("csMemberOverloadArityMismatch"))
+ ignore(GetString("csNoMemberTakesTheseArguments"))
+ ignore(GetString("csNoMemberTakesTheseArguments2"))
+ ignore(GetString("csNoMemberTakesTheseArguments3"))
+ ignore(GetString("csMethodNotFound"))
+ ignore(GetString("csNoOverloadsFound"))
+ ignore(GetString("csMethodIsOverloaded"))
+ ignore(GetString("csCandidates"))
+ ignore(GetString("csSeeAvailableOverloads"))
+ ignore(GetString("parsDoCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsEofInHashIf"))
+ ignore(GetString("parsEofInString"))
+ ignore(GetString("parsEofInVerbatimString"))
+ ignore(GetString("parsEofInComment"))
+ ignore(GetString("parsEofInStringInComment"))
+ ignore(GetString("parsEofInVerbatimStringInComment"))
+ ignore(GetString("parsEofInIfOcaml"))
+ ignore(GetString("parsEofInDirective"))
+ ignore(GetString("parsNoHashEndIfFound"))
+ ignore(GetString("parsAttributesIgnored"))
+ ignore(GetString("parsUseBindingsIllegalInImplicitClassConstructors"))
+ ignore(GetString("parsUseBindingsIllegalInModules"))
+ ignore(GetString("parsIntegerForLoopRequiresSimpleIdentifier"))
+ ignore(GetString("parsOnlyOneWithAugmentationAllowed"))
+ ignore(GetString("parsUnexpectedSemicolon"))
+ ignore(GetString("parsUnexpectedEndOfFile"))
+ ignore(GetString("parsUnexpectedVisibilityDeclaration"))
+ ignore(GetString("parsOnlyHashDirectivesAllowed"))
+ ignore(GetString("parsVisibilityDeclarationsShouldComePriorToIdentifier"))
+ ignore(GetString("parsNamespaceOrModuleNotBoth"))
+ ignore(GetString("parsModuleAbbreviationMustBeSimpleName"))
+ ignore(GetString("parsIgnoreAttributesOnModuleAbbreviation"))
+ ignore(GetString("parsIgnoreAttributesOnModuleAbbreviationAlwaysPrivate"))
+ ignore(GetString("parsIgnoreVisibilityOnModuleAbbreviationAlwaysPrivate"))
+ ignore(GetString("parsUnClosedBlockInHashLight"))
+ ignore(GetString("parsUnmatchedBeginOrStruct"))
+ ignore(GetString("parsModuleDefnMustBeSimpleName"))
+ ignore(GetString("parsUnexpectedEmptyModuleDefn"))
+ ignore(GetString("parsAttributesMustComeBeforeVal"))
+ ignore(GetString("parsAttributesAreNotPermittedOnInterfaceImplementations"))
+ ignore(GetString("parsSyntaxError"))
+ ignore(GetString("parsAugmentationsIllegalOnDelegateType"))
+ ignore(GetString("parsUnmatchedClassInterfaceOrStruct"))
+ ignore(GetString("parsEmptyTypeDefinition"))
+ ignore(GetString("parsUnmatchedWith"))
+ ignore(GetString("parsGetOrSetRequired"))
+ ignore(GetString("parsOnlyClassCanTakeValueArguments"))
+ ignore(GetString("parsUnmatchedBegin"))
+ ignore(GetString("parsInvalidDeclarationSyntax"))
+ ignore(GetString("parsGetAndOrSetRequired"))
+ ignore(GetString("parsTypeAnnotationsOnGetSet"))
+ ignore(GetString("parsGetterMustHaveAtLeastOneArgument"))
+ ignore(GetString("parsMultipleAccessibilitiesForGetSet"))
+ ignore(GetString("parsSetSyntax"))
+ ignore(GetString("parsInterfacesHaveSameVisibilityAsEnclosingType"))
+ ignore(GetString("parsAccessibilityModsIllegalForAbstract"))
+ ignore(GetString("parsAttributesIllegalOnInherit"))
+ ignore(GetString("parsVisibilityIllegalOnInherit"))
+ ignore(GetString("parsInheritDeclarationsCannotHaveAsBindings"))
+ ignore(GetString("parsAttributesIllegalHere"))
+ ignore(GetString("parsTypeAbbreviationsCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsEnumTypesCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsAllEnumFieldsRequireValues"))
+ ignore(GetString("parsInlineAssemblyCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsUnexpectedIdentifier"))
+ ignore(GetString("parsUnionCasesCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsEnumFieldsCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsConsiderUsingSeparateRecordType"))
+ ignore(GetString("parsRecordFieldsCannotHaveVisibilityDeclarations"))
+ ignore(GetString("parsLetAndForNonRecBindings"))
+ ignore(GetString("parsUnmatchedParen"))
+ ignore(GetString("parsSuccessivePatternsShouldBeSpacedOrTupled"))
+ ignore(GetString("parsNoMatchingInForLet"))
+ ignore(GetString("parsErrorInReturnForLetIncorrectIndentation"))
+ ignore(GetString("parsExpectedExpressionAfterLet"))
+ ignore(GetString("parsIncompleteIf"))
+ ignore(GetString("parsAssertIsNotFirstClassValue"))
+ ignore(GetString("parsIdentifierExpected"))
+ ignore(GetString("parsInOrEqualExpected"))
+ ignore(GetString("parsArrowUseIsLimited"))
+ ignore(GetString("parsSuccessiveArgsShouldBeSpacedOrTupled"))
+ ignore(GetString("parsUnmatchedBracket"))
+ ignore(GetString("parsMissingQualificationAfterDot"))
+ ignore(GetString("parsParenFormIsForML"))
+ ignore(GetString("parsMismatchedQuote"))
+ ignore(GetString("parsUnmatched"))
+ ignore(GetString("parsUnmatchedBracketBar"))
+ ignore(GetString("parsUnmatchedBrace"))
+ ignore(GetString("parsFieldBinding"))
+ ignore(GetString("parsMemberIllegalInObjectImplementation"))
+ ignore(GetString("parsMissingFunctionBody"))
+ ignore(GetString("parsSyntaxErrorInLabeledType"))
+ ignore(GetString("parsUnexpectedInfixOperator"))
+ ignore(GetString("parsMultiArgumentGenericTypeFormDeprecated"))
+ ignore(GetString("parsInvalidLiteralInType"))
+ ignore(GetString("parsUnexpectedOperatorForUnitOfMeasure"))
+ ignore(GetString("parsUnexpectedIntegerLiteralForUnitOfMeasure"))
+ ignore(GetString("parsUnexpectedTypeParameter"))
+ ignore(GetString("parsMismatchedQuotationName"))
+ ignore(GetString("parsActivePatternCaseMustBeginWithUpperCase"))
+ ignore(GetString("parsActivePatternCaseContainsPipe"))
+ ignore(GetString("parsIllegalDenominatorForMeasureExponent"))
+ ignore(GetString("parsNoEqualShouldFollowNamespace"))
+ ignore(GetString("parsSyntaxModuleStructEndDeprecated"))
+ ignore(GetString("parsSyntaxModuleSigEndDeprecated"))
+ ignore(GetString("tcStaticFieldUsedWhenInstanceFieldExpected"))
+ ignore(GetString("tcMethodNotAccessible"))
+ ignore(GetString("tcImplicitMeasureFollowingSlash"))
+ ignore(GetString("tcUnexpectedMeasureAnon"))
+ ignore(GetString("tcNonZeroConstantCannotHaveGenericUnit"))
+ ignore(GetString("tcSeqResultsUseYield"))
+ ignore(GetString("tcUnexpectedBigRationalConstant"))
+ ignore(GetString("tcInvalidTypeForUnitsOfMeasure"))
+ ignore(GetString("tcUnexpectedConstUint16Array"))
+ ignore(GetString("tcUnexpectedConstByteArray"))
+ ignore(GetString("tcParameterRequiresName"))
+ ignore(GetString("tcReturnValuesCannotHaveNames"))
+ ignore(GetString("tcMemberKindPropertyGetSetNotExpected"))
+ ignore(GetString("tcNamespaceCannotContainValues"))
+ ignore(GetString("tcNamespaceCannotContainExtensionMembers"))
+ ignore(GetString("tcMultipleVisibilityAttributes"))
+ ignore(GetString("tcMultipleVisibilityAttributesWithLet"))
+ ignore(GetString("tcInvalidMethodNameForRelationalOperator"))
+ ignore(GetString("tcInvalidMethodNameForEquality"))
+ ignore(GetString("tcInvalidMemberName"))
+ ignore(GetString("tcInvalidMemberNameFixedTypes"))
+ ignore(GetString("tcInvalidOperatorDefinitionRelational"))
+ ignore(GetString("tcInvalidOperatorDefinitionEquality"))
+ ignore(GetString("tcInvalidOperatorDefinition"))
+ ignore(GetString("tcInvalidIndexOperatorDefinition"))
+ ignore(GetString("tcExpectModuleOrNamespaceParent"))
+ ignore(GetString("tcImplementsIComparableExplicitly"))
+ ignore(GetString("tcImplementsGenericIComparableExplicitly"))
+ ignore(GetString("tcImplementsIStructuralComparableExplicitly"))
+ ignore(GetString("tcRecordFieldInconsistentTypes"))
+ ignore(GetString("tcDllImportStubsCannotBeInlined"))
+ ignore(GetString("tcStructsCanOnlyBindThisAtMemberDeclaration"))
+ ignore(GetString("tcUnexpectedExprAtRecInfPoint"))
+ ignore(GetString("tcLessGenericBecauseOfAnnotation"))
+ ignore(GetString("tcConstrainedTypeVariableCannotBeGeneralized"))
+ ignore(GetString("tcGenericParameterHasBeenConstrained"))
+ ignore(GetString("tcTypeParameterHasBeenConstrained"))
+ ignore(GetString("tcTypeParametersInferredAreNotStable"))
+ ignore(GetString("tcExplicitTypeParameterInvalid"))
+ ignore(GetString("tcOverridingMethodRequiresAllOrNoTypeParameters"))
+ ignore(GetString("tcFieldsDoNotDetermineUniqueRecordType"))
+ ignore(GetString("tcFieldAppearsTwiceInRecord"))
+ ignore(GetString("tcUnknownUnion"))
+ ignore(GetString("tcNotSufficientlyGenericBecauseOfScope"))
+ ignore(GetString("tcPropertyRequiresExplicitTypeParameters"))
+ ignore(GetString("tcConstructorCannotHaveTypeParameters"))
+ ignore(GetString("tcInstanceMemberRequiresTarget"))
+ ignore(GetString("tcUnexpectedPropertyInSyntaxTree"))
+ ignore(GetString("tcStaticInitializerRequiresArgument"))
+ ignore(GetString("tcObjectConstructorRequiresArgument"))
+ ignore(GetString("tcStaticMemberShouldNotHaveThis"))
+ ignore(GetString("tcExplicitStaticInitializerSyntax"))
+ ignore(GetString("tcExplicitObjectConstructorSyntax"))
+ ignore(GetString("tcUnexpectedPropertySpec"))
+ ignore(GetString("tcObjectExpressionFormDeprecated"))
+ ignore(GetString("tcInvalidDeclaration"))
+ ignore(GetString("tcAttributesInvalidInPatterns"))
+ ignore(GetString("tcFunctionRequiresExplicitTypeArguments"))
+ ignore(GetString("tcDoesNotAllowExplicitTypeArguments"))
+ ignore(GetString("tcTypeParameterArityMismatch"))
+ ignore(GetString("tcDefaultStructConstructorCall"))
+ ignore(GetString("tcCouldNotFindIDisposable"))
+ ignore(GetString("tcNonLiteralCannotBeUsedInPattern"))
+ ignore(GetString("tcFieldIsReadonly"))
+ ignore(GetString("tcNameArgumentsMustAppearLast"))
+ ignore(GetString("tcFunctionRequiresExplicitLambda"))
+ ignore(GetString("tcTypeCannotBeEnumerated"))
+ ignore(GetString("tcInvalidMixtureOfRecursiveForms"))
+ ignore(GetString("tcInvalidObjectConstructionExpression"))
+ ignore(GetString("tcInvalidConstraint"))
+ ignore(GetString("tcInvalidConstraintTypeSealed"))
+ ignore(GetString("tcInvalidEnumConstraint"))
+ ignore(GetString("tcInvalidNewConstraint"))
+ ignore(GetString("tcInvalidPropertyType"))
+ ignore(GetString("tcExpectedUnitOfMeasureMarkWithAttribute"))
+ ignore(GetString("tcExpectedTypeParameter"))
+ ignore(GetString("tcExpectedTypeNotUnitOfMeasure"))
+ ignore(GetString("tcExpectedUnitOfMeasureNotType"))
+ ignore(GetString("tcInvalidUnitsOfMeasurePrefix"))
+ ignore(GetString("tcUnitsOfMeasureInvalidInTypeConstructor"))
+ ignore(GetString("tcRequireBuilderMethod"))
+ ignore(GetString("tcTypeHasNoNestedTypes"))
+ ignore(GetString("tcUnexpectedSymbolInTypeExpression"))
+ ignore(GetString("tcTypeParameterInvalidAsTypeConstructor"))
+ ignore(GetString("tcIllegalSyntaxInTypeExpression"))
+ ignore(GetString("tcAnonymousUnitsOfMeasureCannotBeNested"))
+ ignore(GetString("tcAnonymousTypeInvalidInDeclaration"))
+ ignore(GetString("tcUnexpectedSlashInType"))
+ ignore(GetString("tcUnexpectedTypeArguments"))
+ ignore(GetString("tcOptionalArgsOnlyOnMembers"))
+ ignore(GetString("tcNameNotBoundInPattern"))
+ ignore(GetString("tcInvalidNonPrimitiveLiteralInPatternMatch"))
+ ignore(GetString("tcInvalidTypeArgumentUsage"))
+ ignore(GetString("tcRequireActivePatternWithOneResult"))
+ ignore(GetString("tcInvalidArgForParameterizedPattern"))
+ ignore(GetString("tcInvalidIndexIntoActivePatternArray"))
+ ignore(GetString("tcUnionCaseDoesNotTakeArguments"))
+ ignore(GetString("tcUnionCaseRequiresOneArgument"))
+ ignore(GetString("tcUnionCaseExpectsTupledArguments"))
+ ignore(GetString("tcFieldIsNotStatic"))
+ ignore(GetString("tcFieldNotLiteralCannotBeUsedInPattern"))
+ ignore(GetString("tcRequireVarConstRecogOrLiteral"))
+ ignore(GetString("tcInvalidPattern"))
+ ignore(GetString("tcUseWhenPatternGuard"))
+ ignore(GetString("tcIllegalPattern"))
+ ignore(GetString("tcSyntaxErrorUnexpectedQMark"))
+ ignore(GetString("tcExpressionCountMisMatch"))
+ ignore(GetString("tcExprUndelayed"))
+ ignore(GetString("tcExpressionRequiresSequence"))
+ ignore(GetString("tcInvalidObjectExpressionSyntaxForm"))
+ ignore(GetString("tcInvalidObjectSequenceOrRecordExpression"))
+ ignore(GetString("tcInvalidSequenceExpressionSyntaxForm"))
+ ignore(GetString("tcExpressionWithIfRequiresParenthesis"))
+ ignore(GetString("tcUnableToParseFormatString"))
+ ignore(GetString("tcListLiteralMaxSize"))
+ ignore(GetString("tcExpressionFormRequiresObjectConstructor"))
+ ignore(GetString("tcNamedArgumentsCannotBeUsedInMemberTraits"))
+ ignore(GetString("tcNotValidEnumCaseName"))
+ ignore(GetString("tcFieldIsNotMutable"))
+ ignore(GetString("tcConstructRequiresListArrayOrSequence"))
+ ignore(GetString("tcConstructRequiresComputationExpressions"))
+ ignore(GetString("tcConstructRequiresSequenceOrComputations"))
+ ignore(GetString("tcConstructRequiresComputationExpression"))
+ ignore(GetString("tcInvalidIndexerExpression"))
+ ignore(GetString("tcObjectOfIndeterminateTypeUsedRequireTypeConstraint"))
+ ignore(GetString("tcCannotInheritFromVariableType"))
+ ignore(GetString("tcObjectConstructorsOnTypeParametersCannotTakeArguments"))
+ ignore(GetString("tcCompiledNameAttributeMisused"))
+ ignore(GetString("tcNamedTypeRequired"))
+ ignore(GetString("tcInheritCannotBeUsedOnInterfaceType"))
+ ignore(GetString("tcNewCannotBeUsedOnInterfaceType"))
+ ignore(GetString("tcAbstractTypeCannotBeInstantiated"))
+ ignore(GetString("tcIDisposableTypeShouldUseNew"))
+ ignore(GetString("tcSyntaxCanOnlyBeUsedToCreateObjectTypes"))
+ ignore(GetString("tcConstructorRequiresCall"))
+ ignore(GetString("tcUndefinedField"))
+ ignore(GetString("tcFieldRequiresAssignment"))
+ ignore(GetString("tcExtraneousFieldsGivenValues"))
+ ignore(GetString("tcObjectExpressionsCanOnlyOverrideAbstractOrVirtual"))
+ ignore(GetString("tcNoAbstractOrVirtualMemberFound"))
+ ignore(GetString("tcMemberFoundIsNotAbstractOrVirtual"))
+ ignore(GetString("tcArgumentArityMismatch"))
+ ignore(GetString("tcArgumentArityMismatchOneOverload"))
+ ignore(GetString("tcSimpleMethodNameRequired"))
+ ignore(GetString("tcPredefinedTypeCannotBeUsedAsSuperType"))
+ ignore(GetString("tcNewMustBeUsedWithNamedType"))
+ ignore(GetString("tcCannotCreateExtensionOfSealedType"))
+ ignore(GetString("tcNoArgumentsForRecordValue"))
+ ignore(GetString("tcNoInterfaceImplementationForConstructionExpression"))
+ ignore(GetString("tcObjectConstructionCanOnlyBeUsedInClassTypes"))
+ ignore(GetString("tcOnlySimpleBindingsCanBeUsedInConstructionExpressions"))
+ ignore(GetString("tcObjectsMustBeInitializedWithObjectExpression"))
+ ignore(GetString("tcExpectedInterfaceType"))
+ ignore(GetString("tcConstructorForInterfacesDoNotTakeArguments"))
+ ignore(GetString("tcConstructorRequiresArguments"))
+ ignore(GetString("tcNewRequiresObjectConstructor"))
+ ignore(GetString("tcAtLeastOneOverrideIsInvalid"))
+ ignore(GetString("tcNumericLiteralRequiresModule"))
+ ignore(GetString("tcInvalidRecordConstruction"))
+ ignore(GetString("tcExpressionFormRequiresRecordTypes"))
+ ignore(GetString("tcInheritedTypeIsNotObjectModelType"))
+ ignore(GetString("tcObjectConstructionExpressionCanOnlyImplementConstructorsInObjectModelTypes"))
+ ignore(GetString("tcEmptyRecordInvalid"))
+ ignore(GetString("tcTypeIsNotARecordTypeNeedConstructor"))
+ ignore(GetString("tcTypeIsNotARecordType"))
+ ignore(GetString("tcConstructIsAmbiguousInComputationExpression"))
+ ignore(GetString("tcConstructIsAmbiguousInSequenceExpression"))
+ ignore(GetString("tcDoBangIllegalInSequenceExpression"))
+ ignore(GetString("tcUseForInSequenceExpression"))
+ ignore(GetString("tcTryIllegalInSequenceExpression"))
+ ignore(GetString("tcUseYieldBangForMultipleResults"))
+ ignore(GetString("tcInvalidAssignment"))
+ ignore(GetString("tcInvalidUseOfTypeName"))
+ ignore(GetString("tcTypeHasNoAccessibleConstructor"))
+ ignore(GetString("tcInvalidUseOfInterfaceType"))
+ ignore(GetString("tcInvalidUseOfDelegate"))
+ ignore(GetString("tcPropertyIsNotStatic"))
+ ignore(GetString("tcPropertyIsNotReadable"))
+ ignore(GetString("tcLookupMayNotBeUsedHere"))
+ ignore(GetString("tcPropertyIsStatic"))
+ ignore(GetString("tcPropertyCannotBeSet1"))
+ ignore(GetString("tcConstructorsCannotBeFirstClassValues"))
+ ignore(GetString("tcSyntaxFormUsedOnlyWithRecordLabelsPropertiesAndFields"))
+ ignore(GetString("tcEventIsStatic"))
+ ignore(GetString("tcEventIsNotStatic"))
+ ignore(GetString("tcNamedArgumentDidNotMatch"))
+ ignore(GetString("tcOverloadsCannotHaveCurriedArguments"))
+ ignore(GetString("tcUnnamedArgumentsDoNotFormPrefix"))
+ ignore(GetString("tcStaticOptimizationConditionalsOnlyForFSharpLibrary"))
+ ignore(GetString("tcFormalArgumentIsNotOptional"))
+ ignore(GetString("tcInvalidOptionalAssignmentToPropertyOrField"))
+ ignore(GetString("tcDelegateConstructorMustBePassed"))
+ ignore(GetString("tcBindingCannotBeUseAndRec"))
+ ignore(GetString("tcVolatileOnlyOnClassLetBindings"))
+ ignore(GetString("tcAttributesAreNotPermittedOnLetBindings"))
+ ignore(GetString("tcDefaultValueAttributeRequiresVal"))
+ ignore(GetString("tcConditionalAttributeRequiresMembers"))
+ ignore(GetString("tcInvalidActivePatternName"))
+ ignore(GetString("tcEntryPointAttributeRequiresFunctionInModule"))
+ ignore(GetString("tcMutableValuesCannotBeInline"))
+ ignore(GetString("tcMutableValuesMayNotHaveGenericParameters"))
+ ignore(GetString("tcMutableValuesSyntax"))
+ ignore(GetString("tcOnlyFunctionsCanBeInline"))
+ ignore(GetString("tcIllegalAttributesForLiteral"))
+ ignore(GetString("tcLiteralCannotBeMutable"))
+ ignore(GetString("tcLiteralCannotBeInline"))
+ ignore(GetString("tcLiteralCannotHaveGenericParameters"))
+ ignore(GetString("tcInvalidConstantExpression"))
+ ignore(GetString("tcTypeIsInaccessible"))
+ ignore(GetString("tcUnexpectedConditionInImportedAssembly"))
+ ignore(GetString("tcUnrecognizedAttributeTarget"))
+ ignore(GetString("tcAttributeIsNotValidForLanguageElementUseDo"))
+ ignore(GetString("tcAttributeIsNotValidForLanguageElement"))
+ ignore(GetString("tcOptionalArgumentsCannotBeUsedInCustomAttribute"))
+ ignore(GetString("tcPropertyCannotBeSet0"))
+ ignore(GetString("tcPropertyOrFieldNotFoundInAttribute"))
+ ignore(GetString("tcCustomAttributeMustBeReferenceType"))
+ ignore(GetString("tcCustomAttributeArgumentMismatch"))
+ ignore(GetString("tcCustomAttributeMustInvokeConstructor"))
+ ignore(GetString("tcAttributeExpressionsMustBeConstructorCalls"))
+ ignore(GetString("tcUnsupportedAttribute"))
+ ignore(GetString("tcInvalidInlineSpecification"))
+ ignore(GetString("tcInvalidUseBinding"))
+ ignore(GetString("tcAbstractMembersIllegalInAugmentation"))
+ ignore(GetString("tcMethodOverridesIllegalHere"))
+ ignore(GetString("tcNoMemberFoundForOverride"))
+ ignore(GetString("tcOverrideArityMismatch"))
+ ignore(GetString("tcDefaultImplementationAlreadyExists"))
+ ignore(GetString("tcDefaultAmbiguous"))
+ ignore(GetString("tcNoPropertyFoundForOverride"))
+ ignore(GetString("tcAbstractPropertyMissingGetOrSet"))
+ ignore(GetString("tcInvalidSignatureForSet"))
+ ignore(GetString("tcNewMemberHidesAbstractMember"))
+ ignore(GetString("tcNewMemberHidesAbstractMemberWithSuffix"))
+ ignore(GetString("tcStaticInitializersIllegalInInterface"))
+ ignore(GetString("tcObjectConstructorsIllegalInInterface"))
+ ignore(GetString("tcMemberOverridesIllegalInInterface"))
+ ignore(GetString("tcConcreteMembersIllegalInInterface"))
+ ignore(GetString("tcConstructorsDisallowedInExceptionAugmentation"))
+ ignore(GetString("tcStructsCannotHaveConstructorWithNoArguments"))
+ ignore(GetString("tcConstructorsIllegalForThisType"))
+ ignore(GetString("tcRecursiveBindingsWithMembersMustBeDirectAugmentation"))
+ ignore(GetString("tcOnlySimplePatternsInLetRec"))
+ ignore(GetString("tcOnlyRecordFieldsAndSimpleLetCanBeMutable"))
+ ignore(GetString("tcMemberIsNotSufficientlyGeneric"))
+ ignore(GetString("tcLiteralAttributeRequiresConstantValue"))
+ ignore(GetString("tcValueInSignatureRequiresLiteralAttribute"))
+ ignore(GetString("tcThreadStaticAndContextStaticMustBeStatic"))
+ ignore(GetString("tcVolatileFieldsMustBeMutable"))
+ ignore(GetString("tcUninitializedValFieldsMustBeMutable"))
+ ignore(GetString("tcStaticValFieldsMustBeMutableAndPrivate"))
+ ignore(GetString("tcFieldRequiresName"))
+ ignore(GetString("tcInvalidNamespaceModuleTypeUnionName"))
+ ignore(GetString("tcIllegalFormForExplicitTypeDeclaration"))
+ ignore(GetString("tcReturnTypesForUnionMustBeSameAsType"))
+ ignore(GetString("tcInvalidEnumerationLiteral"))
+ ignore(GetString("tcTypeIsNotInterfaceType1"))
+ ignore(GetString("tcDuplicateSpecOfInterface"))
+ ignore(GetString("tcFieldValIllegalHere"))
+ ignore(GetString("tcInheritIllegalHere"))
+ ignore(GetString("tcModuleRequiresQualifiedAccess"))
+ ignore(GetString("tcOpenUsedWithPartiallyQualifiedPath"))
+ ignore(GetString("tcLocalClassBindingsCannotBeInline"))
+ ignore(GetString("tcTypeAbbreviationsMayNotHaveMembers"))
+ ignore(GetString("tcTypeAbbreviationsCheckedAtCompileTime"))
+ ignore(GetString("tcEnumerationsMayNotHaveMembers"))
+ ignore(GetString("tcMeasureDeclarationsRequireStaticMembers"))
+ ignore(GetString("tcStructsMayNotContainDoBindings"))
+ ignore(GetString("tcStructsMayNotContainLetBindings"))
+ ignore(GetString("tcStaticLetBindingsRequireClassesWithImplicitConstructors"))
+ ignore(GetString("tcMeasureDeclarationsRequireStaticMembersNotConstructors"))
+ ignore(GetString("tcMemberAndLocalClassBindingHaveSameName"))
+ ignore(GetString("tcTypeAbbreviationsCannotHaveInterfaceDeclaration"))
+ ignore(GetString("tcEnumerationsCannotHaveInterfaceDeclaration"))
+ ignore(GetString("tcTypeIsNotInterfaceType0"))
+ ignore(GetString("tcAllImplementedInterfacesShouldBeDeclared"))
+ ignore(GetString("tcDefaultImplementationForInterfaceHasAlreadyBeenAdded"))
+ ignore(GetString("tcMemberNotPermittedInInterfaceImplementation"))
+ ignore(GetString("tcDeclarationElementNotPermittedInAugmentation"))
+ ignore(GetString("tcTypesCannotContainNestedTypes"))
+ ignore(GetString("tcTypeExceptionOrModule"))
+ ignore(GetString("tcTypeOrModule"))
+ ignore(GetString("tcImplementsIStructuralEquatableExplicitly"))
+ ignore(GetString("tcImplementsIEquatableExplicitly"))
+ ignore(GetString("tcExplicitTypeSpecificationCannotBeUsedForExceptionConstructors"))
+ ignore(GetString("tcExceptionAbbreviationsShouldNotHaveArgumentList"))
+ ignore(GetString("tcAbbreviationsFordotNetExceptionsCannotTakeArguments"))
+ ignore(GetString("tcExceptionAbbreviationsMustReferToValidExceptions"))
+ ignore(GetString("tcAbbreviationsFordotNetExceptionsMustHaveMatchingObjectConstructor"))
+ ignore(GetString("tcNotAnException"))
+ ignore(GetString("tcInvalidModuleName"))
+ ignore(GetString("tcInvalidTypeExtension"))
+ ignore(GetString("tcAttributesOfTypeSpecifyMultipleKindsForType"))
+ ignore(GetString("tcKindOfTypeSpecifiedDoesNotMatchDefinition"))
+ ignore(GetString("tcMeasureDefinitionsCannotHaveTypeParameters"))
+ ignore(GetString("tcTypeRequiresDefinition"))
+ ignore(GetString("tcTypeAbbreviationHasTypeParametersMissingOnType"))
+ ignore(GetString("tcStructsInterfacesEnumsDelegatesMayNotInheritFromOtherTypes"))
+ ignore(GetString("tcTypesCannotInheritFromMultipleConcreteTypes"))
+ ignore(GetString("tcRecordsUnionsAbbreviationsStructsMayNotHaveAllowNullLiteralAttribute"))
+ ignore(GetString("tcAllowNullTypesMayOnlyInheritFromAllowNullTypes"))
+ ignore(GetString("tcGenericTypesCannotHaveStructLayout"))
+ ignore(GetString("tcOnlyStructsCanHaveStructLayout"))
+ ignore(GetString("tcRepresentationOfTypeHiddenBySignature"))
+ ignore(GetString("tcOnlyClassesCanHaveAbstract"))
+ ignore(GetString("tcOnlyTypesRepresentingUnitsOfMeasureCanHaveMeasure"))
+ ignore(GetString("tcOverridesCannotHaveVisibilityDeclarations"))
+ ignore(GetString("tcTypesAreAlwaysSealedDU"))
+ ignore(GetString("tcTypesAreAlwaysSealedRecord"))
+ ignore(GetString("tcTypesAreAlwaysSealedAssemblyCode"))
+ ignore(GetString("tcTypesAreAlwaysSealedStruct"))
+ ignore(GetString("tcTypesAreAlwaysSealedDelegate"))
+ ignore(GetString("tcTypesAreAlwaysSealedEnum"))
+ ignore(GetString("tcInterfaceTypesAndDelegatesCannotContainFields"))
+ ignore(GetString("tcAbbreviatedTypesCannotBeSealed"))
+ ignore(GetString("tcCannotInheritFromSealedType"))
+ ignore(GetString("tcCannotInheritFromInterfaceType"))
+ ignore(GetString("tcStructTypesCannotContainAbstractMembers"))
+ ignore(GetString("tcInterfaceTypesCannotBeSealed"))
+ ignore(GetString("tcInvalidDelegateSpecification"))
+ ignore(GetString("tcDelegatesCannotBeCurried"))
+ ignore(GetString("tcInvalidTypeForLiteralEnumeration"))
+ ignore(GetString("tcTypeDefinitionIsCyclic"))
+ ignore(GetString("tcTypeDefinitionIsCyclicThroughInheritance"))
+ ignore(GetString("tcReservedSyntaxForAugmentation"))
+ ignore(GetString("tcMembersThatExtendInterfaceMustBePlacedInSeparateModule"))
+ ignore(GetString("tcDeclaredTypeParametersForExtensionDoNotMatchOriginal"))
+ ignore(GetString("tcTypeDefinitionsWithImplicitConstructionMustHaveOneInherit"))
+ ignore(GetString("tcTypeDefinitionsWithImplicitConstructionMustHaveLocalBindingsBeforeMembers"))
+ ignore(GetString("tcInheritDeclarationMissingArguments"))
+ ignore(GetString("tcInheritConstructionCallNotPartOfImplicitSequence"))
+ ignore(GetString("tcLetAndDoRequiresImplicitConstructionSequence"))
+ ignore(GetString("tcTypeAbbreviationsCannotHaveAugmentations"))
+ ignore(GetString("tcModuleAbbreviationForNamespace"))
+ ignore(GetString("tcTypeUsedInInvalidWay"))
+ ignore(GetString("tcMemberUsedInInvalidWay"))
+ ignore(GetString("tcAttributeAutoOpenWasIgnored"))
+ ignore(GetString("ilUndefinedValue"))
+ ignore(GetString("ilLabelNotFound"))
+ ignore(GetString("ilIncorrectNumberOfTypeArguments"))
+ ignore(GetString("ilDynamicInvocationNotSupported"))
+ ignore(GetString("ilAddressOfLiteralFieldIsInvalid"))
+ ignore(GetString("ilAddressOfValueHereIsInvalid"))
+ ignore(GetString("ilCustomMarshallersCannotBeUsedInFSharp"))
+ ignore(GetString("ilMarshalAsAttributeCannotBeDecoded"))
+ ignore(GetString("ilSignatureForExternalFunctionContainsTypeParameters"))
+ ignore(GetString("ilDllImportAttributeCouldNotBeDecoded"))
+ ignore(GetString("ilLiteralFieldsCannotBeSet"))
+ ignore(GetString("ilStaticMethodIsNotLambda"))
+ ignore(GetString("ilMutableVariablesCannotEscapeMethod"))
+ ignore(GetString("ilUnexpectedUnrealizedValue"))
+ ignore(GetString("ilMainModuleEmpty"))
+ ignore(GetString("ilTypeCannotBeUsedForLiteralField"))
+ ignore(GetString("ilUnexpectedGetSetAnnotation"))
+ ignore(GetString("ilFieldOffsetAttributeCouldNotBeDecoded"))
+ ignore(GetString("ilStructLayoutAttributeCouldNotBeDecoded"))
+ ignore(GetString("ilDefaultAugmentationAttributeCouldNotBeDecoded"))
+ ignore(GetString("ilReflectedDefinitionsCannotUseSliceOperator"))
+ ignore(GetString("optsProblemWithCodepage"))
+ ignore(GetString("optsCopyright"))
+ ignore(GetString("optsCopyrightCommunity"))
+ ignore(GetString("optsNameOfOutputFile"))
+ ignore(GetString("optsBuildConsole"))
+ ignore(GetString("optsBuildWindows"))
+ ignore(GetString("optsBuildLibrary"))
+ ignore(GetString("optsBuildModule"))
+ ignore(GetString("optsDelaySign"))
+ ignore(GetString("optsPublicSign"))
+ ignore(GetString("optsWriteXml"))
+ ignore(GetString("optsStrongKeyFile"))
+ ignore(GetString("optsStrongKeyContainer"))
+ ignore(GetString("optsPlatform"))
+ ignore(GetString("optsNoOpt"))
+ ignore(GetString("optsNoInterface"))
+ ignore(GetString("optsSig"))
+ ignore(GetString("optsReference"))
+ ignore(GetString("optsWin32res"))
+ ignore(GetString("optsWin32manifest"))
+ ignore(GetString("optsNowin32manifest"))
+ ignore(GetString("optsEmbedAllSource"))
+ ignore(GetString("optsEmbedSource"))
+ ignore(GetString("optsSourceLink"))
+ ignore(GetString("optsEmbeddedSourceRequirePortablePDBs"))
+ ignore(GetString("optsSourceLinkRequirePortablePDBs"))
+ ignore(GetString("srcFileTooLarge"))
+ ignore(GetString("optsResource"))
+ ignore(GetString("optsLinkresource"))
+ ignore(GetString("optsDebugPM"))
+ ignore(GetString("optsDebug"))
+ ignore(GetString("optsOptimize"))
+ ignore(GetString("optsTailcalls"))
+ ignore(GetString("optsDeterministic"))
+ ignore(GetString("optsCrossoptimize"))
+ ignore(GetString("optsWarnaserrorPM"))
+ ignore(GetString("optsWarnaserror"))
+ ignore(GetString("optsWarn"))
+ ignore(GetString("optsNowarn"))
+ ignore(GetString("optsWarnOn"))
+ ignore(GetString("optsChecked"))
+ ignore(GetString("optsDefine"))
+ ignore(GetString("optsMlcompatibility"))
+ ignore(GetString("optsNologo"))
+ ignore(GetString("optsHelp"))
+ ignore(GetString("optsResponseFile"))
+ ignore(GetString("optsCodepage"))
+ ignore(GetString("optsUtf8output"))
+ ignore(GetString("optsFullpaths"))
+ ignore(GetString("optsLib"))
+ ignore(GetString("optsBaseaddress"))
+ ignore(GetString("optsNoframework"))
+ ignore(GetString("optsStandalone"))
+ ignore(GetString("optsStaticlink"))
+ ignore(GetString("optsResident"))
+ ignore(GetString("optsPdb"))
+ ignore(GetString("optsSimpleresolution"))
+ ignore(GetString("optsUnrecognizedTarget"))
+ ignore(GetString("optsUnrecognizedDebugType"))
+ ignore(GetString("optsInvalidWarningLevel"))
+ ignore(GetString("optsShortFormOf"))
+ ignore(GetString("optsClirootDeprecatedMsg"))
+ ignore(GetString("optsClirootDescription"))
+ ignore(GetString("optsHelpBannerOutputFiles"))
+ ignore(GetString("optsHelpBannerInputFiles"))
+ ignore(GetString("optsHelpBannerResources"))
+ ignore(GetString("optsHelpBannerCodeGen"))
+ ignore(GetString("optsHelpBannerAdvanced"))
+ ignore(GetString("optsHelpBannerMisc"))
+ ignore(GetString("optsHelpBannerLanguage"))
+ ignore(GetString("optsHelpBannerErrsAndWarns"))
+ ignore(GetString("optsUnknownArgumentToTheTestSwitch"))
+ ignore(GetString("optsUnknownPlatform"))
+ ignore(GetString("optsInternalNoDescription"))
+ ignore(GetString("optsDCLONoDescription"))
+ ignore(GetString("optsDCLODeprecatedSuggestAlternative"))
+ ignore(GetString("optsDCLOHtmlDoc"))
+ ignore(GetString("optsConsoleColors"))
+ ignore(GetString("optsUseHighEntropyVA"))
+ ignore(GetString("optsSubSystemVersion"))
+ ignore(GetString("optsTargetProfile"))
+ ignore(GetString("optsEmitDebugInfoInQuotations"))
+ ignore(GetString("optsPreferredUiLang"))
+ ignore(GetString("optsNoCopyFsharpCore"))
+ ignore(GetString("optsInvalidSubSystemVersion"))
+ ignore(GetString("optsInvalidTargetProfile"))
+ ignore(GetString("typeInfoFullName"))
+ ignore(GetString("typeInfoOtherOverloads"))
+ ignore(GetString("typeInfoUnionCase"))
+ ignore(GetString("typeInfoActivePatternResult"))
+ ignore(GetString("typeInfoActiveRecognizer"))
+ ignore(GetString("typeInfoField"))
+ ignore(GetString("typeInfoEvent"))
+ ignore(GetString("typeInfoProperty"))
+ ignore(GetString("typeInfoExtension"))
+ ignore(GetString("typeInfoCustomOperation"))
+ ignore(GetString("typeInfoArgument"))
+ ignore(GetString("typeInfoPatternVariable"))
+ ignore(GetString("typeInfoNamespace"))
+ ignore(GetString("typeInfoModule"))
+ ignore(GetString("typeInfoNamespaceOrModule"))
+ ignore(GetString("typeInfoFromFirst"))
+ ignore(GetString("typeInfoFromNext"))
+ ignore(GetString("typeInfoGeneratedProperty"))
+ ignore(GetString("typeInfoGeneratedType"))
+ ignore(GetString("assemblyResolutionFoundByAssemblyFoldersKey"))
+ ignore(GetString("assemblyResolutionFoundByAssemblyFoldersExKey"))
+ ignore(GetString("assemblyResolutionNetFramework"))
+ ignore(GetString("assemblyResolutionGAC"))
+ ignore(GetString("recursiveClassHierarchy"))
+ ignore(GetString("InvalidRecursiveReferenceToAbstractSlot"))
+ ignore(GetString("eventHasNonStandardType"))
+ ignore(GetString("typeIsNotAccessible"))
+ ignore(GetString("unionCasesAreNotAccessible"))
+ ignore(GetString("valueIsNotAccessible"))
+ ignore(GetString("unionCaseIsNotAccessible"))
+ ignore(GetString("fieldIsNotAccessible"))
+ ignore(GetString("structOrClassFieldIsNotAccessible"))
+ ignore(GetString("experimentalConstruct"))
+ ignore(GetString("noInvokeMethodsFound"))
+ ignore(GetString("moreThanOneInvokeMethodFound"))
+ ignore(GetString("delegatesNotAllowedToHaveCurriedSignatures"))
+ ignore(GetString("tlrUnexpectedTExpr"))
+ ignore(GetString("tlrLambdaLiftingOptimizationsNotApplied"))
+ ignore(GetString("lexhlpIdentifiersContainingAtSymbolReserved"))
+ ignore(GetString("lexhlpIdentifierReserved"))
+ ignore(GetString("patcMissingVariable"))
+ ignore(GetString("patcPartialActivePatternsGenerateOneResult"))
+ ignore(GetString("impTypeRequiredUnavailable"))
+ ignore(GetString("impReferencedTypeCouldNotBeFoundInAssembly"))
+ ignore(GetString("impNotEnoughTypeParamsInScopeWhileImporting"))
+ ignore(GetString("impReferenceToDllRequiredByAssembly"))
+ ignore(GetString("impImportedAssemblyUsesNotPublicType"))
+ ignore(GetString("optValueMarkedInlineButIncomplete"))
+ ignore(GetString("optValueMarkedInlineButWasNotBoundInTheOptEnv"))
+ ignore(GetString("optLocalValueNotFoundDuringOptimization"))
+ ignore(GetString("optValueMarkedInlineHasUnexpectedValue"))
+ ignore(GetString("optValueMarkedInlineCouldNotBeInlined"))
+ ignore(GetString("optFailedToInlineValue"))
+ ignore(GetString("optRecursiveValValue"))
+ ignore(GetString("lexfltIncorrentIndentationOfIn"))
+ ignore(GetString("lexfltTokenIsOffsideOfContextStartedEarlier"))
+ ignore(GetString("lexfltSeparatorTokensOfPatternMatchMisaligned"))
+ ignore(GetString("nrInvalidModuleExprType"))
+ ignore(GetString("nrTypeInstantiationNeededToDisambiguateTypesWithSameName"))
+ ignore(GetString("nrTypeInstantiationIsMissingAndCouldNotBeInferred"))
+ ignore(GetString("nrGlobalUsedOnlyAsFirstName"))
+ ignore(GetString("nrIsNotConstructorOrLiteral"))
+ ignore(GetString("nrUnexpectedEmptyLongId"))
+ ignore(GetString("nrRecordDoesNotContainSuchLabel"))
+ ignore(GetString("nrInvalidFieldLabel"))
+ ignore(GetString("nrInvalidExpression"))
+ ignore(GetString("nrNoConstructorsAvailableForType"))
+ ignore(GetString("nrUnionTypeNeedsQualifiedAccess"))
+ ignore(GetString("nrRecordTypeNeedsQualifiedAccess"))
+ ignore(GetString("ilwriteErrorCreatingPdb"))
+ ignore(GetString("lexOutsideIntegerRange"))
+ ignore(GetString("lexCharNotAllowedInOperatorNames"))
+ ignore(GetString("lexUnexpectedChar"))
+ ignore(GetString("lexByteArrayCannotEncode"))
+ ignore(GetString("lexIdentEndInMarkReserved"))
+ ignore(GetString("lexOutsideEightBitSigned"))
+ ignore(GetString("lexOutsideEightBitSignedHex"))
+ ignore(GetString("lexOutsideEightBitUnsigned"))
+ ignore(GetString("lexOutsideSixteenBitSigned"))
+ ignore(GetString("lexOutsideSixteenBitUnsigned"))
+ ignore(GetString("lexOutsideThirtyTwoBitSigned"))
+ ignore(GetString("lexOutsideThirtyTwoBitUnsigned"))
+ ignore(GetString("lexOutsideSixtyFourBitSigned"))
+ ignore(GetString("lexOutsideSixtyFourBitUnsigned"))
+ ignore(GetString("lexOutsideNativeSigned"))
+ ignore(GetString("lexOutsideNativeUnsigned"))
+ ignore(GetString("lexInvalidFloat"))
+ ignore(GetString("lexOusideDecimal"))
+ ignore(GetString("lexOusideThirtyTwoBitFloat"))
+ ignore(GetString("lexInvalidNumericLiteral"))
+ ignore(GetString("lexInvalidByteLiteral"))
+ ignore(GetString("lexInvalidCharLiteral"))
+ ignore(GetString("lexThisUnicodeOnlyInStringLiterals"))
+ ignore(GetString("lexTokenReserved"))
+ ignore(GetString("lexTabsNotAllowed"))
+ ignore(GetString("lexInvalidLineNumber"))
+ ignore(GetString("lexHashIfMustBeFirst"))
+ ignore(GetString("lexHashElseNoMatchingIf"))
+ ignore(GetString("lexHashEndifRequiredForElse"))
+ ignore(GetString("lexHashElseMustBeFirst"))
+ ignore(GetString("lexHashEndingNoMatchingIf"))
+ ignore(GetString("lexHashEndifMustBeFirst"))
+ ignore(GetString("lexHashIfMustHaveIdent"))
+ ignore(GetString("lexWrongNestedHashEndif"))
+ ignore(GetString("lexHashBangMustBeFirstInFile"))
+ ignore(GetString("pplexExpectedSingleLineComment"))
+ ignore(GetString("memberOperatorDefinitionWithNoArguments"))
+ ignore(GetString("memberOperatorDefinitionWithNonPairArgument"))
+ ignore(GetString("memberOperatorDefinitionWithCurriedArguments"))
+ ignore(GetString("tcFSharpCoreRequiresExplicit"))
+ ignore(GetString("tcStructuralComparisonNotSatisfied1"))
+ ignore(GetString("tcStructuralComparisonNotSatisfied2"))
+ ignore(GetString("tcNoComparisonNeeded1"))
+ ignore(GetString("tcNoComparisonNeeded2"))
+ ignore(GetString("tcNoEqualityNeeded1"))
+ ignore(GetString("tcNoEqualityNeeded2"))
+ ignore(GetString("tcStructuralEqualityNotSatisfied1"))
+ ignore(GetString("tcStructuralEqualityNotSatisfied2"))
+ ignore(GetString("tcStructsMustDeclareTypesOfImplicitCtorArgsExplicitly"))
+ ignore(GetString("chkUnusedValue"))
+ ignore(GetString("chkUnusedThisVariable"))
+ ignore(GetString("parsGetterAtMostOneArgument"))
+ ignore(GetString("parsSetterAtMostTwoArguments"))
+ ignore(GetString("parsInvalidProperty"))
+ ignore(GetString("parsIndexerPropertyRequiresAtLeastOneArgument"))
+ ignore(GetString("tastInvalidAddressOfMutableAcrossAssemblyBoundary"))
+ ignore(GetString("parsNonAdjacentTypars"))
+ ignore(GetString("parsNonAdjacentTyargs"))
+ ignore(GetString("parsNonAtomicType"))
+ ignore(GetString("tastUndefinedItemRefModuleNamespace"))
+ ignore(GetString("tastUndefinedItemRefVal"))
+ ignore(GetString("tastUndefinedItemRefModuleNamespaceType"))
+ ignore(GetString("tcInvalidUseNullAsTrueValue"))
+ ignore(GetString("tcParameterInferredByref"))
+ ignore(GetString("tcNonUniformMemberUse"))
+ ignore(GetString("tcAttribArgsDiffer"))
+ ignore(GetString("tcCannotCallAbstractBaseMember"))
+ ignore(GetString("typrelCannotResolveAmbiguityInUnmanaged"))
+ ignore(GetString("mlCompatMessage"))
+ ignore(GetString("ilFieldDoesNotHaveValidOffsetForStructureLayout"))
+ ignore(GetString("tcInterfacesShouldUseInheritNotInterface"))
+ ignore(GetString("parsInvalidPrefixOperator"))
+ ignore(GetString("parsInvalidPrefixOperatorDefinition"))
+ ignore(GetString("buildCompilingExtensionIsForML"))
+ ignore(GetString("lexIndentOffForML"))
+ ignore(GetString("activePatternIdentIsNotFunctionTyped"))
+ ignore(GetString("activePatternChoiceHasFreeTypars"))
+ ignore(GetString("ilFieldHasOffsetForSequentialLayout"))
+ ignore(GetString("tcOptionalArgsMustComeAfterNonOptionalArgs"))
+ ignore(GetString("tcConditionalAttributeUsage"))
+ ignore(GetString("tcMemberOperatorDefinitionInExtrinsic"))
+ ignore(GetString("ilwriteMDBFileNameCannotBeChangedWarning"))
+ ignore(GetString("ilwriteMDBMemberMissing"))
+ ignore(GetString("ilwriteErrorCreatingMdb"))
+ ignore(GetString("tcUnionCaseNameConflictsWithGeneratedType"))
+ ignore(GetString("chkNoReflectedDefinitionOnStructMember"))
+ ignore(GetString("tcDllImportNotAllowed"))
+ ignore(GetString("buildExplicitCoreLibRequiresNoFramework"))
+ ignore(GetString("buildExpectedSigdataFile"))
+ ignore(GetString("buildExpectedFileAlongSideFSharpCore"))
+ ignore(GetString("buildUnexpectedFileNameCharacter"))
+ ignore(GetString("tcInvalidUseBangBinding"))
+ ignore(GetString("crefNoInnerGenericsInQuotations"))
+ ignore(GetString("tcEnumTypeCannotBeEnumerated"))
+ ignore(GetString("parsEofInTripleQuoteString"))
+ ignore(GetString("parsEofInTripleQuoteStringInComment"))
+ ignore(GetString("tcTypeTestLosesMeasures"))
+ ignore(GetString("parsMissingTypeArgs"))
+ ignore(GetString("parsMissingGreaterThan"))
+ ignore(GetString("parsUnexpectedQuotationOperatorInTypeAliasDidYouMeanVerbatimString"))
+ ignore(GetString("parsErrorParsingAsOperatorName"))
+ ignore(GetString("lexInvalidUnicodeLiteral"))
+ ignore(GetString("tcCallerInfoWrongType"))
+ ignore(GetString("tcCallerInfoNotOptional"))
+ ignore(GetString("toolLocationHelperUnsupportedFrameworkVersion"))
+ ignore(GetString("ilSignInvalidMagicValue"))
+ ignore(GetString("ilSignBadImageFormat"))
+ ignore(GetString("ilSignPrivateKeyExpected"))
+ ignore(GetString("ilSignRsaKeyExpected"))
+ ignore(GetString("ilSignInvalidBitLen"))
+ ignore(GetString("ilSignInvalidRSAParams"))
+ ignore(GetString("ilSignInvalidAlgId"))
+ ignore(GetString("ilSignInvalidSignatureSize"))
+ ignore(GetString("ilSignNoSignatureDirectory"))
+ ignore(GetString("ilSignInvalidPKBlob"))
+ ignore(GetString("fscTooManyErrors"))
+ ignore(GetString("docfileNoXmlSuffix"))
+ ignore(GetString("fscNoImplementationFiles"))
+ ignore(GetString("fscBadAssemblyVersion"))
+ ignore(GetString("fscTwoResourceManifests"))
+ ignore(GetString("fscQuotationLiteralsStaticLinking"))
+ ignore(GetString("fscQuotationLiteralsStaticLinking0"))
+ ignore(GetString("fscStaticLinkingNoEXE"))
+ ignore(GetString("fscStaticLinkingNoMixedDLL"))
+ ignore(GetString("fscIgnoringMixedWhenLinking"))
+ ignore(GetString("fscAssumeStaticLinkContainsNoDependencies"))
+ ignore(GetString("fscAssemblyNotFoundInDependencySet"))
+ ignore(GetString("fscKeyFileCouldNotBeOpened"))
+ ignore(GetString("fscProblemWritingBinary"))
+ ignore(GetString("fscAssemblyVersionAttributeIgnored"))
+ ignore(GetString("fscAssemblyCultureAttributeError"))
+ ignore(GetString("fscDelaySignWarning"))
+ ignore(GetString("fscKeyFileWarning"))
+ ignore(GetString("fscKeyNameWarning"))
+ ignore(GetString("fscReferenceOnCommandLine"))
+ ignore(GetString("fscRemotingError"))
+ ignore(GetString("pathIsInvalid"))
+ ignore(GetString("fscResxSourceFileDeprecated"))
+ ignore(GetString("fscStaticLinkingNoProfileMismatches"))
+ ignore(GetString("fscAssemblyWildcardAndDeterminism"))
+ ignore(GetString("fscDeterministicDebugRequiresPortablePdb"))
+ ignore(GetString("etIllegalCharactersInNamespaceName"))
+ ignore(GetString("etNullOrEmptyMemberName"))
+ ignore(GetString("etNullMember"))
+ ignore(GetString("etNullMemberDeclaringType"))
+ ignore(GetString("etNullMemberDeclaringTypeDifferentFromProvidedType"))
+ ignore(GetString("etHostingAssemblyFoundWithoutHosts"))
+ ignore(GetString("etEmptyNamespaceOfTypeNotAllowed"))
+ ignore(GetString("etEmptyNamespaceNotAllowed"))
+ ignore(GetString("etMustNotBeGeneric"))
+ ignore(GetString("etMustNotBeAnArray"))
+ ignore(GetString("etMethodHasRequirements"))
+ ignore(GetString("etUnsupportedMemberKind"))
+ ignore(GetString("etPropertyCanReadButHasNoGetter"))
+ ignore(GetString("etPropertyHasGetterButNoCanRead"))
+ ignore(GetString("etPropertyCanWriteButHasNoSetter"))
+ ignore(GetString("etPropertyHasSetterButNoCanWrite"))
+ ignore(GetString("etOneOrMoreErrorsSeenDuringExtensionTypeSetting"))
+ ignore(GetString("etUnexpectedExceptionFromProvidedTypeMember"))
+ ignore(GetString("etUnsupportedConstantType"))
+ ignore(GetString("etUnsupportedProvidedExpression"))
+ ignore(GetString("etProvidedTypeHasUnexpectedName"))
+ ignore(GetString("etEventNoAdd"))
+ ignore(GetString("etEventNoRemove"))
+ ignore(GetString("etProviderHasWrongDesignerAssembly"))
+ ignore(GetString("etProviderDoesNotHaveValidConstructor"))
+ ignore(GetString("etProviderError"))
+ ignore(GetString("etIncorrectParameterExpression"))
+ ignore(GetString("etIncorrectProvidedMethod"))
+ ignore(GetString("etIncorrectProvidedConstructor"))
+ ignore(GetString("etDirectReferenceToGeneratedTypeNotAllowed"))
+ ignore(GetString("etProvidedTypeHasUnexpectedPath"))
+ ignore(GetString("etUnexpectedNullFromProvidedTypeMember"))
+ ignore(GetString("etUnexpectedExceptionFromProvidedMemberMember"))
+ ignore(GetString("etNestedProvidedTypesDoNotTakeStaticArgumentsOrGenericParameters"))
+ ignore(GetString("etInvalidStaticArgument"))
+ ignore(GetString("etErrorApplyingStaticArgumentsToType"))
+ ignore(GetString("etUnknownStaticArgumentKind"))
+ ignore(GetString("invalidNamespaceForProvidedType"))
+ ignore(GetString("invalidFullNameForProvidedType"))
+ ignore(GetString("etProviderReturnedNull"))
+ ignore(GetString("etTypeProviderConstructorException"))
+ ignore(GetString("etNullProvidedExpression"))
+ ignore(GetString("etProvidedAppliedTypeHadWrongName"))
+ ignore(GetString("etProvidedAppliedMethodHadWrongName"))
+ ignore(GetString("tcTypeTestLossy"))
+ ignore(GetString("tcTypeCastErased"))
+ ignore(GetString("tcTypeTestErased"))
+ ignore(GetString("tcCannotInheritFromErasedType"))
+ ignore(GetString("etInvalidTypeProviderAssemblyName"))
+ ignore(GetString("tcInvalidMemberNameCtor"))
+ ignore(GetString("tcInferredGenericTypeGivesRiseToInconsistency"))
+ ignore(GetString("tcInvalidTypeArgumentCount"))
+ ignore(GetString("tcCannotOverrideSealedMethod"))
+ ignore(GetString("etProviderErrorWithContext"))
+ ignore(GetString("etProvidedTypeWithNameException"))
+ ignore(GetString("etProvidedTypeWithNullOrEmptyName"))
+ ignore(GetString("etIllegalCharactersInTypeName"))
+ ignore(GetString("tcJoinMustUseSimplePattern"))
+ ignore(GetString("tcMissingCustomOperation"))
+ ignore(GetString("etBadUnnamedStaticArgs"))
+ ignore(GetString("etStaticParameterRequiresAValue"))
+ ignore(GetString("etNoStaticParameterWithName"))
+ ignore(GetString("etStaticParameterAlreadyHasValue"))
+ ignore(GetString("etMultipleStaticParameterWithName"))
+ ignore(GetString("tcCustomOperationMayNotBeUsedInConjunctionWithNonSimpleLetBindings"))
+ ignore(GetString("tcCustomOperationMayNotBeUsedHere"))
+ ignore(GetString("tcCustomOperationMayNotBeOverloaded"))
+ ignore(GetString("tcIfThenElseMayNotBeUsedWithinQueries"))
+ ignore(GetString("ilxgenUnexpectedArgumentToMethodHandleOfDuringCodegen"))
+ ignore(GetString("etProvidedTypeReferenceMissingArgument"))
+ ignore(GetString("etProvidedTypeReferenceInvalidText"))
+ ignore(GetString("tcCustomOperationNotUsedCorrectly"))
+ ignore(GetString("tcCustomOperationNotUsedCorrectly2"))
+ ignore(GetString("customOperationTextLikeJoin"))
+ ignore(GetString("customOperationTextLikeGroupJoin"))
+ ignore(GetString("customOperationTextLikeZip"))
+ ignore(GetString("tcBinaryOperatorRequiresVariable"))
+ ignore(GetString("tcOperatorIncorrectSyntax"))
+ ignore(GetString("tcBinaryOperatorRequiresBody"))
+ ignore(GetString("tcCustomOperationHasIncorrectArgCount"))
+ ignore(GetString("parsExpectedExpressionAfterToken"))
+ ignore(GetString("parsExpectedTypeAfterToken"))
+ ignore(GetString("parsUnmatchedLBrackLess"))
+ ignore(GetString("parsUnexpectedEndOfFileMatch"))
+ ignore(GetString("parsUnexpectedEndOfFileTry"))
+ ignore(GetString("parsUnexpectedEndOfFileWhile"))
+ ignore(GetString("parsUnexpectedEndOfFileFor"))
+ ignore(GetString("parsUnexpectedEndOfFileWith"))
+ ignore(GetString("parsUnexpectedEndOfFileThen"))
+ ignore(GetString("parsUnexpectedEndOfFileElse"))
+ ignore(GetString("parsUnexpectedEndOfFileFunBody"))
+ ignore(GetString("parsUnexpectedEndOfFileTypeArgs"))
+ ignore(GetString("parsUnexpectedEndOfFileTypeSignature"))
+ ignore(GetString("parsUnexpectedEndOfFileTypeDefinition"))
+ ignore(GetString("parsUnexpectedEndOfFileObjectMembers"))
+ ignore(GetString("parsUnexpectedEndOfFileDefinition"))
+ ignore(GetString("parsUnexpectedEndOfFileExpression"))
+ ignore(GetString("parsExpectedNameAfterToken"))
+ ignore(GetString("parsUnmatchedLet"))
+ ignore(GetString("parsUnmatchedLetBang"))
+ ignore(GetString("parsUnmatchedUseBang"))
+ ignore(GetString("parsUnmatchedUse"))
+ ignore(GetString("parsWhileDoExpected"))
+ ignore(GetString("parsForDoExpected"))
+ ignore(GetString("tcInvalidRelationInJoin"))
+ ignore(GetString("typeInfoCallsWord"))
+ ignore(GetString("impInvalidNumberOfGenericArguments"))
+ ignore(GetString("impInvalidMeasureArgument1"))
+ ignore(GetString("impInvalidMeasureArgument2"))
+ ignore(GetString("etPropertyNeedsCanWriteOrCanRead"))
+ ignore(GetString("tcIntoNeedsRestOfQuery"))
+ ignore(GetString("tcOperatorDoesntAcceptInto"))
+ ignore(GetString("tcCustomOperationInvalid"))
+ ignore(GetString("tcThisTypeMayNotHaveACLIMutableAttribute"))
+ ignore(GetString("tcAutoPropertyRequiresImplicitConstructionSequence"))
+ ignore(GetString("parsMutableOnAutoPropertyShouldBeGetSet"))
+ ignore(GetString("parsMutableOnAutoPropertyShouldBeGetSetNotJustSet"))
+ ignore(GetString("chkNoByrefsOfByrefs"))
+ ignore(GetString("tastopsMaxArrayThirtyTwo"))
+ ignore(GetString("tcNoIntegerForLoopInQuery"))
+ ignore(GetString("tcNoWhileInQuery"))
+ ignore(GetString("tcNoTryFinallyInQuery"))
+ ignore(GetString("tcUseMayNotBeUsedInQueries"))
+ ignore(GetString("tcBindMayNotBeUsedInQueries"))
+ ignore(GetString("tcReturnMayNotBeUsedInQueries"))
+ ignore(GetString("tcUnrecognizedQueryOperator"))
+ ignore(GetString("tcTryWithMayNotBeUsedInQueries"))
+ ignore(GetString("tcNonSimpleLetBindingInQuery"))
+ ignore(GetString("etTooManyStaticParameters"))
+ ignore(GetString("infosInvalidProvidedLiteralValue"))
+ ignore(GetString("invalidPlatformTarget"))
+ ignore(GetString("tcThisValueMayNotBeInlined"))
+ ignore(GetString("etErasedTypeUsedInGeneration"))
+ ignore(GetString("tcUnrecognizedQueryBinaryOperator"))
+ ignore(GetString("crefNoSetOfHole"))
+ ignore(GetString("nicePrintOtherOverloads1"))
+ ignore(GetString("nicePrintOtherOverloadsN"))
+ ignore(GetString("erasedTo"))
+ ignore(GetString("parsUnfinishedExpression"))
+ ignore(GetString("parsAttributeOnIncompleteCode"))
+ ignore(GetString("parsTypeNameCannotBeEmpty"))
+ ignore(GetString("buildProblemReadingAssembly"))
+ ignore(GetString("tcTPFieldMustBeLiteral"))
+ ignore(GetString("loadingDescription"))
+ ignore(GetString("descriptionUnavailable"))
+ ignore(GetString("chkTyparMultipleClassConstraints"))
+ ignore(GetString("tcMatchMayNotBeUsedWithQuery"))
+ ignore(GetString("memberOperatorDefinitionWithNonTripleArgument"))
+ ignore(GetString("cannotResolveNullableOperators"))
+ ignore(GetString("tcOperatorRequiresIn"))
+ ignore(GetString("parsIllegalMemberVarInObjectImplementation"))
+ ignore(GetString("tcEmptyCopyAndUpdateRecordInvalid"))
+ ignore(GetString("parsUnderscoreInvalidFieldName"))
+ ignore(GetString("tcGeneratedTypesShouldBeInternalOrPrivate"))
+ ignore(GetString("chkGetterAndSetterHaveSamePropertyType"))
+ ignore(GetString("tcRuntimeSuppliedMethodCannotBeUsedInUserCode"))
+ ignore(GetString("tcUnionCaseConstructorDoesNotHaveFieldWithGivenName"))
+ ignore(GetString("tcUnionCaseFieldCannotBeUsedMoreThanOnce"))
+ ignore(GetString("tcFieldNameIsUsedModeThanOnce"))
+ ignore(GetString("tcFieldNameConflictsWithGeneratedNameForAnonymousField"))
+ ignore(GetString("tastConstantExpressionOverflow"))
+ ignore(GetString("tcIllegalStructTypeForConstantExpression"))
+ ignore(GetString("fscSystemRuntimeInteropServicesIsRequired"))
+ ignore(GetString("abImplicitHeapAllocation"))
+ ignore(GetString("estApplyStaticArgumentsForMethodNotImplemented"))
+ ignore(GetString("etErrorApplyingStaticArgumentsToMethod"))
+ ignore(GetString("pplexUnexpectedChar"))
+ ignore(GetString("ppparsUnexpectedToken"))
+ ignore(GetString("ppparsIncompleteExpression"))
+ ignore(GetString("ppparsMissingToken"))
+ ignore(GetString("pickleMissingDefinition"))
+ ignore(GetString("checkNotSufficientlyGenericBecauseOfScope"))
+ ignore(GetString("checkNotSufficientlyGenericBecauseOfScopeAnon"))
+ ignore(GetString("checkRaiseFamilyFunctionArgumentCount"))
+ ignore(GetString("checkLowercaseLiteralBindingInPattern"))
+ ignore(GetString("tcLiteralDoesNotTakeArguments"))
+ ignore(GetString("tcConstructorsIllegalInAugmentation"))
+ ignore(GetString("optsInvalidResponseFile"))
+ ignore(GetString("optsResponseFileNotFound"))
+ ignore(GetString("optsResponseFileNameInvalid"))
+ ignore(GetString("fsharpCoreNotFoundToBeCopied"))
+ ignore(GetString("tcTupleStructMismatch"))
+ ignore(GetString("etMissingStaticArgumentsToMethod"))
+ ignore(GetString("considerUpcast"))
+ ignore(GetString("considerUpcastOperator"))
+ ignore(GetString("tcRecImplied"))
+ ignore(GetString("tcOpenFirstInMutRec"))
+ ignore(GetString("tcModuleAbbrevFirstInMutRec"))
+ ignore(GetString("tcUnsupportedMutRecDecl"))
+ ignore(GetString("parsInvalidUseOfRec"))
+ ignore(GetString("tcStructUnionMultiCaseDistinctFields"))
+ ignore(GetString("CallerMemberNameIsOverriden"))
+ ignore(GetString("tcFixedNotAllowed"))
+ ignore(GetString("tcCouldNotFindOffsetToStringData"))
+ ignore(GetString("chkNoByrefReturnOfLocal"))
+ ignore(GetString("tcNamedActivePattern"))
+ ignore(GetString("DefaultParameterValueNotAppropriateForArgument"))
+ ignore(GetString("tcGlobalsSystemTypeNotFound"))
+ ignore(GetString("typrelMemberHasMultiplePossibleDispatchSlots"))
+ ignore(GetString("methodIsNotStatic"))
+ ignore(GetString("parsUnexpectedSymbolEqualsInsteadOfIn"))
+ ignore(GetString("keywordDescriptionAbstract"))
+ ignore(GetString("keyworkDescriptionAnd"))
+ ignore(GetString("keywordDescriptionAs"))
+ ignore(GetString("keywordDescriptionAssert"))
+ ignore(GetString("keywordDescriptionBase"))
+ ignore(GetString("keywordDescriptionBegin"))
+ ignore(GetString("keywordDescriptionClass"))
+ ignore(GetString("keywordDescriptionDefault"))
+ ignore(GetString("keywordDescriptionDelegate"))
+ ignore(GetString("keywordDescriptionDo"))
+ ignore(GetString("keywordDescriptionDone"))
+ ignore(GetString("keywordDescriptionDowncast"))
+ ignore(GetString("keywordDescriptionDownto"))
+ ignore(GetString("keywordDescriptionElif"))
+ ignore(GetString("keywordDescriptionElse"))
+ ignore(GetString("keywordDescriptionEnd"))
+ ignore(GetString("keywordDescriptionException"))
+ ignore(GetString("keywordDescriptionExtern"))
+ ignore(GetString("keywordDescriptionTrueFalse"))
+ ignore(GetString("keywordDescriptionFinally"))
+ ignore(GetString("keywordDescriptionFor"))
+ ignore(GetString("keywordDescriptionFun"))
+ ignore(GetString("keywordDescriptionFunction"))
+ ignore(GetString("keywordDescriptionGlobal"))
+ ignore(GetString("keywordDescriptionIf"))
+ ignore(GetString("keywordDescriptionIn"))
+ ignore(GetString("keywordDescriptionInherit"))
+ ignore(GetString("keywordDescriptionInline"))
+ ignore(GetString("keywordDescriptionInterface"))
+ ignore(GetString("keywordDescriptionInternal"))
+ ignore(GetString("keywordDescriptionLazy"))
+ ignore(GetString("keywordDescriptionLet"))
+ ignore(GetString("keywordDescriptionLetBang"))
+ ignore(GetString("keywordDescriptionMatch"))
+ ignore(GetString("keywordDescriptionMember"))
+ ignore(GetString("keywordDescriptionModule"))
+ ignore(GetString("keywordDescriptionMutable"))
+ ignore(GetString("keywordDescriptionNamespace"))
+ ignore(GetString("keywordDescriptionNew"))
+ ignore(GetString("keywordDescriptionNot"))
+ ignore(GetString("keywordDescriptionNull"))
+ ignore(GetString("keywordDescriptionOf"))
+ ignore(GetString("keywordDescriptionOpen"))
+ ignore(GetString("keywordDescriptionOr"))
+ ignore(GetString("keywordDescriptionOverride"))
+ ignore(GetString("keywordDescriptionPrivate"))
+ ignore(GetString("keywordDescriptionPublic"))
+ ignore(GetString("keywordDescriptionRec"))
+ ignore(GetString("keywordDescriptionReturn"))
+ ignore(GetString("keywordDescriptionReturnBang"))
+ ignore(GetString("keywordDescriptionSelect"))
+ ignore(GetString("keywordDescriptionStatic"))
+ ignore(GetString("keywordDescriptionStruct"))
+ ignore(GetString("keywordDescriptionThen"))
+ ignore(GetString("keywordDescriptionTo"))
+ ignore(GetString("keywordDescriptionTry"))
+ ignore(GetString("keywordDescriptionType"))
+ ignore(GetString("keywordDescriptionUpcast"))
+ ignore(GetString("keywordDescriptionUse"))
+ ignore(GetString("keywordDescriptionUseBang"))
+ ignore(GetString("keywordDescriptionVal"))
+ ignore(GetString("keywordDescriptionVoid"))
+ ignore(GetString("keywordDescriptionWhen"))
+ ignore(GetString("keywordDescriptionWhile"))
+ ignore(GetString("keywordDescriptionWith"))
+ ignore(GetString("keywordDescriptionYield"))
+ ignore(GetString("keywordDescriptionYieldBang"))
+ ignore(GetString("keywordDescriptionRightArrow"))
+ ignore(GetString("keywordDescriptionLeftArrow"))
+ ignore(GetString("keywordDescriptionCast"))
+ ignore(GetString("keywordDescriptionDynamicCast"))
+ ignore(GetString("keywordDescriptionTypedQuotation"))
+ ignore(GetString("keywordDescriptionUntypedQuotation"))
+ ignore(GetString("itemNotFoundDuringDynamicCodeGen"))
+ ignore(GetString("itemNotFoundInTypeDuringDynamicCodeGen"))
+ ignore(GetString("descriptionWordIs"))
+ ignore(GetString("notAFunction"))
+ ignore(GetString("notAFunctionButMaybeIndexerWithName"))
+ ignore(GetString("notAFunctionButMaybeIndexer"))
+ ignore(GetString("notAFunctionButMaybeIndexerErrorCode"))
+ ignore(GetString("notAFunctionButMaybeDeclaration"))
+ ignore(GetString("ArgumentsInSigAndImplMismatch"))
+ ignore(GetString("pickleUnexpectedNonZero"))
+ ()
diff --git a/src/buildfromsource/FSharp.Compiler.Private/FSComp.resx b/src/buildfromsource/FSharp.Compiler.Private/FSComp.resx
new file mode 100644
index 000000000..71f965fc9
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Private/FSComp.resx
@@ -0,0 +1,4306 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ The namespace '{0}' is not defined.
+
+
+ The namespace or module '{0}' is not defined.
+
+
+ The field, constructor or member '{0}' is not defined.
+
+
+ The value, constructor, namespace or type '{0}' is not defined.
+
+
+ The value or constructor '{0}' is not defined.
+
+
+ The value, namespace, type or module '{0}' is not defined.
+
+
+ The constructor, module or namespace '{0}' is not defined.
+
+
+ The type '{0}' is not defined.
+
+
+ The type '{0}' is not defined in '{1}'.
+
+
+ The record label or namespace '{0}' is not defined.
+
+
+ The record label '{0}' is not defined.
+
+
+ Maybe you want one of the following:
+
+
+ The type parameter {0} is not defined.
+
+
+ The pattern discriminator '{0}' is not defined.
+
+
+ Replace with '{0}'
+
+
+ Add . for indexer access.
+
+
+ All elements of a list constructor expression must have the same type. This expression was expected to have type '{0}', but here has type '{1}'.
+
+
+ All elements of an array constructor expression must have the same type. This expression was expected to have type '{0}', but here has type '{1}'.
+
+
+ The 'if' expression is missing an 'else' branch. The 'then' branch has type '{0}'. Because 'if' is an expression, and not a statement, add an 'else' branch which returns a value of the same type.
+
+
+ The 'if' expression needs to have type '{0}' to satisfy context type requirements. It currently has type '{1}'.
+
+
+ All branches of an 'if' expression must have the same type. This expression was expected to have type '{0}', but here has type '{1}'.
+
+
+ All branches of a pattern match expression must have the same type. This expression was expected to have type '{0}', but here has type '{1}'.
+
+
+ A pattern match guard must be of type 'bool', but this 'when' expression is of type '{0}'.
+
+
+ A ';' is used to separate field values in records. Consider replacing ',' with ';'.
+
+
+ The '!' operator is used to dereference a ref cell. Consider using 'not expr' here.
+
+
+ The non-generic type '{0}' does not expect any type arguments, but here is given {1} type argument(s)
+
+
+ Consider using 'return!' instead of 'return'.
+
+
+ Consider using 'yield!' instead of 'yield'.
+
+
+ \nA tuple type is required for one or more arguments. Consider wrapping the given arguments in additional parentheses or review the definition of the interface.
+
+
+ Invalid warning number '{0}'
+
+
+ Invalid version string '{0}'
+
+
+ Invalid version file '{0}'
+
+
+ Microsoft (R) F# Compiler version {0}
+
+
+ F# Compiler for F# {0}
+
+
+ Problem with filename '{0}': {1}
+
+
+ No inputs specified
+
+
+ The '--pdb' option requires the '--debug' option to be used
+
+
+ The search directory '{0}' is invalid
+
+
+ The search directory '{0}' could not be found
+
+
+ '{0}' is not a valid filename
+
+
+ '{0}' is not a valid assembly name
+
+
+ Unrecognized privacy setting '{0}' for managed resource, valid options are 'public' and 'private'
+
+
+ Multiple references to '{0}.dll' are not permitted
+
+
+ Could not read version from mscorlib.dll
+
+
+ Unable to read assembly '{0}'
+
+
+ Assembly resolution failure at or near this location
+
+
+ The declarations in this file will be placed in an implicit module '{0}' based on the file name '{1}'. However this is not a valid F# identifier, so the contents will not be accessible from other files. Consider renaming the file or adding a 'module' or 'namespace' declaration at the top of the file.
+
+
+ Files in libraries or multiple-file applications must begin with a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule'. Only the last source file of an application may omit such a declaration.
+
+
+ Files in libraries or multiple-file applications must begin with a namespace or module declaration. When using a module declaration at the start of a file the '=' sign is not allowed. If this is a top-level module, consider removing the = to resolve this error.
+
+
+ This file contains multiple declarations of the form 'module SomeNamespace.SomeModule'. Only one declaration of this form is permitted in a file. Change your file to use an initial namespace declaration and/or use 'module ModuleName = ...' to define your modules.
+
+
+ Option requires parameter: {0}
+
+
+ Source file '{0}' could not be found
+
+
+ The file extension of '{0}' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli.
+
+
+ Could not resolve assembly '{0}'
+
+
+ Could not resolve assembly '{0}' required by '{1}'
+
+
+ Error opening binary file '{0}': {1}
+
+
+ The F#-compiled DLL '{0}' needs to be recompiled to be used with this version of F#
+
+
+ Invalid directive. Expected '#I \"<path>\"'.
+
+
+ Invalid directive. Expected '#r \"<file-or-assembly>\"'.
+
+
+ Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'.
+
+
+ Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'.
+
+
+ Directives inside modules are ignored
+
+
+ A signature for the file or module '{0}' has already been specified
+
+
+ An implementation of file or module '{0}' has already been given. Compilation order is significant in F# because of type inference. You may need to adjust the order of your files to place the signature file before the implementation. In Visual Studio files are type-checked in the order they appear in the project file, which can be edited manually or adjusted using the solution explorer.
+
+
+ An implementation of the file or module '{0}' has already been given
+
+
+ The signature file '{0}' does not have a corresponding implementation file. If an implementation file exists then check the 'module' and 'namespace' declarations in the signature and implementation files match.
+
+
+ '{0}' is not a valid integer argument
+
+
+ '{0}' is not a valid floating point argument
+
+
+ Unrecognized option: '{0}'
+
+
+ Invalid module or namespace name
+
+
+ Error reading/writing metadata for the F# compiled DLL '{0}'. Was the DLL compiled with an earlier version of the F# compiler? (error: '{1}').
+
+
+ The type/module '{0}' is not a concrete module or type
+
+
+ The type '{0}' has an inline assembly code representation
+
+
+ A namespace and a module named '{0}' both occur in two parts of this assembly
+
+
+ Two modules named '{0}' occur in two parts of this assembly
+
+
+ Two type definitions named '{0}' occur in namespace '{1}' in two parts of this assembly
+
+
+ A module and a type definition named '{0}' occur in namespace '{1}' in two parts of this assembly
+
+
+ Invalid member signature encountered because of an earlier error
+
+
+ This value does not have a valid property setter type
+
+
+ Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax.
+
+
+ Invalid form for a property setter. At least one argument is required.
+
+
+ Unexpected use of a byref-typed variable
+
+
+ A value must be mutable in order to mutate the contents or take the address of a value type, e.g. 'let mutable x = ...'
+
+
+ Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'.
+
+
+ The value has been copied to ensure the original is not mutated by this operation or because the copy is implicit when returning a struct from a member and another member is then accessed
+
+
+ Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding
+
+
+ Recursive values cannot appear directly as a construction of the type '{0}' within a recursive binding. This feature has been removed from the F# language. Consider using a record instead.
+
+
+ Recursive values cannot be directly assigned to the non-mutable field '{0}' of the type '{1}' within a recursive binding. Consider using a mutable field instead.
+
+
+ Unexpected decode of AutoOpenAttribute
+
+
+ Unexpected decode of InternalsVisibleToAttribute
+
+
+ Unexpected decode of InterfaceDataVersionAttribute
+
+
+ Active patterns cannot return more than 7 possibilities
+
+
+ This is not a valid constant expression or custom attribute value
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe mutability attributes differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe names differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled names differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe display names differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe accessibility specified in the signature is more than that specified in the implementation
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe inline flags differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe literal constant values and/or attributes differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a type function and the other is not. The signature requires explicit type parameters if they are present in the implementation.
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe respective type parameter counts differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe types differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is an extension member and the other is not
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nAn arity was not inferred for this value
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe number of generic parameters in the signature and implementation differ (the signature declares {3} but the implementation declares {4}
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe generic parameters in the signature and implementation have different kinds. Perhaps there is a missing [<Measure>] attribute.
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe arities in the signature and implementation differ. The signature specifies that '{3}' is function definition or lambda expression accepting at least {4} argument(s), but the implementation is a computed function value. To declare that a computed function value is a permitted implementation simply parenthesize its type in the signature, e.g.\n\tval {5}: int -> (int -> int)\ninstead of\n\tval {6}: int -> int -> int.
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe CLI member names differ
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is static and the other isn't
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is virtual and the other isn't
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is abstract and the other isn't
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is final and the other isn't
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is marked as an override and the other isn't
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nOne is a constructor/property and the other is not
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as a static member but the signature indicates its compiled representation is as an instance member
+
+
+ Module '{0}' contains\n {1} \nbut its signature specifies\n {2} \nThe compiled representation of this method is as an instance member, but the signature indicates its compiled representation is as a static member
+
+
+ The {0} definitions in the signature and implementation are not compatible because the names differ. The type is called '{1}' in the signature file but '{2}' in implementation.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the respective type parameter counts differ
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the accessibility specified in the signature is more than that specified in the implementation
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature requires that the type supports the interface {2} but the interface has not been implemented
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation says this type may use nulls as a representation but the signature does not
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation says this type may use nulls as an extra value but the signature does not
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature says this type may use nulls as a representation but the implementation does not
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature says this type may use nulls as an extra value but the implementation does not
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation type is sealed but the signature implies it is not. Consider adding the [<Sealed>] attribute to the signature.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation type is not sealed but signature implies it is. Consider adding the [<Sealed>] attribute to the implementation.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation is an abstract class but the signature is not. Consider adding the [<AbstractClass>] attribute to the signature.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature is an abstract class but the implementation is not. Consider adding the [<AbstractClass>] attribute to the implementation.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the types have different base types
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the number of {2}s differ
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature defines the {2} '{3}' but the implementation does not (or does, but not in the same order)
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation defines the {2} '{3}' but the signature does not (or does, but not in the same order)
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the implementation defines a struct but the signature defines a type with a hidden representation
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because a type representation is being hidden by a signature
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the types are of different kinds
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the IL representations differ
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the representations differ
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the field {2} was present in the implementation but not in the signature
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the field {2} was required by the signature but was not specified by the implementation
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the field '{2}' was present in the implementation but not in the signature. Struct types must now reveal their fields in the signature for the type, though the fields may still be labelled 'private' or 'internal'.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the abstract member '{2}' was required by the signature but was not specified by the implementation
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the abstract member '{2}' was present in the implementation but not in the signature
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature declares a {2} while the implementation declares a {3}
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the abbreviations differ: {2} versus {3}
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because an abbreviation is being hidden by a signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature.
+
+
+ The {0} definitions for type '{1}' in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not
+
+
+ The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe names differ
+
+
+ The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe respective number of data fields differ
+
+
+ The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nThe types of the fields differ
+
+
+ The module contains the constructor\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe names differ
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nthe accessibility specified in the signature is more than that specified in the implementation
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'static' modifiers differ
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'mutable' modifiers differ
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe 'literal' modifiers differ
+
+
+ The module contains the field\n {0} \nbut its signature specifies\n {1} \nThe types differ
+
+
+ The implicit instantiation of a generic construct at or near this point could not be resolved because it could resolve to multiple unrelated types, e.g. '{0}' and '{1}'. Consider using type annotations to resolve the ambiguity
+
+
+ Could not resolve the ambiguity inherent in the use of the operator '{0}' at or near this program point. Consider using type annotations to resolve the ambiguity.
+
+
+ Could not resolve the ambiguity inherent in the use of a 'printf'-style format string
+
+
+ Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position
+
+
+ Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position
+
+
+ Invalid value
+
+
+ The signature and implementation are not compatible because the respective type parameter counts differ
+
+
+ The signature and implementation are not compatible because the type parameter in the class/signature has a different compile-time requirement to the one in the member/implementation
+
+
+ The signature and implementation are not compatible because the declaration of the type parameter '{0}' requires a constraint of the form {1}
+
+
+ The signature and implementation are not compatible because the type parameter '{0}' has a constraint of the form {1} but the implementation does not. Either remove this constraint from the signature or add it to the implementation.
+
+
+ The type '{0}' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals'
+
+
+ The type '{0}' implements 'System.IComparable' explicitly but provides no corresponding override for 'Object.Equals'. An implementation of 'Object.Equals' has been automatically provided, implemented via 'System.IComparable'. Consider implementing the override 'Object.Equals' explicitly
+
+
+ The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode' or 'Object.Equals'. You must apply the 'CustomEquality' attribute to the type
+
+
+ The struct, record or union type '{0}' has an explicit implementation of 'Object.GetHashCode'. Consider implementing a matching override for 'Object.Equals(obj)'
+
+
+ The struct, record or union type '{0}' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()'
+
+
+ The exception definitions are not compatible because a CLI exception mapping is being hidden by a signature. The exception mapping must be visible to other modules. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}
+
+
+ The exception definitions are not compatible because the CLI representations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}
+
+
+ The exception definitions are not compatible because the exception abbreviation is being hidden by the signature. The abbreviation must be visible to other CLI languages. Consider making the abbreviation visible in the signature. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}.
+
+
+ The exception definitions are not compatible because the exception abbreviations in the signature and implementation differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}.
+
+
+ The exception definitions are not compatible because the exception declarations differ. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}.
+
+
+ The exception definitions are not compatible because the field '{0}' was required by the signature but was not specified by the implementation. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}.
+
+
+ The exception definitions are not compatible because the field '{0}' was present in the implementation but not in the signature. The module contains the exception definition\n {1} \nbut its signature specifies\n\t{2}.
+
+
+ The exception definitions are not compatible because the order of the fields is different in the signature and implementation. The module contains the exception definition\n {0} \nbut its signature specifies\n\t{1}.
+
+
+ The namespace or module attributes differ between signature and implementation
+
+
+ This method is over-constrained in its type parameters
+
+
+ No implementations of '{0}' had the correct number of arguments and type parameters. The required signature is '{1}'.
+
+
+ The override for '{0}' was ambiguous
+
+
+ More than one override implements '{0}'
+
+
+ The method '{0}' is sealed and cannot be overridden
+
+
+ The override '{0}' implements more than one abstract slot, e.g. '{1}' and '{2}'
+
+
+ Duplicate or redundant interface
+
+
+ The interface '{0}' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface.
+
+
+ A named argument has been assigned more than one value
+
+
+ No implementation was given for '{0}'
+
+
+ No implementation was given for '{0}'. Note that all interface members must be implemented and listed under an appropriate 'interface' declaration, e.g. 'interface ... with member ...'.
+
+
+ The member '{0}' does not have the correct number of arguments. The required signature is '{1}'.
+
+
+ The member '{0}' does not have the correct number of method type parameters. The required signature is '{1}'.
+
+
+ The member '{0}' does not have the correct kinds of generic parameters. The required signature is '{1}'.
+
+
+ The member '{0}' cannot be used to implement '{1}'. The required signature is '{2}'.
+
+
+ Error while parsing embedded IL
+
+
+ Error while parsing embedded IL type
+
+
+ This indexer notation has been removed from the F# language
+
+
+ Invalid expression on left of assignment
+
+
+ The 'ReferenceEquality' attribute cannot be used on structs. Consider using the 'StructuralEquality' attribute instead, or implement an override for 'System.Object.Equals(obj)'.
+
+
+ This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison'
+
+
+ The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute
+
+
+ The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute
+
+
+ The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes
+
+
+ A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes
+
+
+ Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes
+
+
+ A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'
+
+
+ A type with attribute 'CustomEquality' must have an explicit implementation of at least one of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable'
+
+
+ A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable'
+
+
+ A type with attribute 'NoEquality' should not usually have an explicit implementation of 'Object.Equals(obj)'. Disable this warning if this is intentional for interoperability purposes
+
+
+ A type with attribute 'NoComparison' should not usually have an explicit implementation of 'System.IComparable', 'System.IComparable<_>' or 'System.Collections.IStructuralComparable'. Disable this warning if this is intentional for interoperability purposes
+
+
+ The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes
+
+
+ Positional specifiers are not permitted in format strings
+
+
+ Missing format specifier
+
+
+ '{0}' flag set twice
+
+
+ Prefix flag (' ' or '+') set twice
+
+
+ The # formatting modifier is invalid in F#
+
+
+ Bad precision in format specifier
+
+
+ Bad width in format specifier
+
+
+ '{0}' format does not support '0' flag
+
+
+ Precision missing after the '.'
+
+
+ '{0}' format does not support precision
+
+
+ Bad format specifier (after l or L): Expected ld,li,lo,lu,lx or lX. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types.
+
+
+ The 'l' or 'L' in this format specifier is unnecessary. In F# code you can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types.
+
+
+ The 'h' or 'H' in this format specifier is unnecessary. You can use %d, %x, %o or %u instead, which are overloaded to work with all basic integer types.
+
+
+ '{0}' does not support prefix '{1}' flag
+
+
+ Bad format specifier: '{0}'
+
+
+ System.Environment.Exit did not exit
+
+
+ The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined
+
+
+ A protected member is called or 'base' is being used. This is only allowed in the direct implementation of members since they could escape their object scope.
+
+
+ The byref-typed variable '{0}' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions.
+
+
+ The 'base' keyword is used in an invalid way. Base calls cannot be used in closures. Consider using a private member to make base calls.
+
+
+ The variable '{0}' is used in an invalid way
+
+
+ The type '{0}' is less accessible than the value, member or type '{1}' it is used in.
+
+
+ 'System.Void' can only be used as 'typeof<System.Void>' in F#
+
+
+ A type instantiation involves a byref type. This is not permitted by the rules of Common IL.
+
+
+ Calls to 'reraise' may only occur directly in a handler of a try-with
+
+
+ Expression-splicing operators may only be used within quotations
+
+
+ First-class uses of the expression-splicing operator are not permitted
+
+
+ First-class uses of the address-of operators are not permitted
+
+
+ First-class uses of the 'reraise' function is not permitted
+
+
+ The byref typed value '{0}' cannot be used at this point
+
+
+ 'base' values may only be used to make direct calls to the base implementations of overridden members
+
+
+ Object constructors cannot directly use try/with and try/finally prior to the initialization of the object. This includes constructs such as 'for x in ...' that may elaborate to uses of these constructs. This is a limitation imposed by Common IL.
+
+
+ The address of the variable '{0}' cannot be used at this point
+
+
+ The address of the static field '{0}' cannot be used at this point
+
+
+ The address of the field '{0}' cannot be used at this point
+
+
+ The address of an array element cannot be used at this point
+
+
+ The type of a first-class function cannot contain byrefs
+
+
+ A method return type would contain byrefs which is not permitted
+
+
+ Invalid custom attribute value (not a constant or literal)
+
+
+ The attribute type '{0}' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element.
+
+
+ The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to its definition at or near '{2}'. This is an invalid forward reference.
+
+
+ A byref typed value would be stored here. Top-level let-bound byref values are not permitted.
+
+
+ [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%'
+
+
+ A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence.
+
+
+ compiled form of the union case
+
+
+ default augmentation of the union case
+
+
+ The property '{0}' has the same name as a method in type '{1}'.
+
+
+ The property '{0}' of type '{1}' has a getter and a setter that do not match. If one is abstract then the other must be as well.
+
+
+ The property '{0}' has the same name as another property in type '{1}', but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties.
+
+
+ A type would store a byref typed value. This is not permitted by Common IL.
+
+
+ Duplicate method. The method '{0}' has the same name and signature as another method in type '{1}'.
+
+
+ Duplicate method. The method '{0}' has the same name and signature as another method in type '{1}' once tuples, functions, units of measure and/or provided types are erased.
+
+
+ The method '{0}' has curried arguments but has the same name as another method in type '{1}'. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments.
+
+
+ Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional', 'ReflectedDefinition', 'byref', 'CallerLineNumber', 'CallerMemberName', or 'CallerFilePath' arguments
+
+
+ Duplicate property. The property '{0}' has the same name and signature as another property in type '{1}'.
+
+
+ Duplicate property. The property '{0}' has the same name and signature as another property in type '{1}' once tuples, functions, units of measure and/or provided types are erased.
+
+
+ Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type.
+
+
+ Duplicate method. The abstract method '{0}' has the same name and signature as an abstract method in an inherited type once tuples, functions, units of measure and/or provided types are erased.
+
+
+ This type implements the same interface at different generic instantiations '{0}' and '{1}'. This is not permitted in this version of F#.
+
+
+ The type of a field using the 'DefaultValue' attribute must admit default initialization, i.e. have 'null' as a proper value or be a struct type whose fields all admit default initialization. You can use 'DefaultValue(false)' to disable this check
+
+
+ The type abbreviation contains byrefs. This is not permitted by F#.
+
+
+ The variable '{0}' is bound in a quotation but is used as part of a spliced expression. This is not permitted since it may escape its scope.
+
+
+ Quotations cannot contain uses of generic expressions
+
+
+ Quotations cannot contain function definitions that are inferred or declared to be generic. Consider adding some type constraints to make this a valid quoted expression.
+
+
+ Quotations cannot contain object expressions
+
+
+ Quotations cannot contain expressions that take the address of a field
+
+
+ Quotations cannot contain expressions that fetch static fields
+
+
+ Quotations cannot contain inline assembly code or pattern matching on arrays
+
+
+ Quotations cannot contain descending for loops
+
+
+ Quotations cannot contain expressions that fetch union case indexes
+
+
+ Quotations cannot contain expressions that set union case fields
+
+
+ Quotations cannot contain expressions that set fields in exception values
+
+
+ Quotations cannot contain expressions that require byref pointers
+
+
+ Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call
+
+
+ Quotations cannot contain this kind of constant
+
+
+ Quotations cannot contain this kind of pattern match
+
+
+ Quotations cannot contain array pattern matching
+
+
+ Quotations cannot contain this kind of type
+
+
+ The declared type parameter '{0}' cannot be used here since the type parameter cannot be resolved at compile time
+
+
+ This code is less generic than indicated by its annotations. A unit-of-measure specified using '_' has been determined to be '1', i.e. dimensionless. Consider making the code generic, or removing the use of '_'.
+
+
+ Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations.
+
+
+ Expected arguments to an instance member
+
+
+ This indexer expects {0} arguments but is here given {1}
+
+
+ Expecting a type supporting the operator '{0}' but given a function type. You may be missing an argument to a function.
+
+
+ Expecting a type supporting the operator '{0}' but given a tuple type
+
+
+ None of the types '{0}' support the operator '{1}'
+
+
+ The type '{0}' does not support the operator '{1}'
+
+
+ None of the types '{0}' support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+
+
+ The type '{0}' does not support the operator '{1}'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+
+
+ The type '{0}' does not support a conversion to the type '{1}'
+
+
+ The type '{0}' has a method '{1}' (full name '{2}'), but the method is static
+
+
+ The type '{0}' has a method '{1}' (full name '{2}'), but the method is not static
+
+
+ The constraints 'struct' and 'not struct' are inconsistent
+
+
+ The type '{0}' does not have 'null' as a proper value
+
+
+ The type '{0}' does not have 'null' as a proper value. To create a null value for a Nullable type use 'System.Nullable()'.
+
+
+ The type '{0}' does not support the 'comparison' constraint because it has the 'NoComparison' attribute
+
+
+ The type '{0}' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface
+
+
+ The type '{0}' does not support the 'comparison' constraint because it is a record, union or struct with one or more structural element types which do not support the 'comparison' constraint. Either avoid the use of comparison with this type, or add the 'StructuralComparison' attribute to the type to determine which field type does not support comparison
+
+
+ The type '{0}' does not support the 'equality' constraint because it has the 'NoEquality' attribute
+
+
+ The type '{0}' does not support the 'equality' constraint because it is a function type
+
+
+ The type '{0}' does not support the 'equality' constraint because it is a record, union or struct with one or more structural element types which do not support the 'equality' constraint. Either avoid the use of equality with this type, or add the 'StructuralEquality' attribute to the type to determine which field type does not support equality
+
+
+ The type '{0}' is not a CLI enum type
+
+
+ The type '{0}' has a non-standard delegate type
+
+
+ The type '{0}' is not a CLI delegate type
+
+
+ This type parameter cannot be instantiated to 'Nullable'. This is a restriction imposed in order to ensure the meaning of 'null' in some CLI languages is not confusing when used in conjunction with 'Nullable' values.
+
+
+ A generic construct requires that the type '{0}' is a CLI or F# struct type
+
+
+ A generic construct requires that the type '{0}' is an unmanaged type
+
+
+ The type '{0}' is not compatible with any of the types {1}, arising from the use of a printf-style format string
+
+
+ A generic construct requires that the type '{0}' have reference semantics, but it does not, i.e. it is a struct
+
+
+ A generic construct requires that the type '{0}' be non-abstract
+
+
+ A generic construct requires that the type '{0}' have a public default constructor
+
+
+ Type instantiation length mismatch
+
+
+ Optional arguments not permitted here
+
+
+ {0} is not a static member
+
+
+ {0} is not an instance member
+
+
+ Argument length mismatch
+
+
+ The argument types don't match
+
+
+ This method expects a CLI 'params' parameter in this position. 'params' is a way of passing a variable number of arguments to a method in languages such as C#. Consider passing an array for this argument
+
+
+ The member or object constructor '{0}' is not {1}
+
+
+ The member or object constructor '{0}' is not {1}. Private members may only be accessed from within the declaring type. Protected members may only be accessed from an extending type and cannot be accessed from inner lambda expressions.
+
+
+ {0} is not a static method
+
+
+ {0} is not an instance method
+
+
+ The member or object constructor '{0}' has no argument or settable return property '{1}'. {2}.
+
+
+ The object constructor '{0}' has no argument or settable return property '{1}'. {2}.
+
+
+ The required signature is {0}
+
+
+ The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'.
+
+
+ The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'.
+
+
+ The member or object constructor '{0}' requires {1} argument(s). The required signature is '{2}'. Some names for missing arguments are {3}.
+
+
+ The member or object constructor '{0}' requires {1} additional argument(s). The required signature is '{2}'. Some names for missing arguments are {3}.
+
+
+ The member or object constructor '{0}' requires {1} argument(s) but is here given {2} unnamed and {3} named argument(s). The required signature is '{4}'.
+
+
+ The member or object constructor '{0}' takes {1} argument(s) but is here given {2}. The required signature is '{3}'.
+
+
+ The object constructor '{0}' takes {1} argument(s) but is here given {2}. The required signature is '{3}'.
+
+
+ The object constructor '{0}' takes {1} argument(s) but is here given {2}. The required signature is '{3}'. If some of the arguments are meant to assign values to properties, consider separating those arguments with a comma (',').
+
+
+ The member or object constructor '{0}' takes {1} type argument(s) but is here given {2}. The required signature is '{3}'.
+
+
+ A member or object constructor '{0}' taking {1} arguments is not accessible from this code location. All accessible versions of method '{2}' take {3} arguments.
+
+
+ Incorrect generic instantiation. No {0} member named '{1}' takes {2} generic arguments.
+
+
+ The member or object constructor '{0}' does not take {1} argument(s). An overload was found taking {2} arguments.
+
+
+ No {0} member or object constructor named '{1}' takes {2} arguments
+
+
+ No {0} member or object constructor named '{1}' takes {2} arguments. Note the call to this member also provides {3} named arguments.
+
+
+ No {0} member or object constructor named '{1}' takes {2} arguments. The named argument '{3}' doesn't correspond to any argument or settable return property for any overload.
+
+
+ Method or object constructor '{0}' not found
+
+
+ No overloads match for method '{0}'.
+
+
+ A unique overload for method '{0}' could not be determined based on type information prior to this program point. A type annotation may be needed.
+
+
+ Candidates: {0}
+
+
+ The available overloads are shown below.
+
+
+ Accessibility modifiers are not permitted on 'do' bindings, but '{0}' was given.
+
+
+ End of file in #if section begun at or after here
+
+
+ End of file in string begun at or before here
+
+
+ End of file in verbatim string begun at or before here
+
+
+ End of file in comment begun at or before here
+
+
+ End of file in string embedded in comment begun at or before here
+
+
+ End of file in verbatim string embedded in comment begun at or before here
+
+
+ End of file in IF-OCAML section begun at or before here
+
+
+ End of file in directive begun at or before here
+
+
+ No #endif found for #if or #else
+
+
+ Attributes have been ignored in this construct
+
+
+ 'use' bindings are not permitted in primary constructors
+
+
+ 'use' bindings are not permitted in modules and are treated as 'let' bindings
+
+
+ An integer for loop must use a simple identifier
+
+
+ At most one 'with' augmentation is permitted
+
+
+ A semicolon is not expected at this point
+
+
+ Unexpected end of input
+
+
+ Accessibility modifiers are not permitted here, but '{0}' was given.
+
+
+ Only '#' compiler directives may occur prior to the first 'namespace' declaration
+
+
+ Accessibility modifiers should come immediately prior to the identifier naming a construct
+
+
+ Files should begin with either a namespace or module declaration, e.g. 'namespace SomeNamespace.SubNamespace' or 'module SomeNamespace.SomeModule', but not both. To define a module within a namespace use 'module SomeModule = ...'
+
+
+ A module abbreviation must be a simple name, not a path
+
+
+ Ignoring attributes on module abbreviation
+
+
+ The '{0}' accessibility attribute is not allowed on module abbreviation. Module abbreviations are always private.
+
+
+ The '{0}' visibility attribute is not allowed on module abbreviation. Module abbreviations are always private.
+
+
+ Unclosed block
+
+
+ Unmatched 'begin' or 'struct'
+
+
+ A module name must be a simple name, not a path
+
+
+ Unexpected empty type moduleDefn list
+
+
+ Attributes should be placed before 'val'
+
+
+ Attributes are not permitted on interface implementations
+
+
+ Syntax error
+
+
+ Augmentations are not permitted on delegate type moduleDefns
+
+
+ Unmatched 'class', 'interface' or 'struct'
+
+
+ A type definition requires one or more members or other declarations. If you intend to define an empty class, struct or interface, then use 'type ... = class end', 'interface end' or 'struct end'.
+
+
+ Unmatched 'with' or badly formatted 'with' block
+
+
+ 'get', 'set' or 'get,set' required
+
+
+ Only class types may take value arguments
+
+
+ Unmatched 'begin'
+
+
+ Invalid declaration syntax
+
+
+ 'get' and/or 'set' required
+
+
+ Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...'
+
+
+ A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...'
+
+
+ Multiple accessibilities given for property getter or setter
+
+
+ Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... '
+
+
+ Interfaces always have the same visibility as the enclosing type
+
+
+ Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type.
+
+
+ Attributes are not permitted on 'inherit' declarations
+
+
+ Accessibility modifiers are not permitted on an 'inherits' declaration
+
+
+ 'inherit' declarations cannot have 'as' bindings. To access members of the base class when overriding a method, the syntax 'base.SomeMember' may be used; 'base' is a keyword. Remove this 'as' binding.
+
+
+ Attributes are not allowed here
+
+
+ Accessibility modifiers are not permitted in this position for type abbreviations
+
+
+ Accessibility modifiers are not permitted in this position for enum types
+
+
+ All enum fields must be given values
+
+
+ Accessibility modifiers are not permitted on inline assembly code types
+
+
+ Unexpected identifier: '{0}'
+
+
+ Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation.
+
+
+ Accessibility modifiers are not permitted on enumeration fields
+
+
+ Consider using a separate record type instead
+
+
+ Accessibility modifiers are not permitted on record fields. Use 'type R = internal ...' or 'type R = private ...' to give an accessibility to the whole representation.
+
+
+ The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings
+
+
+ Unmatched '('
+
+
+ Successive patterns should be separated by spaces or tupled
+
+
+ No matching 'in' found for this 'let'
+
+
+ Error in the return expression for this 'let'. Possible incorrect indentation.
+
+
+ The block following this '{0}' is unfinished. Every code block is an expression and must have a result. '{1}' cannot be the final code element in a block. Consider giving this block an explicit result.
+
+
+ Incomplete conditional. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'.
+
+
+ 'assert' may not be used as a first class value. Use 'assert <expr>' instead.
+
+
+ Identifier expected
+
+
+ 'in' or '=' expected
+
+
+ The use of '->' in sequence and computation expressions is limited to the form 'for pat in expr -> expr'. Use the syntax 'for ... in ... do ... yield...' to generate elements in more complex sequence expressions.
+
+
+ Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized
+
+
+ Unmatched '['
+
+
+ Missing qualification after '.'
+
+
+ In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array
+
+
+ Mismatched quotation, beginning with '{0}'
+
+
+ Unmatched '{0}'
+
+
+ Unmatched '[|'
+
+
+ Unmatched '{{'
+
+
+ Field bindings must have the form 'id = expr;'
+
+
+ This member is not permitted in an object implementation
+
+
+ Missing function body
+
+
+ Syntax error in labelled type argument
+
+
+ Unexpected infix operator in type expression
+
+
+ The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead
+
+
+ Invalid literal in type
+
+
+ Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'.
+
+
+ Unexpected integer literal in unit-of-measure expression
+
+
+ Syntax error: unexpected type parameter specification
+
+
+ Mismatched quotation operator name, beginning with '{0}'
+
+
+ Active pattern case identifiers must begin with an uppercase letter
+
+
+ The '|' character is not permitted in active pattern case identifiers
+
+
+ Denominator must not be 0 in unit-of-measure exponent
+
+
+ No '=' symbol should follow a 'namespace' declaration
+
+
+ The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end'
+
+
+ The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end'
+
+
+ A static field was used where an instance field is expected
+
+
+ Method '{0}' is not accessible from this code location
+
+
+ Implicit product of measures following /
+
+
+ Unexpected SynMeasure.Anon
+
+
+ Non-zero constants cannot have generic units. For generic zero, write 0.0<_>.
+
+
+ In sequence expressions, results are generated using 'yield'
+
+
+ Unexpected big rational constant
+
+
+ Units-of-measure supported only on float, float32, decimal and signed integer types
+
+
+ Unexpected Const_uint16array
+
+
+ Unexpected Const_bytearray
+
+
+ A parameter with attributes must also be given a name, e.g. '[<Attribute>] Name : Type'
+
+
+ Return values cannot have names
+
+
+ MemberKind.PropertyGetSet only expected in parse trees
+
+
+ Namespaces cannot contain values. Consider using a module to hold your value declarations.
+
+
+ Namespaces cannot contain extension members except in the same file and namespace declaration group where the type is defined. Consider using a module to hold declarations of extension members.
+
+
+ Multiple visibility attributes have been specified for this identifier
+
+
+ Multiple visibility attributes have been specified for this identifier. 'let' bindings in classes are always private, as are any 'let' bindings inside expressions.
+
+
+ The name '({0})' should not be used as a member name. To define comparison semantics for a type, implement the 'System.IComparable' interface. If defining a static member for use from other CLI languages then use the name '{1}' instead.
+
+
+ The name '({0})' should not be used as a member name. To define equality semantics for a type, override the 'Object.Equals' member. If defining a static member for use from other CLI languages then use the name '{1}' instead.
+
+
+ The name '({0})' should not be used as a member name. If defining a static member for use from other CLI languages then use the name '{1}' instead.
+
+
+ The name '({0})' should not be used as a member name because it is given a standard definition in the F# library over fixed types
+
+
+ The '{0}' operator should not normally be redefined. To define overloaded comparison semantics for a particular type, implement the 'System.IComparable' interface in the definition of that type.
+
+
+ The '{0}' operator should not normally be redefined. To define equality semantics for a type, override the 'Object.Equals' member in the definition of that type.
+
+
+ The '{0}' operator should not normally be redefined. Consider using a different operator name
+
+
+ The '{0}' operator cannot be redefined. Consider using a different operator name
+
+
+ Expected module or namespace parent {0}
+
+
+ The struct, record or union type '{0}' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type.
+
+
+ The struct, record or union type '{0}' implements the interface 'System.IComparable<_>' explicitly. You must apply the 'CustomComparison' attribute to the type, and should also provide a consistent implementation of the non-generic interface System.IComparable.
+
+
+ The struct, record or union type '{0}' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type.
+
+
+ This record contains fields from inconsistent types
+
+
+ DLLImport stubs cannot be inlined
+
+
+ Structs may only bind a 'this' parameter at member declarations
+
+
+ Unexpected expression at recursive inference point
+
+
+ This code is less generic than required by its annotations because the explicit type variable '{0}' could not be generalized. It was constrained to be '{1}'.
+
+
+ One or more of the explicit class or function type variables for this binding could not be generalized, because they were constrained to other types
+
+
+ A generic type parameter has been used in a way that constrains it to always be '{0}'
+
+
+ This type parameter has been used in a way that constrains it to always be '{0}'
+
+
+ The type parameters inferred for this value are not stable under the erasure of type abbreviations. This is due to the use of type abbreviations which drop or reorder type parameters, e.g. \n\ttype taggedInt<'a> = int or\n\ttype swap<'a,'b> = 'b * 'a.\nConsider declaring the type parameters for this value explicitly, e.g.\n\tlet f<'a,'b> ((x,y) : swap<'b,'a>) : swap<'a,'b> = (y,x).
+
+
+ Explicit type parameters may only be used on module or member bindings
+
+
+ You must explicitly declare either all or no type parameters when overriding a generic abstract method
+
+
+ The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type
+
+
+ The field '{0}' appears twice in this record expression or pattern
+
+
+ Unknown union case
+
+
+ This code is not sufficiently generic. The type variable {0} could not be generalized because it would escape its scope.
+
+
+ A property cannot have explicit type parameters. Consider using a method instead.
+
+
+ A constructor cannot have explicit type parameters. Consider using a static construction method instead.
+
+
+ This instance member needs a parameter to represent the object being invoked. Make the member static or use the notation 'member x.Member(args) = ...'.
+
+
+ Unexpected source-level property specification in syntax tree
+
+
+ A static initializer requires an argument
+
+
+ An object constructor requires an argument
+
+
+ This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'.
+
+
+ An explicit static initializer should use the syntax 'static new(args) = expr'
+
+
+ An explicit object constructor should use the syntax 'new(args) = expr'
+
+
+ Unexpected source-level property specification
+
+
+ This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions.
+
+
+ Invalid declaration
+
+
+ Attributes are not allowed within patterns
+
+
+ The generic function '{0}' must be given explicit type argument(s)
+
+
+ The method or function '{0}' should not be given explicit type argument(s) because it does not declare its type parameters explicitly
+
+
+ This value, type or method expects {0} type parameter(s) but was given {1}
+
+
+ The default, zero-initializing constructor of a struct type may only be used if all the fields of the struct type admit default initialization
+
+
+ Couldn't find Dispose on IDisposable, or it was overloaded
+
+
+ This value is not a literal and cannot be used in a pattern
+
+
+ This field is readonly
+
+
+ Named arguments must appear after all other arguments
+
+
+ This function value is being used to construct a delegate type whose signature includes a byref argument. You must use an explicit lambda expression taking {0} arguments.
+
+
+ The type '{0}' is not a type whose values can be enumerated with this syntax, i.e. is not compatible with either seq<_>, IEnumerable<_> or IEnumerable and does not have a GetEnumerator method
+
+
+ This recursive binding uses an invalid mixture of recursive forms
+
+
+ This is not a valid object construction expression. Explicit object constructors must either call an alternate constructor or initialize all fields of the object and specify a call to a super class constructor.
+
+
+ Invalid constraint
+
+
+ Invalid constraint: the type used for the constraint is sealed, which means the constraint could only be satisfied by at most one solution
+
+
+ An 'enum' constraint must be of the form 'enum<type>'
+
+
+ 'new' constraints must take one argument of type 'unit' and return the constructed type
+
+
+ This property has an invalid type. Properties taking multiple indexer arguments should have types of the form 'ty1 * ty2 -> ty3'. Properties returning functions should have types of the form '(ty1 -> ty2)'.
+
+
+ Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute.
+
+
+ Expected type parameter, not unit-of-measure parameter
+
+
+ Expected type, not unit-of-measure
+
+
+ Expected unit-of-measure, not type
+
+
+ Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets.
+
+
+ Unit-of-measure cannot be used in type constructor application
+
+
+ This control construct may only be used if the computation expression builder defines a '{0}' method
+
+
+ This type has no nested types
+
+
+ Unexpected {0} in type expression
+
+
+ Type parameter cannot be used as type constructor
+
+
+ Illegal syntax in type expression
+
+
+ Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression
+
+
+ Anonymous type variables are not permitted in this declaration
+
+
+ Unexpected / in type
+
+
+ Unexpected type arguments
+
+
+ Optional arguments are only permitted on type members
+
+
+ Name '{0}' not bound in pattern context
+
+
+ Non-primitive numeric literal constants cannot be used in pattern matches because they can be mapped to multiple different types through the use of a NumericLiteral module. Consider using replacing with a variable, and use 'when <variable> = <constant>' at the end of the match clause.
+
+
+ Type arguments cannot be specified here
+
+
+ Only active patterns returning exactly one result may accept arguments
+
+
+ Invalid argument to parameterized pattern label
+
+
+ Internal error. Invalid index into active pattern array
+
+
+ This union case does not take arguments
+
+
+ This union case takes one argument
+
+
+ This union case expects {0} arguments in tupled form
+
+
+ Field '{0}' is not static
+
+
+ This field is not a literal and cannot be used in a pattern
+
+
+ This is not a variable, constant, active recognizer or literal
+
+
+ This is not a valid pattern
+
+
+ Character range matches have been removed in F#. Consider using a 'when' pattern guard instead.
+
+
+ Illegal pattern
+
+
+ Syntax error - unexpected '?' symbol
+
+
+ Expected {0} expressions, got {1}
+
+
+ TcExprUndelayed: delayed
+
+
+ This expression form may only be used in sequence and computation expressions
+
+
+ Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces.
+
+
+ Invalid object, sequence or record expression
+
+
+ Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq {{ ... }}'
+
+
+ This list or array expression includes an element of the form 'if ... then ... else'. Parenthesize this expression to indicate it is an individual element of the list or array, to disambiguate this from a list generated using a sequence expression
+
+
+ Unable to parse format string '{0}'
+
+
+ This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList.
+
+
+ The expression form 'expr then expr' may only be used as part of an explicit object constructor
+
+
+ Named arguments cannot be given to member trait calls
+
+
+ This is not a valid name for an enumeration case
+
+
+ This field is not mutable
+
+
+ This construct may only be used within list, array and sequence expressions, e.g. expressions of the form 'seq {{ ... }}', '[ ... ]' or '[| ... |]'. These use the syntax 'for ... in ... do ... yield...' to generate elements
+
+
+ This construct may only be used within computation expressions. To return a value from an ordinary function simply write the expression without 'return'.
+
+
+ This construct may only be used within sequence or computation expressions
+
+
+ This construct may only be used within computation expressions
+
+
+ Invalid indexer expression
+
+
+ The operator 'expr.[idx]' has been used on an object of indeterminate type based on information prior to this program point. Consider adding further type constraints
+
+
+ Cannot inherit from a variable type
+
+
+ Calls to object constructors on type parameters cannot be given arguments
+
+
+ The 'CompiledName' attribute cannot be used with this language element
+
+
+ '{0}' may only be used with named types
+
+
+ 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead.
+
+
+ 'new' cannot be used on interface types. Consider using an object expression '{{ new ... with ... }}' instead.
+
+
+ Instances of this type cannot be created since it has been marked abstract or not all methods have been given implementations. Consider using an object expression '{{ new ... with ... }}' instead.
+
+
+ It is recommended that objects supporting the IDisposable interface are created using the syntax 'new Type(args)', rather than 'Type(args)' or 'Type' as a function value representing the constructor, to indicate that resources may be owned by the generated value
+
+
+ '{0}' may only be used to construct object types
+
+
+ Constructors for the type '{0}' must directly or indirectly call its implicit object constructor. Use a call to the implicit object constructor instead of a record expression.
+
+
+ The field '{0}' has been given a value, but is not present in the type '{1}'
+
+
+ No assignment given for field '{0}' of type '{1}'
+
+
+ Extraneous fields have been given values
+
+
+ Only overrides of abstract and virtual members may be specified in object expressions
+
+
+ The member '{0}' does not correspond to any abstract or virtual method available to override or implement.
+
+
+ The type {0} contains the member '{1}' but it is not a virtual or abstract method that is available to override or implement.
+
+
+ The member '{0}' does not accept the correct number of arguments. {1} argument(s) are expected, but {2} were given. The required signature is '{3}'.{4}
+
+
+ The member '{0}' does not accept the correct number of arguments. One overload accepts {1} arguments, but {2} were given. The required signature is '{3}'.{4}
+
+
+ A simple method name is required here
+
+
+ The types System.ValueType, System.Enum, System.Delegate, System.MulticastDelegate and System.Array cannot be used as super types in an object expression or class
+
+
+ 'new' must be used with a named type
+
+
+ Cannot create an extension of a sealed type
+
+
+ No arguments may be given when constructing a record value
+
+
+ Interface implementations cannot be given on construction expressions
+
+
+ Object construction expressions may only be used to implement constructors in class types
+
+
+ Only simple bindings of the form 'id = expr' can be used in construction expressions
+
+
+ Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field
+
+
+ Expected an interface type
+
+
+ Constructor expressions for interfaces do not take arguments
+
+
+ This object constructor requires arguments
+
+
+ 'new' may only be used with object constructors
+
+
+ At least one override did not correctly implement its corresponding abstract member
+
+
+ This numeric literal requires that a module '{0}' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope
+
+
+ Invalid record construction
+
+
+ The expression form {{ expr with ... }} may only be used with record types. To build object types use {{ new Type(...) with ... }}
+
+
+ The inherited type is not an object model type
+
+
+ Object construction expressions (i.e. record expressions with inheritance specifications) may only be used to implement constructors in object model types. Use 'new ObjectType(args)' to construct instances of object model types outside of constructors
+
+
+ '{{ }}' is not a valid expression. Records must include at least one field. Empty sequences are specified by using Seq.empty or an empty list '[]'.
+
+
+ This type is not a record type. Values of class and struct types must be created using calls to object constructors.
+
+
+ This type is not a record type
+
+
+ This construct is ambiguous as part of a computation expression. Nested expressions may be written using 'let _ = (...)' and nested computations using 'let! res = builder {{ ... }}'.
+
+
+ This construct is ambiguous as part of a sequence expression. Nested expressions may be written using 'let _ = (...)' and nested sequences using 'yield! seq {{... }}'.
+
+
+ 'do!' cannot be used within sequence expressions
+
+
+ The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead.
+
+
+ 'try'/'with' cannot be used within sequence expressions
+
+
+ In sequence expressions, multiple results are generated using 'yield!'
+
+
+ Invalid assignment
+
+
+ Invalid use of a type name
+
+
+ This type has no accessible object constructors
+
+
+ Invalid use of an interface type
+
+
+ Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'.
+
+
+ Property '{0}' is not static
+
+
+ Property '{0}' is not readable
+
+
+ This lookup cannot be used here
+
+
+ Property '{0}' is static
+
+
+ Property '{0}' cannot be set
+
+
+ Constructors must be applied to arguments and cannot be used as first-class values. If necessary use an anonymous function '(fun arg1 ... argN -> new Type(arg1,...,argN))'.
+
+
+ The syntax 'expr.id' may only be used with record labels, properties and fields
+
+
+ Event '{0}' is static
+
+
+ Event '{0}' is not static
+
+
+ The named argument '{0}' did not match any argument or mutable property
+
+
+ One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form.
+
+
+ The unnamed arguments do not form a prefix of the arguments of the method called
+
+
+ Static optimization conditionals are only for use within the F# library
+
+
+ The corresponding formal argument is not optional
+
+
+ Invalid optional assignment to a property or field
+
+
+ A delegate constructor must be passed a single function value
+
+
+ A binding cannot be marked both 'use' and 'rec'
+
+
+ The 'VolatileField' attribute may only be used on 'let' bindings in classes
+
+
+ Attributes are not permitted on 'let' bindings in expressions
+
+
+ The 'DefaultValue' attribute may only be used on 'val' declarations
+
+
+ The 'ConditionalAttribute' attribute may only be used on members
+
+
+ This is not a valid name for an active pattern
+
+
+ The 'EntryPointAttribute' attribute may only be used on function definitions in modules
+
+
+ Mutable values cannot be marked 'inline'
+
+
+ Mutable values cannot have generic parameters
+
+
+ Mutable function values should be written 'let mutable f = (fun args -> ...)'
+
+
+ Only functions may be marked 'inline'
+
+
+ A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes
+
+
+ A literal value cannot be marked 'mutable'
+
+
+ A literal value cannot be marked 'inline'
+
+
+ Literal values cannot have generic parameters
+
+
+ This is not a valid constant expression
+
+
+ This type is not accessible from this code location
+
+
+ Unexpected condition in imported assembly: failed to decode AttributeUsage attribute
+
+
+ Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'.
+
+
+ This attribute is not valid for use on this language element. Assembly attributes should be attached to a 'do ()' declaration, if necessary within an F# module.
+
+
+ This attribute is not valid for use on this language element
+
+
+ Optional arguments cannot be used in custom attributes
+
+
+ This property cannot be set
+
+
+ This property or field was not found on this custom attribute type
+
+
+ A custom attribute must be a reference type
+
+
+ The number of args for a custom attribute does not match the expected number of args for the attribute constructor
+
+
+ A custom attribute must invoke an object constructor
+
+
+ Attribute expressions must be calls to object constructors
+
+
+ This attribute cannot be used in this version of F#
+
+
+ Invalid inline specification
+
+
+ 'use' bindings must be of the form 'use <var> = <expr>'
+
+
+ Abstract members are not permitted in an augmentation - they must be defined as part of the type itself
+
+
+ Method overrides and interface implementations are not permitted here
+
+
+ No abstract or interface member was found that corresponds to this override
+
+
+ This override takes a different number of arguments to the corresponding abstract member. The following abstract members were found:{0}
+
+
+ This method already has a default implementation
+
+
+ The method implemented by this default is ambiguous
+
+
+ No abstract property was found that corresponds to this override
+
+
+ This property overrides or implements an abstract property but the abstract property doesn't have a corresponding {0}
+
+
+ Invalid signature for set member
+
+
+ This new member hides the abstract member '{0}'. Rename the member or use 'override' instead.
+
+
+ This new member hides the abstract member '{0}' once tuples, functions, units of measure and/or provided types are erased. Rename the member or use 'override' instead.
+
+
+ Interfaces cannot contain definitions of static initializers
+
+
+ Interfaces cannot contain definitions of object constructors
+
+
+ Interfaces cannot contain definitions of member overrides
+
+
+ Interfaces cannot contain definitions of concrete members. You may need to define a constructor on your type to indicate that the type is a class.
+
+
+ Constructors cannot be specified in exception augmentations
+
+
+ Structs cannot have an object constructor with no arguments. This is a restriction imposed on all CLI languages as structs automatically support a default constructor.
+
+
+ Constructors cannot be defined for this type
+
+
+ Recursive bindings that include member specifications can only occur as a direct augmentation of a type
+
+
+ Only simple variable patterns can be bound in 'let rec' constructs
+
+
+ Only record fields and simple, non-recursive 'let' bindings may be marked mutable
+
+
+ This member is not sufficiently generic
+
+
+ A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1'
+
+
+ A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute
+
+
+ Thread-static and context-static variables must be static and given the [<DefaultValue>] attribute to indicate that the value is initialized to the default value on each new thread
+
+
+ Volatile fields must be marked 'mutable' and cannot be thread-static
+
+
+ Uninitialized 'val' fields must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field.
+
+
+ Static 'val' fields in types must be mutable, private and marked with the '[<DefaultValue>]' attribute. They are initialized to the 'null' or 'zero' value for their type. Consider also using a 'static let mutable' binding in a class type.
+
+
+ This field requires a name
+
+
+ Invalid namespace, module, type or union case name
+
+
+ Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy'
+
+
+ Return types of union cases must be identical to the type being defined, up to abbreviations
+
+
+ This is not a valid value for an enumeration literal
+
+
+ The type '{0}' is not an interface type
+
+
+ Duplicate specification of an interface
+
+
+ A field/val declaration is not permitted here
+
+
+ A inheritance declaration is not permitted here
+
+
+ This declaration opens the module '{0}', which is marked as 'RequireQualifiedAccess'. Adjust your code to use qualified references to the elements of the module instead, e.g. 'List.map' instead of 'map'. This change will ensure that your code is robust as new constructs are added to libraries.
+
+
+ This declaration opens the namespace or module '{0}' through a partially qualified path. Adjust this code to use the full path of the namespace. This change will make your code more robust as new constructs are added to the F# and CLI libraries.
+
+
+ Local class bindings cannot be marked inline. Consider lifting the definition out of the class or else do not mark it as inline.
+
+
+ Type abbreviations cannot have members
+
+
+ As of F# 4.1, the accessibility of type abbreviations is checked at compile-time. Consider changing the accessibility of the type abbreviation. Ignoring this warning might lead to runtime errors.
+
+
+ Enumerations cannot have members
+
+
+ Measure declarations may have only static members
+
+
+ Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings
+
+
+ Structs cannot contain value definitions because the default constructor for structs will not execute these bindings. Consider adding additional arguments to the primary constructor for the type.
+
+
+ Static value definitions may only be used in types with a primary constructor. Consider adding arguments to the type definition, e.g. 'type X(args) = ...'.
+
+
+ Measure declarations may have only static members: constructors are not available
+
+
+ A member and a local class binding both have the name '{0}'
+
+
+ Type abbreviations cannot have interface declarations
+
+
+ Enumerations cannot have interface declarations
+
+
+ This type is not an interface type
+
+
+ All implemented interfaces should be declared on the initial declaration of the type
+
+
+ A default implementation of this interface has already been added because the explicit implementation of the interface was not specified at the definition of the type
+
+
+ This member is not permitted in an interface implementation
+
+
+ This declaration element is not permitted in an augmentation
+
+
+ Types cannot contain nested type definitions
+
+
+ type, exception or module
+
+
+ type or module
+
+
+ The struct, record or union type '{0}' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type.
+
+
+ The struct, record or union type '{0}' implements the interface 'System.IEquatable<_>' explicitly. Apply the 'CustomEquality' attribute to the type and provide a consistent implementation of the non-generic override 'System.Object.Equals(obj)'.
+
+
+ Explicit type specifications cannot be used for exception constructors
+
+
+ Exception abbreviations should not have argument lists
+
+
+ Abbreviations for Common IL exceptions cannot take arguments
+
+
+ Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception
+
+
+ Abbreviations for Common IL exception types must have a matching object constructor
+
+
+ Not an exception
+
+
+ Invalid module name
+
+
+ Invalid type extension
+
+
+ The attributes of this type specify multiple kinds for the type
+
+
+ The kind of the type specified by its attributes does not match the kind implied by its definition
+
+
+ Measure definitions cannot have type parameters
+
+
+ This type requires a definition
+
+
+ This type abbreviation has one or more declared type parameters that do not appear in the type being abbreviated. Type abbreviations must use all declared type parameters in the type being abbreviated. Consider removing one or more type parameters, or use a concrete type definition that wraps an underlying type, such as 'type C<'a> = C of ...'.
+
+
+ Structs, interfaces, enums and delegates cannot inherit from other types
+
+
+ Types cannot inherit from multiple concrete types
+
+
+ Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute
+
+
+ Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal
+
+
+ Generic types cannot be given the 'StructLayout' attribute
+
+
+ Only structs and classes without primary constructors may be given the 'StructLayout' attribute
+
+
+ The representation of this type is hidden by the signature. It must be given an attribute such as [<Sealed>], [<Class>] or [<Interface>] to indicate the characteristics of the type.
+
+
+ Only classes may be given the 'AbstractClass' attribute
+
+
+ Only types representing units-of-measure may be given the 'Measure' attribute
+
+
+ Accessibility modifiers are not permitted on overrides or interface implementations
+
+
+ Discriminated union types are always sealed
+
+
+ Record types are always sealed
+
+
+ Assembly code types are always sealed
+
+
+ Struct types are always sealed
+
+
+ Delegate types are always sealed
+
+
+ Enum types are always sealed
+
+
+ Interface types and delegate types cannot contain fields
+
+
+ Abbreviated types cannot be given the 'Sealed' attribute
+
+
+ Cannot inherit a sealed type
+
+
+ Cannot inherit from interface type. Use interface ... with instead.
+
+
+ Struct types cannot contain abstract members
+
+
+ Interface types cannot be sealed
+
+
+ Delegate specifications must be of the form 'typ -> typ'
+
+
+ Delegate specifications must not be curried types. Use 'typ * ... * typ -> typ' for multi-argument delegates, and 'typ -> (typ -> typ)' for delegates returning function values.
+
+
+ Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char
+
+
+ This type definition involves an immediate cyclic reference through an abbreviation
+
+
+ This type definition involves an immediate cyclic reference through a struct field or inheritance relation
+
+
+ The syntax 'type X with ...' is reserved for augmentations. Types whose representations are hidden but which have members are now declared in signatures using 'type X = ...'. You may also need to add the '[<Sealed>] attribute to the type definition in the signature
+
+
+ Members that extend interface, delegate or enum types must be placed in a module separate to the definition of the type. This module must either have the AutoOpen attribute or be opened explicitly by client code to bring the extension members into scope.
+
+
+ One or more of the declared type parameters for this type extension have a missing or wrong type constraint not matching the original type constraints on '{0}'
+
+
+ Type definitions may only have one 'inherit' specification and it must be the first declaration
+
+
+ 'let' and 'do' bindings must come before member and interface definitions in type definitions
+
+
+ This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'.
+
+
+ This 'inherit' declaration has arguments, but is not in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+
+
+ This definition may only be used in a type with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+
+
+ Type abbreviations cannot have augmentations
+
+
+ The path '{0}' is a namespace. A module abbreviation may not abbreviate a namespace.
+
+
+ The type '{0}' is used in an invalid way. A value prior to '{1}' has an inferred type involving '{2}', which is an invalid forward reference.
+
+
+ The member '{0}' is used in an invalid way. A use of '{1}' has been inferred prior to the definition of '{2}', which is an invalid forward reference.
+
+
+ The attribute 'AutoOpen(\"{0}\")' in the assembly '{1}' did not refer to a valid module or namespace in that assembly and has been ignored
+
+
+ Undefined value '{0}'
+
+
+ Label {0} not found
+
+
+ Incorrect number of type arguments to local call
+
+
+ Dynamic invocation of {0} is not supported
+
+
+ Taking the address of a literal field is invalid
+
+
+ This operation involves taking the address of a value '{0}' represented using a local variable or other special representation. This is invalid.
+
+
+ Custom marshallers cannot be specified in F# code. Consider using a C# helper function.
+
+
+ The MarshalAs attribute could not be decoded
+
+
+ The signature for this external function contains type parameters. Constrain the argument and return types to indicate the types of the corresponding C function.
+
+
+ The DllImport attribute could not be decoded
+
+
+ Literal fields cannot be set
+
+
+ GenSetStorage: {0} was represented as a static method but was not an appropriate lambda expression
+
+
+ Mutable variables cannot escape their method
+
+
+ Compiler error: unexpected unrealized value
+
+
+ Main module of program is empty: nothing will happen when it is run
+
+
+ This type cannot be used for a literal field
+
+
+ Unexpected GetSet annotation on a property
+
+
+ The FieldOffset attribute could not be decoded
+
+
+ The StructLayout attribute could not be decoded
+
+
+ The DefaultAugmentation attribute could not be decoded
+
+
+ Reflected definitions cannot contain uses of the prefix splice operator '%'
+
+
+ Problem with codepage '{0}': {1}
+
+
+ Copyright (c) Microsoft Corporation. All Rights Reserved.
+
+
+ Freely distributed under the MIT Open Source License. https://github.com/Microsoft/visualfsharp/blob/master/License.txt
+
+
+ Name of the output file (Short form: -o)
+
+
+ Build a console executable
+
+
+ Build a Windows executable
+
+
+ Build a library (Short form: -a)
+
+
+ Build a module that can be added to another assembly
+
+
+ Delay-sign the assembly using only the public portion of the strong name key
+
+
+ Public-sign the assembly using only the public portion of the strong name key, and mark the assembly as signed
+
+
+ Write the xmldoc of the assembly to the given file
+
+
+ Specify a strong name key file
+
+
+ Specify a strong name key container
+
+
+ Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu.
+
+
+ Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility.
+
+
+ Don't add a resource to the generated assembly containing F#-specific metadata
+
+
+ Print the inferred interface of the assembly to a file
+
+
+ Reference an assembly (Short form: -r)
+
+
+ Specify a Win32 resource file (.res)
+
+
+ Specify a Win32 manifest file
+
+
+ Do not include the default Win32 manifest
+
+
+ Embed all source files in the portable PDB file
+
+
+ Embed specific source files in the portable PDB file
+
+
+ Source link information file to embed in the portable PDB file
+
+
+ --embed switch only supported when emitting a Portable PDB (--debug:portable or --debug:embedded)
+
+
+ --sourcelink switch only supported when emitting a Portable PDB (--debug:portable or --debug:embedded)
+
+
+ Source file is too large to embed in a portable PDB
+
+
+ Embed the specified managed resource
+
+
+ Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]]
+
+
+ Emit debug information (Short form: -g)
+
+
+ Specify debugging type: full, portable, embedded, pdbonly. ('{0}' is the default if no debuggging type specified and enables attaching a debugger to a running program, 'portable' is a cross-platform format, 'embedded' is a cross-platform format embedded into the output file).
+
+
+ Enable optimizations (Short form: -O)
+
+
+ Enable or disable tailcalls
+
+
+ Produce a deterministic assembly (including module version GUID and timestamp)
+
+
+ Enable or disable cross-module optimizations
+
+
+ Report all warnings as errors
+
+
+ Report specific warnings as errors
+
+
+ Set a warning level (0-5)
+
+
+ Disable specific warning messages
+
+
+ Enable specific warnings that may be off by default
+
+
+ Generate overflow checks
+
+
+ Define conditional compilation symbols (Short form: -d)
+
+
+ Ignore ML compatibility warnings
+
+
+ Suppress compiler copyright message
+
+
+ Display this usage message (Short form: -?)
+
+
+ Read response file for more options
+
+
+ Specify the codepage used to read source files
+
+
+ Output messages in UTF-8 encoding
+
+
+ Output messages with fully qualified paths
+
+
+ Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I)
+
+
+ Base address for the library to be built
+
+
+ Do not reference the default CLI assemblies by default
+
+
+ Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated
+
+
+ Statically link the given assembly and all referenced DLLs that depend on this assembly. Use an assembly name e.g. mylib, not a DLL name.
+
+
+ Use a resident background compilation service to improve compiler startup times.
+
+
+ Name the output debug file
+
+
+ Resolve assembly references using directory-based rules rather than MSBuild resolution
+
+
+ Unrecognized target '{0}', expected 'exe', 'winexe', 'library' or 'module'
+
+
+ Unrecognized debug type '{0}', expected 'pdbonly' or 'full'
+
+
+ Invalid warning level '{0}'
+
+
+ Short form of '{0}'
+
+
+ The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead.
+
+
+ Use to override where the compiler looks for mscorlib.dll and framework components
+
+
+ - OUTPUT FILES -
+
+
+ - INPUT FILES -
+
+
+ - RESOURCES -
+
+
+ - CODE GENERATION -
+
+
+ - ADVANCED -
+
+
+ - MISCELLANEOUS -
+
+
+ - LANGUAGE -
+
+
+ - ERRORS AND WARNINGS -
+
+
+ Unknown --test argument: '{0}'
+
+
+ Unrecognized platform '{0}', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu'
+
+
+ The command-line option '{0}' is for test purposes only
+
+
+ The command-line option '{0}' has been deprecated
+
+
+ The command-line option '{0}' has been deprecated. Use '{1}' instead.
+
+
+ The command-line option '{0}' has been deprecated. HTML document generation is now part of the F# Power Pack, via the tool FsHtmlDoc.exe.
+
+
+ Output warning and error messages in color
+
+
+ Enable high-entropy ASLR
+
+
+ Specify subsystem version of this assembly
+
+
+ Specify target framework profile of this assembly. Valid values are mscorlib, netcore or netstandard. Default - mscorlib
+
+
+ Emit debug information in quotations
+
+
+ Specify the preferred output language culture name (e.g. es-ES, ja-JP)
+
+
+ Don't copy FSharp.Core.dll along the produced binaries
+
+
+ Invalid version '{0}' for '--subsystemversion'. The version must be 4.00 or greater.
+
+
+ Invalid value '{0}' for '--targetprofile', valid values are 'mscorlib', 'netcore' or 'netstandard'.
+
+
+ Full name
+
+
+ and {0} other overloads
+
+
+ union case
+
+
+ active pattern result
+
+
+ active recognizer
+
+
+ field
+
+
+ event
+
+
+ property
+
+
+ extension
+
+
+ custom operation
+
+
+ argument
+
+
+ patvar
+
+
+ namespace
+
+
+ module
+
+
+ namespace/module
+
+
+ from {0}
+
+
+ also from {0}
+
+
+ generated property
+
+
+ generated type
+
+
+ Found by AssemblyFolders registry key
+
+
+ Found by AssemblyFoldersEx registry key
+
+
+ .NET Framework
+
+
+ Global Assembly Cache
+
+
+ Recursive class hierarchy in type '{0}'
+
+
+ Invalid recursive reference to an abstract slot
+
+
+ The event '{0}' has a non-standard type. If this event is declared in another CLI language, you may need to access this event using the explicit {1} and {2} methods for the event. If this event is declared in F#, make the type of the event an instantiation of either 'IDelegateEvent<_>' or 'IEvent<_,_>'.
+
+
+ The type '{0}' is not accessible from this code location
+
+
+ The union cases or fields of the type '{0}' are not accessible from this code location
+
+
+ The value '{0}' is not accessible from this code location
+
+
+ The union case '{0}' is not accessible from this code location
+
+
+ The record, struct or class field '{0}' is not accessible from this code location
+
+
+ The struct or class field '{0}' is not accessible from this code location
+
+
+ This construct is experimental
+
+
+ No Invoke methods found for delegate type
+
+
+ More than one Invoke method found for delegate type
+
+
+ Delegates are not allowed to have curried signatures
+
+
+ Unexpected Expr.TyChoose
+
+
+ Note: Lambda-lifting optimizations have not been applied because of the use of this local constrained generic function as a first class value. Adding type constraints may resolve this condition.
+
+
+ Identifiers containing '@' are reserved for use in F# code generation
+
+
+ The identifier '{0}' is reserved for future use by F#
+
+
+ Missing variable '{0}'
+
+
+ Partial active patterns may only generate one result
+
+
+ The type '{0}' is required here and is unavailable. You must add a reference to assembly '{1}'.
+
+
+ A reference to the type '{0}' in assembly '{1}' was found, but the type could not be found in that assembly
+
+
+ Internal error or badly formed metadata: not enough type parameters were in scope while importing
+
+
+ A reference to the DLL {0} is required by assembly {1}. The imported type {2} is located in the first assembly and could not be resolved.
+
+
+ An imported assembly uses the type '{0}' but that type is not public
+
+
+ The value '{0}' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible
+
+
+ The value '{0}' was marked inline but was not bound in the optimization environment
+
+
+ Local value {0} not found during optimization
+
+
+ A value marked as 'inline' has an unexpected value
+
+
+ A value marked as 'inline' could not be inlined
+
+
+ Failed to inline the value '{0}' marked 'inline', perhaps because a recursive value was marked 'inline'
+
+
+ Recursive ValValue {0}
+
+
+ The indentation of this 'in' token is incorrect with respect to the corresponding 'let'
+
+
+ Possible incorrect indentation: this token is offside of context started at position {0}. Try indenting this token further or using standard formatting conventions.
+
+
+ The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation.
+
+
+ Invalid module/expression/type
+
+
+ Multiple types exist called '{0}', taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, e.g. '{1}'.
+
+
+ The instantiation of the generic type '{0}' is missing and can't be inferred from the arguments or return type of this member. Consider providing a type instantiation when accessing this type, e.g. '{1}'.
+
+
+ 'global' may only be used as the first name in a qualified path
+
+
+ This is not a constructor or literal, or a constructor is being used incorrectly
+
+
+ Unexpected empty long identifier
+
+
+ The record type '{0}' does not contain a label '{1}'.
+
+
+ Invalid field label
+
+
+ Invalid expression '{0}'
+
+
+ No constructors are available for the type '{0}'
+
+
+ The union type for union case '{0}' was defined with the RequireQualifiedAccessAttribute. Include the name of the union type ('{1}') in the name you are using.
+
+
+ The record type for the record field '{0}' was defined with the RequireQualifiedAccessAttribute. Include the name of the record type ('{1}') in the name you are using.
+
+
+ Unexpected error creating debug information file '{0}'
+
+
+ This number is outside the allowable range for this integer type
+
+
+ '{0}' is not permitted as a character in operator names and is reserved for future use
+
+
+ Unexpected character '{0}'
+
+
+ This byte array literal contains characters that do not encode as a single byte
+
+
+ Identifiers followed by '{0}' are reserved for future use
+
+
+ This number is outside the allowable range for 8-bit signed integers
+
+
+ This number is outside the allowable range for hexadecimal 8-bit signed integers
+
+
+ This number is outside the allowable range for 8-bit unsigned integers
+
+
+ This number is outside the allowable range for 16-bit signed integers
+
+
+ This number is outside the allowable range for 16-bit unsigned integers
+
+
+ This number is outside the allowable range for 32-bit signed integers
+
+
+ This number is outside the allowable range for 32-bit unsigned integers
+
+
+ This number is outside the allowable range for 64-bit signed integers
+
+
+ This number is outside the allowable range for 64-bit unsigned integers
+
+
+ This number is outside the allowable range for signed native integers
+
+
+ This number is outside the allowable range for unsigned native integers
+
+
+ Invalid floating point number
+
+
+ This number is outside the allowable range for decimal literals
+
+
+ This number is outside the allowable range for 32-bit floats
+
+
+ This is not a valid numeric literal. Valid numeric literals include 1, 0x1, 0b0001 (int), 1u (uint32), 1L (int64), 1UL (uint64), 1s (int16), 1y (sbyte), 1uy (byte), 1.0 (float), 1.0f (float32), 1.0m (decimal), 1I (BigInteger).
+
+
+ This is not a valid byte literal
+
+
+ This is not a valid character literal
+
+
+ This Unicode encoding is only valid in string literals
+
+
+ This token is reserved for future use
+
+
+ TABs are not allowed in F# code unless the #indent \"off\" option is used
+
+
+ Invalid line number: '{0}'
+
+
+ #if directive must appear as the first non-whitespace character on a line
+
+
+ #else has no matching #if
+
+
+ #endif required for #else
+
+
+ #else directive must appear as the first non-whitespace character on a line
+
+
+ #endif has no matching #if
+
+
+ #endif directive must appear as the first non-whitespace character on a line
+
+
+ #if directive should be immediately followed by an identifier
+
+
+ Syntax error. Wrong nested #endif, unexpected tokens before it.
+
+
+ #! may only appear as the first line at the start of a file.
+
+
+ Expected single line comment or end of line
+
+
+ Infix operator member '{0}' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ Infix operator member '{0}' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ...
+
+
+ All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison'
+
+
+ The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the type parameter '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'comparison' constraint to the type parameter
+
+
+ The struct, record or union type '{0}' has the 'StructuralComparison' attribute but the component type '{1}' does not satisfy the 'comparison' constraint
+
+
+ The struct, record or union type '{0}' is not structurally comparable because the type parameter {1} does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable
+
+
+ The struct, record or union type '{0}' is not structurally comparable because the type '{1}' does not satisfy the 'comparison' constraint. Consider adding the 'NoComparison' attribute to the type '{2}' to clarify that the type is not comparable
+
+
+ The struct, record or union type '{0}' does not support structural equality because the type parameter {1} does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality
+
+
+ The struct, record or union type '{0}' does not support structural equality because the type '{1}' does not satisfy the 'equality' constraint. Consider adding the 'NoEquality' attribute to the type '{2}' to clarify that the type does not support structural equality
+
+
+ The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the type parameter '{1}' does not satisfy the 'equality' constraint. Consider adding the 'equality' constraint to the type parameter
+
+
+ The struct, record or union type '{0}' has the 'StructuralEquality' attribute but the component type '{1}' does not satisfy the 'equality' constraint
+
+
+ Each argument of the primary constructor for a struct must be given a type, for example 'type S(x1:int, x2: int) = ...'. These arguments determine the fields of the struct.
+
+
+ The value '{0}' is unused
+
+
+ The recursive object reference '{0}' is unused. The presence of a recursive object reference adds runtime initialization checks to members in this and derived types. Consider removing this recursive object reference.
+
+
+ A getter property may have at most one argument group
+
+
+ A setter property may have at most two argument groups
+
+
+ Invalid property getter or setter
+
+
+ An indexer property must be given at least one argument
+
+
+ This operation accesses a mutable top-level value defined in another assembly in an unsupported way. The value cannot be accessed through its address. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...', and if necessary assigning the value back after the completion of the operation
+
+
+ Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\"
+
+
+ Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\"
+
+
+ The use of the type syntax 'int C' and 'C <int>' is not permitted here. Consider adjusting this type to be written in the form 'C<int>'
+
+
+ The module/namespace '{0}' from compilation unit '{1}' did not contain the module/namespace '{2}'
+
+
+ The module/namespace '{0}' from compilation unit '{1}' did not contain the val '{2}'
+
+
+ The module/namespace '{0}' from compilation unit '{1}' did not contain the namespace, module or type '{2}'
+
+
+ The 'UseNullAsTrueValue' attribute flag may only be used with union types that have one nullary case and at least one non-nullary case
+
+
+ The parameter '{0}' was inferred to have byref type. Parameters of byref type must be given an explicit type annotation, e.g. 'x1: byref<int>'. When used, a byref parameter is implicitly dereferenced.
+
+
+ The generic member '{0}' has been used at a non-uniform instantiation prior to this program point. Consider reordering the members so this member occurs first. Alternatively, specify the full type of the member explicitly, including argument types, return type and any additional generic parameters and constraints.
+
+
+ The attribute '{0}' appears in both the implementation and the signature, but the attribute arguments differ. Only the attribute from the signature will be included in the compiled code.
+
+
+ Cannot call an abstract base member: '{0}'
+
+
+ Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position
+
+
+ This construct is for ML compatibility. {0}. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'.
+
+
+ The type '{0}' has been marked as having an Explicit layout, but the field '{1}' has not been marked with the 'FieldOffset' attribute
+
+
+ Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...'
+
+
+ Invalid prefix operator
+
+
+ Invalid operator definition. Prefix operator definitions must use a valid prefix operator name.
+
+
+ The file extensions '.ml' and '.mli' are for ML compatibility
+
+
+ Consider using a file with extension '.ml' or '.mli' instead
+
+
+ Active pattern '{0}' is not a function
+
+
+ Active pattern '{0}' has a result type containing type variables that are not determined by the input. The common cause is a when a result case is not mentioned, e.g. 'let (|A|B|) (x:int) = A x'. This can be fixed with a type constraint, e.g. 'let (|A|B|) (x:int) : Choice<int,unit> = A x'
+
+
+ The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit)
+
+
+ Optional arguments must come at the end of the argument list, after any non-optional arguments
+
+
+ Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes
+
+
+ Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead.
+
+
+ The name of the MDB file must be <assembly-file-name>.mdb. The --pdb option will be ignored.
+
+
+ MDB generation failed. Could not find compatible member {0}
+
+
+ Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly.
+
+
+ The union case named '{0}' conflicts with the generated type '{1}'
+
+
+ ReflectedDefinitionAttribute may not be applied to an instance member on a struct type, because the instance member takes an implicit 'this' byref parameter
+
+
+ DLLImport bindings must be static members in a class or function definitions in a module
+
+
+ When mscorlib.dll or FSharp.Core.dll is explicitly referenced the {0} option must also be passed
+
+
+ FSharp.Core.sigdata not found alongside FSharp.Core. File expected in {0}. Consider upgrading to a more recent version of FSharp.Core, where this file is no longer be required.
+
+
+ File '{0}' not found alongside FSharp.Core. File expected in {1}. Consider upgrading to a more recent version of FSharp.Core, where this file is no longer be required.
+
+
+ Filename '{0}' contains invalid character '{1}'
+
+
+ 'use!' bindings must be of the form 'use! <var> = <expr>'
+
+
+ Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic.
+
+
+ The type '{0}' is not a valid enumerator type , i.e. does not have a 'MoveNext()' method returning a bool, and a 'Current' property
+
+
+ End of file in triple-quote string begun at or before here
+
+
+ End of file in triple-quote string embedded in comment begun at or before here
+
+
+ This type test or downcast will ignore the unit-of-measure '{0}'
+
+
+ Expected type argument or static argument
+
+
+ Unmatched '<'. Expected closing '>'
+
+
+ Unexpected quotation operator '<@' in type definition. If you intend to pass a verbatim string as a static argument to a type provider, put a space between the '<' and '@' characters.
+
+
+ Attempted to parse this as an operator name, but failed
+
+
+ \U{0} is not a valid Unicode character escape sequence
+
+
+ '{0}' must be applied to an argument of type '{1}', but has been applied to an argument of type '{2}'
+
+
+ '{0}' can only be applied to optional arguments
+
+
+ The specified .NET Framework version '{0}' is not supported. Please specify a value from the enumeration Microsoft.Build.Utilities.TargetDotNetFrameworkVersion.
+
+
+ Invalid Magic value in CLR Header
+
+
+ Bad image format
+
+
+ Private key expected
+
+
+ RSA key expected
+
+
+ Invalid bit Length
+
+
+ Invalid RSAParameters structure - '{{0}}' expected
+
+
+ Invalid algId - 'Exponent' expected
+
+
+ Invalid signature size
+
+
+ No signature directory
+
+
+ Invalid Public Key blob
+
+
+ Exiting - too many errors
+
+
+ The documentation file has no .xml suffix
+
+
+ No implementation files specified
+
+
+ An {0} specified version '{1}', but this value is invalid and has been ignored
+
+
+ Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used.
+
+
+ The code in assembly '{0}' makes uses of quotation literals. Static linking may not include components that make use of quotation literals unless all assemblies are compiled with at least F# 4.0.
+
+
+ Code in this assembly makes uses of quotation literals. Static linking may not include components that make use of quotation literals unless all assemblies are compiled with at least F# 4.0.
+
+
+ Static linking may not include a .EXE
+
+
+ Static linking may not include a mixed managed/unmanaged DLL
+
+
+ Ignoring mixed managed/unmanaged assembly '{0}' during static linking
+
+
+ Assembly '{0}' was referenced transitively and the assembly could not be resolved automatically. Static linking will assume this DLL has no dependencies on the F# library or other statically linked DLLs. Consider adding an explicit reference to this DLL.
+
+
+ Assembly '{0}' not found in dependency set of target binary. Statically linked roots should be specified using an assembly name, without a DLL or EXE extension. If this assembly was referenced explicitly then it is possible the assembly was not actually required by the generated binary, in which case it should not be statically linked.
+
+
+ The key file '{0}' could not be opened
+
+
+ A problem occurred writing the binary '{0}': {1}
+
+
+ The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option
+
+
+ Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty'
+
+
+ Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module
+
+
+ Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module
+
+
+ Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module
+
+
+ The assembly '{0}' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'.
+
+
+ The resident compilation service was not used because a problem occured in communicating with the server.
+
+
+ Problem with filename '{0}': Illegal characters in path.
+
+
+ Passing a .resx file ({0}) as a source file to the compiler is deprecated. Use resgen.exe to transform the .resx file into a .resources file to pass as a --resource option. If you are using MSBuild, this can be done via an <EmbeddedResource> item in the .fsproj project file.
+
+
+ Static linking may not be used on an assembly referencing mscorlib (e.g. a .NET Framework assembly) when generating an assembly that references System.Runtime (e.g. a .NET Core or Portable assembly).
+
+
+ An {0} specified version '{1}', but this value is a wildcard, and you have requested a deterministic build, these are in conflict.
+
+
+ Determinstic builds only support portable PDBs (--debug:portable or --debug:embedded)
+
+
+ Character '{0}' is not allowed in provided namespace name '{1}'
+
+
+ The provided type '{0}' returned a member with a null or empty member name
+
+
+ The provided type '{0}' returned a null member
+
+
+ The provided type '{0}' member info '{1}' has null declaring type
+
+
+ The provided type '{0}' has member '{1}' which has declaring type '{2}'. Expected declaring type to be the same as provided type.
+
+
+ Referenced assembly '{0}' has assembly level attribute '{1}' but no public type provider classes were found
+
+
+ Type '{0}' from type provider '{1}' has an empty namespace. Use 'null' for the global namespace.
+
+
+ Empty namespace found from the type provider '{0}'. Use 'null' for the global namespace.
+
+
+ Provided type '{0}' has 'IsGenericType' as true, but generic types are not supported.
+
+
+ Provided type '{0}' has 'IsArray' as true, but array types are not supported.
+
+
+ Invalid member '{0}' on provided type '{1}'. Provided type members must be public, and not be generic, virtual, or abstract.
+
+
+ Invalid member '{0}' on provided type '{1}'. Only properties, methods and constructors are allowed
+
+
+ Property '{0}' on provided type '{1}' has CanRead=true but there was no value from GetGetMethod()
+
+
+ Property '{0}' on provided type '{1}' has CanRead=false but GetGetMethod() returned a method
+
+
+ Property '{0}' on provided type '{1}' has CanWrite=true but there was no value from GetSetMethod()
+
+
+ Property '{0}' on provided type '{1}' has CanWrite=false but GetSetMethod() returned a method
+
+
+ One or more errors seen during provided type setup
+
+
+ Unexpected exception from provided type '{0}' member '{1}': {2}
+
+
+ Unsupported constant type '{0}'. Quotations provided by type providers can only contain simple constants. The implementation of the type provider may need to be adjusted by moving a value declared outside a provided quotation literal to be a 'let' binding inside the quotation literal.
+
+
+ Unsupported expression '{0}' from type provider. If you are the author of this type provider, consider adjusting it to provide a different provided expression.
+
+
+ Expected provided type named '{0}' but provided type has 'Name' with value '{1}'
+
+
+ Event '{0}' on provided type '{1}' has no value from GetAddMethod()
+
+
+ Event '{0}' on provided type '{1}' has no value from GetRemoveMethod()
+
+
+ Assembly attribute '{0}' refers to a designer assembly '{1}' which cannot be loaded or doesn't exist. {2}
+
+
+ The type provider does not have a valid constructor. A constructor taking either no arguments or one argument of type 'TypeProviderConfig' was expected.
+
+
+ The type provider '{0}' reported an error: {1}
+
+
+ The type provider '{0}' used an invalid parameter in the ParameterExpression: {1}
+
+
+ The type provider '{0}' provided a method with a name '{1}' and metadata token '{2}', which is not reported among its methods of its declaring type '{3}'
+
+
+ The type provider '{0}' provided a constructor which is not reported among the constructors of its declaring type '{1}'
+
+
+ A direct reference to the generated type '{0}' is not permitted. Instead, use a type definition, e.g. 'type TypeAlias = <path>'. This indicates that a type provider adds generated types to your assembly.
+
+
+ Expected provided type with path '{0}' but provided type has path '{1}'
+
+
+ Unexpected 'null' return value from provided type '{0}' member '{1}'
+
+
+ Unexpected exception from member '{0}' of provided type '{1}' member '{2}': {3}
+
+
+ Nested provided types do not take static arguments or generic parameters
+
+
+ Invalid static argument to provided type. Expected an argument of kind '{0}'.
+
+
+ An error occured applying the static arguments to a provided type
+
+
+ Unknown static argument kind '{0}' when resolving a reference to a provided type or method '{1}'
+
+
+ invalid namespace for provided type
+
+
+ invalid full name for provided type
+
+
+ The type provider returned 'null', which is not a valid return value from '{0}'
+
+
+ The type provider constructor has thrown an exception: {0}
+
+
+ Type provider '{0}' returned null from GetInvokerExpression.
+
+
+ The type provider '{0}' returned an invalid type from 'ApplyStaticArguments'. A type with name '{1}' was expected, but a type with name '{2}' was returned.
+
+
+ The type provider '{0}' returned an invalid method from 'ApplyStaticArgumentsForMethod'. A method with name '{1}' was expected, but a method with name '{2}' was returned.
+
+
+ This type test or downcast will erase the provided type '{0}' to the type '{1}'
+
+
+ This downcast will erase the provided type '{0}' to the type '{1}'.
+
+
+ This type test with a provided type '{0}' is not allowed because this provided type will be erased to '{1}' at runtime.
+
+
+ Cannot inherit from erased provided type
+
+
+ Assembly '{0}' hase TypeProviderAssembly attribute with invalid value '{1}'. The value should be a valid assembly name
+
+
+ Invalid member name. Members may not have name '.ctor' or '.cctor'
+
+
+ The function or member '{0}' is used in a way that requires further type annotations at its definition to ensure consistency of inferred types. The inferred signature is '{1}'.
+
+
+ The number of type arguments did not match: '{0}' given, '{1}' expected. This may be related to a previously reported error.
+
+
+ Cannot override inherited member '{0}' because it is sealed
+
+
+ The type provider '{0}' reported an error in the context of provided type '{1}', member '{2}'. The error: {3}
+
+
+ An exception occurred when accessing the '{0}' of a provided type: {1}
+
+
+ The '{0}' of a provided type was null or empty.
+
+
+ Character '{0}' is not allowed in provided type name '{1}'
+
+
+ In queries, '{0}' must use a simple pattern
+
+
+ A custom query operation for '{0}' is required but not specified
+
+
+ Named static arguments must come after all unnamed static arguments
+
+
+ The static parameter '{0}' of the provided type or method '{1}' requires a value. Static parameters to type providers may be optionally specified using named arguments, e.g. '{2}<{3}=...>'.
+
+
+ No static parameter exists with name '{0}'
+
+
+ The static parameter '{0}' has already been given a value
+
+
+ Multiple static parameters exist with name '{0}'
+
+
+ A custom operation may not be used in conjunction with a non-value or recursive 'let' binding in another part of this computation expression
+
+
+ A custom operation may not be used in conjunction with 'use', 'try/with', 'try/finally', 'if/then/else' or 'match' operators within this computation expression
+
+
+ The custom operation '{0}' refers to a method which is overloaded. The implementations of custom operations may not be overloaded.
+
+
+ An if/then/else expression may not be used within queries. Consider using either an if/then expression, or use a sequence expression instead.
+
+
+ Invalid argument to 'methodhandleof' during codegen
+
+
+ A reference to a provided type was missing a value for the static parameter '{0}'. You may need to recompile one or more referenced assemblies.
+
+
+ A reference to a provided type had an invalid value '{0}' for a static parameter. You may need to recompile one or more referenced assemblies.
+
+
+ '{0}' is not used correctly. This is a custom operation in this query or computation expression.
+
+
+ '{0}' is not used correctly. Usage: {1}. This is a custom operation in this query or computation expression.
+
+
+ {0} var in collection {1} (outerKey = innerKey). Note that parentheses are required after '{2}'
+
+
+ {0} var in collection {1} (outerKey = innerKey) into group. Note that parentheses are required after '{2}'
+
+
+ {0} var in collection
+
+
+ '{0}' must be followed by a variable name. Usage: {1}.
+
+
+ Incorrect syntax for '{0}'. Usage: {1}.
+
+
+ '{0}' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... {1} ...
+
+
+ '{0}' is used with an incorrect number of arguments. This is a custom operation in this query or computation expression. Expected {1} argument(s), but given {2}.
+
+
+ Expected an expression after this point
+
+
+ Expected a type after this point
+
+
+ Unmatched '[<'. Expected closing '>]'
+
+
+ Unexpected end of input in 'match' expression. Expected 'match <expr> with | <pat> -> <expr> | <pat> -> <expr> ...'.
+
+
+ Unexpected end of input in 'try' expression. Expected 'try <expr> with <rules>' or 'try <expr> finally <expr>'.
+
+
+ Unexpected end of input in 'while' expression. Expected 'while <expr> do <expr>'.
+
+
+ Unexpected end of input in 'for' expression. Expected 'for <pat> in <expr> do <expr>'.
+
+
+ Unexpected end of input in 'match' or 'try' expression
+
+
+ Unexpected end of input in 'then' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'.
+
+
+ Unexpected end of input in 'else' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'.
+
+
+ Unexpected end of input in body of lambda expression. Expected 'fun <pat> ... <pat> -> <expr>'.
+
+
+ Unexpected end of input in type arguments
+
+
+ Unexpected end of input in type signature
+
+
+ Unexpected end of input in type definition
+
+
+ Unexpected end of input in object members
+
+
+ Unexpected end of input in value, function or member definition
+
+
+ Unexpected end of input in expression
+
+
+ Unexpected end of type. Expected a name after this point.
+
+
+ Incomplete value or function definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let' keyword.
+
+
+ Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'let!' keyword.
+
+
+ Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use!' keyword.
+
+
+ Incomplete value definition. If this is in an expression, the body of the expression must be indented to the same column as the 'use' keyword.
+
+
+ Missing 'do' in 'while' expression. Expected 'while <expr> do <expr>'.
+
+
+ Missing 'do' in 'for' expression. Expected 'for <pat> in <expr> do <expr>'.
+
+
+ Invalid join relation in '{0}'. Expected 'expr <op> expr', where <op> is =, =?, ?= or ?=?.
+
+
+ Calls
+
+
+ Invalid number of generic arguments to type '{0}' in provided type. Expected '{1}' arguments, given '{2}'.
+
+
+ Invalid value '{0}' for unit-of-measure parameter '{1}'
+
+
+ Invalid value unit-of-measure parameter '{0}'
+
+
+ Property '{0}' on provided type '{1}' is neither readable nor writable as it has CanRead=false and CanWrite=false
+
+
+ A use of 'into' must be followed by the remainder of the computation
+
+
+ The operator '{0}' does not accept the use of 'into'
+
+
+ The definition of the custom operator '{0}' does not use a valid combination of attribute flags
+
+
+ This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute.
+
+
+ 'member val' definitions are only permitted in types with a primary constructor. Consider adding arguments to your type definition, e.g. 'type X(args) = ...'.
+
+
+ Property definitions may not be declared mutable. To indicate that this property can be set, use 'member val PropertyName = expr with get,set'.
+
+
+ To indicate that this property can be set, use 'member val PropertyName = expr with get,set'.
+
+
+ Type '{0}' is illegal because in byref<T>, T cannot contain byref types.
+
+
+ F# supports array ranks between 1 and 32. The value {0} is not allowed.
+
+
+ In queries, use the form 'for x in n .. m do ...' for ranging over integers
+
+
+ 'while' expressions may not be used in queries
+
+
+ 'try/finally' expressions may not be used in queries
+
+
+ 'use' expressions may not be used in queries
+
+
+ 'let!', 'use!' and 'do!' expressions may not be used in queries
+
+
+ 'return' and 'return!' may not be used in queries
+
+
+ This is not a known query operator. Query operators are identifiers such as 'select', 'where', 'sortBy', 'thenBy', 'groupBy', 'groupValBy', 'join', 'groupJoin', 'sumBy' and 'averageBy', defined using corresponding methods on the 'QueryBuilder' type.
+
+
+ 'try/with' expressions may not be used in queries
+
+
+ This 'let' definition may not be used in a query. Only simple value definitions may be used in queries.
+
+
+ Too many static parameters. Expected at most {0} parameters, but got {1} unnamed and {2} named parameters.
+
+
+ Invalid provided literal value '{0}'
+
+
+ The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead.
+
+
+ This member, function or value declaration may not be declared 'inline'
+
+
+ The provider '{0}' returned a non-generated type '{1}' in the context of a set of generated types. Consider adjusting the type provider to only return generated types.
+
+
+ Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)'
+
+
+ A quotation may not involve an assignment to or taking the address of a captured local variable
+
+
+ + 1 overload
+
+
+ + {0} overloads
+
+
+ Erased to
+
+
+ Unexpected token '{0}' or incomplete expression
+
+
+ Cannot find code target for this attribute, possibly because the code after the attribute is incomplete.
+
+
+ Type name cannot be empty.
+
+
+ Problem reading assembly '{0}': {1}
+
+
+ Invalid provided field. Provided fields of erased provided types must be literals.
+
+
+ (loading description...)
+
+
+ (description unavailable...)
+
+
+ A type variable has been constrained by multiple different class types. A type variable may only have one class constraint.
+
+
+ 'match' expressions may not be used in queries
+
+
+ Infix operator member '{0}' has {1} initial argument(s). Expected a tuple of 3 arguments
+
+
+ The operator '{0}' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'.
+
+
+ '{0}' must be followed by 'in'. Usage: {1}.
+
+
+ Neither 'member val' nor 'override val' definitions are permitted in object expressions.
+
+
+ Copy-and-update record expressions must include at least one field.
+
+
+ '_' cannot be used as field name
+
+
+ The provided types generated by this use of a type provider may not be used from other F# assemblies and should be marked internal or private. Consider using 'type internal TypeName = ...' or 'type private TypeName = ...'.
+
+
+ A property's getter and setter must have the same type. Property '{0}' has getter of type '{1}' but setter of type '{2}'.
+
+
+ Array method '{0}' is supplied by the runtime and cannot be directly used in code. For operations with array elements consider using family of GetArray/SetArray functions from LanguagePrimitives.IntrinsicFunctions module.
+
+
+ Union case/exception '{0}' does not have field named '{1}'.
+
+
+ Union case/exception field '{0}' cannot be used more than once.
+
+
+ Named field '{0}' is used more than once.
+
+
+ Named field '{0}' conflicts with autogenerated name for anonymous field.
+
+
+ This literal expression or attribute argument results in an arithmetic overflow.
+
+
+ This is not valid literal expression. The [<Literal>] attribute will be ignored.
+
+
+ System.Runtime.InteropServices assembly is required to use UnknownWrapper\DispatchWrapper classes.
+
+
+ The mutable local '{0}' is implicitly allocated as a reference cell because it has been captured by a closure. This warning is for informational purposes only to indicate where implicit allocations are performed.
+
+
+ A type provider implemented GetStaticParametersForMethod, but ApplyStaticArgumentsForMethod was not implemented or invalid
+
+
+ An error occured applying the static arguments to a provided method
+
+
+ Unexpected character '{0}' in preprocessor expression
+
+
+ Unexpected token '{0}' in preprocessor expression
+
+
+ Incomplete preprocessor expression
+
+
+ Missing token '{0}' in preprocessor expression
+
+
+ An error occurred while reading the F# metadata node at position {0} in table '{1}' of assembly '{2}'. The node had no matching declaration. Please report this warning. You may need to recompile the F# assembly you are using.
+
+
+ Type inference caused the type variable {0} to escape its scope. Consider adding an explicit type parameter declaration or adjusting your code to be less generic.
+
+
+ Type inference caused an inference type variable to escape its scope. Consider adding type annotations to make your code less generic.
+
+
+ Redundant arguments are being ignored in function '{0}'. Expected {1} but got {2} arguments.
+
+
+ Lowercase literal '{0}' is being shadowed by a new pattern with the same name. Only uppercase and module-prefixed literals can be used as named patterns.
+
+
+ This literal pattern does not take arguments
+
+
+ Constructors are not permitted as extension members - they must be defined as part of the original definition of the type
+
+
+ Invalid response file '{0}' ( '{1}' )
+
+
+ Response file '{0}' not found in '{1}'
+
+
+ Response file name '{0}' is empty, contains invalid characters, has a drive specification without an absolute path, or is too long
+
+
+ Cannot find FSharp.Core.dll in compiler's directory
+
+
+ One tuple type is a struct tuple, the other is a reference tuple
+
+
+ This provided method requires static parameters
+
+
+ The conversion from {0} to {1} is a compile-time safe upcast, not a downcast. Consider using 'upcast' instead of 'downcast'.
+
+
+ The conversion from {0} to {1} is a compile-time safe upcast, not a downcast. Consider using the :> (upcast) operator instead of the :?> (downcast) operator.
+
+
+ The 'rec' on this module is implied by an outer 'rec' declaration and is being ignored
+
+
+ In a recursive declaration group, 'open' declarations must come first in each module
+
+
+ In a recursive declaration group, module abbreviations must come after all 'open' declarations and before other declarations
+
+
+ This declaration is not supported in recursive declaration groups
+
+
+ Invalid use of 'rec' keyword
+
+
+ If a union type has more than one case and is a struct, then all fields within the union type must be given unique names.
+
+
+ The CallerMemberNameAttribute applied to parameter '{0}' will have no effect. It is overridden by the CallerFilePathAttribute.
+
+
+ Invalid use of 'fixed'. 'fixed' may only be used in a declaration of the form 'use x = fixed expr' where the expression is an array, the address of a field, the address of an array element or a string'
+
+
+ Could not find method System.Runtime.CompilerServices.OffsetToStringData in references when building 'fixed' expression.
+
+
+ The address of the variable '{0}' cannot be used at this point. A method or function may not return the address of this local value.
+
+
+ {0} is an active pattern and cannot be treated as a discriminated union case with named fields.
+
+
+ The default value does not have the same type as the argument. The DefaultParameterValue attribute and any Optional attribute will be ignored. Note: 'null' needs to be annotated with the correct type, e.g. 'DefaultParameterValue(null:obj)'.
+
+
+ The system type '{0}' was required but no referenced system DLL contained this type
+
+
+ The member '{0}' matches multiple overloads of the same method.\nPlease restrict it to one of the following:{1}.
+
+
+ Method or object constructor '{0}' is not static
+
+
+ Unexpected symbol '=' in expression. Did you intend to use 'for x in y .. z do' instead?
+
+
+ Indicates a method that either has no implementation in the type in which it is declared or that is virtual and has a default implementation.
+
+
+ Used in mutually recursive bindings, in property declarations, and with multiple constraints on generic parameters.
+
+
+ Used to give the current class object an object name. Also used to give a name to a whole pattern within a pattern match.
+
+
+ Used to verify code during debugging.
+
+
+ Used as the name of the base class object.
+
+
+ In verbose syntax, indicates the start of a code block.
+
+
+ In verbose syntax, indicates the start of a class definition.
+
+
+ Indicates an implementation of an abstract method; used together with an abstract method declaration to create a virtual method.
+
+
+ Used to declare a delegate.
+
+
+ Used in looping constructs or to execute imperative code.
+
+
+ In verbose syntax, indicates the end of a block of code in a looping expression.
+
+
+ Used to convert to a type that is lower in the inheritance chain.
+
+
+ In a for expression, used when counting in reverse.
+
+
+ Used in conditional branching. A short form of else if.
+
+
+ Used in conditional branching.
+
+
+ In type definitions and type extensions, indicates the end of a section of member definitions. In verbose syntax, used to specify the end of a code block that starts with the begin keyword.
+
+
+ Used to declare an exception type.
+
+
+ Indicates that a declared program element is defined in another binary or assembly.
+
+
+ Used as a Boolean literal.
+
+
+ Used together with try to introduce a block of code that executes regardless of whether an exception occurs.
+
+
+ Used in looping constructs.
+
+
+ Used in lambda expressions, also known as anonymous functions.
+
+
+ Used as a shorter alternative to the fun keyword and a match expression in a lambda expression that has pattern matching on a single argument.
+
+
+ Used to reference the top-level .NET namespace.
+
+
+ Used in conditional branching constructs.
+
+
+ Used for sequence expressions and, in verbose syntax, to separate expressions from bindings.
+
+
+ Used to specify a base class or base interface.
+
+
+ Used to indicate a function that should be integrated directly into the caller's code.
+
+
+ Used to declare and implement interfaces.
+
+
+ Used to specify that a member is visible inside an assembly but not outside it.
+
+
+ Used to specify a computation that is to be performed only when a result is needed.
+
+
+ Used to associate, or bind, a name to a value or function.
+
+
+ Used in asynchronous workflows to bind a name to the result of an asynchronous computation, or, in other computation expressions, used to bind a name to a result, which is of the computation type.
+
+
+ Used to branch by comparing a value to a pattern.
+
+
+ Used to declare a property or method in an object type.
+
+
+ Used to associate a name with a group of related types, values, and functions, to logically separate it from other code.
+
+
+ Used to declare a variable, that is, a value that can be changed.
+
+
+ Used to associate a name with a group of related types and modules, to logically separate it from other code.
+
+
+ Used to declare, define, or invoke a constructor that creates or that can create an object. Also used in generic parameter constraints to indicate that a type must have a certain constructor.
+
+
+ Not actually a keyword. However, not struct in combination is used as a generic parameter constraint.
+
+
+ Indicates the absence of an object. Also used in generic parameter constraints.
+
+
+ Used in discriminated unions to indicate the type of categories of values, and in delegate and exception declarations.
+
+
+ Used to make the contents of a namespace or module available without qualification.
+
+
+ Used with Boolean conditions as a Boolean or operator. Equivalent to ||. Also used in member constraints.
+
+
+ Used to implement a version of an abstract or virtual method that differs from the base version.
+
+
+ Restricts access to a member to code in the same type or module.
+
+
+ Allows access to a member from outside the type.
+
+
+ Used to indicate that a function is recursive.
+
+
+ Used to indicate a value to provide as the result of a computation expression.
+
+
+ Used to indicate a computation expression that, when evaluated, provides the result of the containing computation expression.
+
+
+ Used in query expressions to specify what fields or columns to extract. Note that this is a contextual keyword, which means that it is not actually a reserved word and it only acts like a keyword in appropriate context.
+
+
+ Used to indicate a method or property that can be called without an instance of a type, or a value member that is shared among all instances of a type.
+
+
+ Used to declare a structure type. Also used in generic parameter constraints. Used for OCaml compatibility in module definitions.
+
+
+ Used in conditional expressions. Also used to perform side effects after object construction.
+
+
+ Used in for loops to indicate a range.
+
+
+ Used to introduce a block of code that might generate an exception. Used together with with or finally.
+
+
+ Used to declare a class, record, structure, discriminated union, enumeration type, unit of measure, or type abbreviation.
+
+
+ Used to convert to a type that is higher in the inheritance chain.
+
+
+ Used instead of let for values that require Dispose to be called to free resources.
+
+
+ Used instead of let! in asynchronous workflows and other computation expressions for values that require Dispose to be called to free resources.
+
+
+ Used in a signature to indicate a value, or in a type to declare a member, in limited situations.
+
+
+ Indicates the .NET void type. Used when interoperating with other .NET languages.
+
+
+ Used for Boolean conditions (when guards) on pattern matches and to introduce a constraint clause for a generic type parameter.
+
+
+ Introduces a looping construct.
+
+
+ Used together with the match keyword in pattern matching expressions. Also used in object expressions, record copying expressions, and type extensions to introduce member definitions, and to introduce exception handlers.
+
+
+ Used in a sequence expression to produce a value for a sequence.
+
+
+ Used in a computation expression to append the result of a given computation expression to a collection of results for the containing computation expression.
+
+
+ In function types, delimits arguments and return values. Yields an expression (in sequence expressions); equivalent to the yield keyword. Used in match expressions
+
+
+ Assigns a value to a variable.
+
+
+ Converts a type to type that is higher in the hierarchy.
+
+
+ Converts a type to a type that is lower in the hierarchy.
+
+
+ Delimits a typed code quotation.
+
+
+ Delimits a untyped code quotation.
+
+
+ {0} '{1}' not found in assembly '{2}'. A possible cause may be a version incompatibility. You may need to explicitly reference the correct version of this assembly to allow all referenced components to use the correct version.
+
+
+ {0} '{1}' not found in type '{2}' from assembly '{3}'. A possible cause may be a version incompatibility. You may need to explicitly reference the correct version of this assembly to allow all referenced components to use the correct version.
+
+
+ is
+
+
+ This value is not a function and cannot be applied.
+
+
+ This value is not a function and cannot be applied. Did you intend to access the indexer via {0}.[index] instead?
+
+
+ This expression is not a function and cannot be applied. Did you intend to access the indexer via expr.[index] instead?
+
+
+
+
+
+
+ This value is not a function and cannot be applied. Did you forget to terminate a declaration?
+
+
+ The argument names in the signature '{0}' and implementation '{1}' do not match. The argument name from the signature file will be used. This may cause problems when debugging or profiling.
+
+
+ An error occurred while reading the F# metadata of assembly '{0}'. A reserved construct was utilized. You may need to upgrade your F# compiler or use an earlier version of the assembly that doesn't make use of a specific construct.
+
+
\ No newline at end of file
diff --git a/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.fs b/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.fs
new file mode 100644
index 000000000..94cd9e3b4
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.fs
@@ -0,0 +1,333 @@
+// This is a generated file; the original input is '..\fsi\FSIstrings.txt'
+namespace FSIstrings
+
+open Microsoft.FSharp.Core.LanguagePrimitives.IntrinsicOperators
+open Microsoft.FSharp.Reflection
+open System.Reflection
+// (namespaces below for specific case of using the tool to compile FSharp.Core itself)
+open Microsoft.FSharp.Core
+open Microsoft.FSharp.Core.Operators
+open Microsoft.FSharp.Text
+open Microsoft.FSharp.Collections
+open Printf
+
+type internal SR private() =
+
+ // BEGIN BOILERPLATE
+
+ static let getCurrentAssembly () =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ typeof.GetTypeInfo().Assembly
+ #else
+ System.Reflection.Assembly.GetExecutingAssembly()
+ #endif
+
+ static let getTypeInfo (t: System.Type) =
+ #if DNXCORE50 || NETSTANDARD1_5 || NETSTANDARD1_6 || NETCOREAPP1_0
+ t.GetTypeInfo()
+ #else
+ t
+ #endif
+
+ static let resources = lazy (new System.Resources.ResourceManager("FSIstrings", getCurrentAssembly()))
+
+ static let GetString(name:string) =
+ let s = resources.Value.GetString(name, System.Globalization.CultureInfo.CurrentUICulture)
+ #if DEBUG
+ if null = s then
+ System.Diagnostics.Debug.Assert(false, sprintf "**RESOURCE ERROR**: Resource token %s does not exist!" name)
+ #endif
+ s
+
+ static let mkFunctionValue (tys: System.Type[]) (impl:obj->obj) =
+ FSharpValue.MakeFunction(FSharpType.MakeFunctionType(tys.[0],tys.[1]), impl)
+
+ static let funTyC = typeof<(obj -> obj)>.GetGenericTypeDefinition()
+
+ static let isNamedType(ty:System.Type) = not (ty.IsArray || ty.IsByRef || ty.IsPointer)
+ static let isFunctionType (ty1:System.Type) =
+ isNamedType(ty1) && getTypeInfo(ty1).IsGenericType && (ty1.GetGenericTypeDefinition()).Equals(funTyC)
+
+ static let rec destFunTy (ty:System.Type) =
+ if isFunctionType ty then
+ ty, ty.GetGenericArguments()
+ else
+ match getTypeInfo(ty).BaseType with
+ | null -> failwith "destFunTy: not a function type"
+ | b -> destFunTy b
+
+ static let buildFunctionForOneArgPat (ty: System.Type) impl =
+ let _,tys = destFunTy ty
+ let rty = tys.[1]
+ // PERF: this technique is a bit slow (e.g. in simple cases, like 'sprintf "%x"')
+ mkFunctionValue tys (fun inp -> impl rty inp)
+
+ static let capture1 (fmt:string) i args ty (go : obj list -> System.Type -> int -> obj) : obj =
+ match fmt.[i] with
+ | '%' -> go args ty (i+1)
+ | 'd'
+ | 'f'
+ | 's' -> buildFunctionForOneArgPat ty (fun rty n -> go (n::args) rty (i+1))
+ | _ -> failwith "bad format specifier"
+
+ // newlines and tabs get converted to strings when read from a resource file
+ // this will preserve their original intention
+ static let postProcessString (s : string) =
+ s.Replace("\\n","\n").Replace("\\t","\t").Replace("\\r","\r").Replace("\\\"", "\"")
+
+ static let createMessageString (messageString : string) (fmt : Printf.StringFormat<'T>) : 'T =
+ let fmt = fmt.Value // here, we use the actual error string, as opposed to the one stored as fmt
+ let len = fmt.Length
+
+ /// Function to capture the arguments and then run.
+ let rec capture args ty i =
+ if i >= len || (fmt.[i] = '%' && i+1 >= len) then
+ let b = new System.Text.StringBuilder()
+ b.AppendFormat(messageString, [| for x in List.rev args -> x |]) |> ignore
+ box(b.ToString())
+ // REVIEW: For these purposes, this should be a nop, but I'm leaving it
+ // in incase we ever decide to support labels for the error format string
+ // E.g., "%s%d"
+ elif System.Char.IsSurrogatePair(fmt,i) then
+ capture args ty (i+2)
+ else
+ match fmt.[i] with
+ | '%' ->
+ let i = i+1
+ capture1 fmt i args ty capture
+ | _ ->
+ capture args ty (i+1)
+
+ (unbox (capture [] (typeof<'T>) 0) : 'T)
+
+ static let mutable swallowResourceText = false
+
+ static let GetStringFunc((messageID : string),(fmt : Printf.StringFormat<'T>)) : 'T =
+ if swallowResourceText then
+ sprintf fmt
+ else
+ let mutable messageString = GetString(messageID)
+ messageString <- postProcessString messageString
+ createMessageString messageString fmt
+
+ /// If set to true, then all error messages will just return the filled 'holes' delimited by ',,,'s - this is for language-neutral testing (e.g. localization-invariant baselines).
+ static member SwallowResourceText with get () = swallowResourceText
+ and set (b) = swallowResourceText <- b
+ // END BOILERPLATE
+
+ /// Stopped due to error\n
+ /// (Originally from ..\fsi\FSIstrings.txt:2)
+ static member stoppedDueToError() = (GetStringFunc("stoppedDueToError",",,,") )
+ /// Usage: %s [script.fsx []]
+ /// (Originally from ..\fsi\FSIstrings.txt:3)
+ static member fsiUsage(a0 : System.String) = (GetStringFunc("fsiUsage",",,,%s,,,") a0)
+ /// - INPUT FILES -
+ /// (Originally from ..\fsi\FSIstrings.txt:4)
+ static member fsiInputFiles() = (GetStringFunc("fsiInputFiles",",,,") )
+ /// - CODE GENERATION -
+ /// (Originally from ..\fsi\FSIstrings.txt:5)
+ static member fsiCodeGeneration() = (GetStringFunc("fsiCodeGeneration",",,,") )
+ /// - ERRORS AND WARNINGS -
+ /// (Originally from ..\fsi\FSIstrings.txt:6)
+ static member fsiErrorsAndWarnings() = (GetStringFunc("fsiErrorsAndWarnings",",,,") )
+ /// - LANGUAGE -
+ /// (Originally from ..\fsi\FSIstrings.txt:7)
+ static member fsiLanguage() = (GetStringFunc("fsiLanguage",",,,") )
+ /// - MISCELLANEOUS -
+ /// (Originally from ..\fsi\FSIstrings.txt:8)
+ static member fsiMiscellaneous() = (GetStringFunc("fsiMiscellaneous",",,,") )
+ /// - ADVANCED -
+ /// (Originally from ..\fsi\FSIstrings.txt:9)
+ static member fsiAdvanced() = (GetStringFunc("fsiAdvanced",",,,") )
+ /// Exception raised when starting remoting server.\n%s
+ /// (Originally from ..\fsi\FSIstrings.txt:10)
+ static member fsiExceptionRaisedStartingServer(a0 : System.String) = (GetStringFunc("fsiExceptionRaisedStartingServer",",,,%s,,,") a0)
+ /// Use the given file on startup as initial input
+ /// (Originally from ..\fsi\FSIstrings.txt:11)
+ static member fsiUse() = (GetStringFunc("fsiUse",",,,") )
+ /// #load the given file on startup
+ /// (Originally from ..\fsi\FSIstrings.txt:12)
+ static member fsiLoad() = (GetStringFunc("fsiLoad",",,,") )
+ /// Treat remaining arguments as command line arguments, accessed using fsi.CommandLineArgs
+ /// (Originally from ..\fsi\FSIstrings.txt:13)
+ static member fsiRemaining() = (GetStringFunc("fsiRemaining",",,,") )
+ /// Display this usage message (Short form: -?)
+ /// (Originally from ..\fsi\FSIstrings.txt:14)
+ static member fsiHelp() = (GetStringFunc("fsiHelp",",,,") )
+ /// Exit fsi after loading the files or running the .fsx script given on the command line
+ /// (Originally from ..\fsi\FSIstrings.txt:15)
+ static member fsiExec() = (GetStringFunc("fsiExec",",,,") )
+ /// Execute interactions on a Windows Forms event loop (on by default)
+ /// (Originally from ..\fsi\FSIstrings.txt:16)
+ static member fsiGui() = (GetStringFunc("fsiGui",",,,") )
+ /// Suppress fsi writing to stdout
+ /// (Originally from ..\fsi\FSIstrings.txt:17)
+ static member fsiQuiet() = (GetStringFunc("fsiQuiet",",,,") )
+ /// Support TAB completion in console (on by default)
+ /// (Originally from ..\fsi\FSIstrings.txt:18)
+ static member fsiReadline() = (GetStringFunc("fsiReadline",",,,") )
+ /// Emit debug information in quotations
+ /// (Originally from ..\fsi\FSIstrings.txt:19)
+ static member fsiEmitDebugInfoInQuotations() = (GetStringFunc("fsiEmitDebugInfoInQuotations",",,,") )
+ /// For help type #help;;
+ /// (Originally from ..\fsi\FSIstrings.txt:20)
+ static member fsiBanner3() = (GetStringFunc("fsiBanner3",",,,") )
+ /// A problem occurred starting the F# Interactive process. This may be due to a known problem with background process console support for Unicode-enabled applications on some Windows systems. Try selecting Tools->Options->F# Interactive for Visual Studio and enter '--fsi-server-no-unicode'.
+ /// (Originally from ..\fsi\FSIstrings.txt:21)
+ static member fsiConsoleProblem() = (GetStringFunc("fsiConsoleProblem",",,,") )
+ /// '%s' is not a valid assembly name
+ /// (Originally from ..\fsi\FSIstrings.txt:22)
+ static member fsiInvalidAssembly(a0 : System.String) = (2301, GetStringFunc("fsiInvalidAssembly",",,,%s,,,") a0)
+ /// Directory '%s' doesn't exist
+ /// (Originally from ..\fsi\FSIstrings.txt:23)
+ static member fsiDirectoryDoesNotExist(a0 : System.String) = (2302, GetStringFunc("fsiDirectoryDoesNotExist",",,,%s,,,") a0)
+ /// Invalid directive '#%s %s'
+ /// (Originally from ..\fsi\FSIstrings.txt:24)
+ static member fsiInvalidDirective(a0 : System.String, a1 : System.String) = (GetStringFunc("fsiInvalidDirective",",,,%s,,,%s,,,") a0 a1)
+ /// Warning: line too long, ignoring some characters\n
+ /// (Originally from ..\fsi\FSIstrings.txt:25)
+ static member fsiLineTooLong() = (GetStringFunc("fsiLineTooLong",",,,") )
+ /// Real: %s, CPU: %s, GC %s
+ /// (Originally from ..\fsi\FSIstrings.txt:26)
+ static member fsiTimeInfoMainString(a0 : System.String, a1 : System.String, a2 : System.String) = (GetStringFunc("fsiTimeInfoMainString",",,,%s,,,%s,,,%s,,,") a0 a1 a2)
+ /// gen
+ /// (Originally from ..\fsi\FSIstrings.txt:27)
+ static member fsiTimeInfoGCGenerationLabelSomeShorthandForTheWordGeneration() = (GetStringFunc("fsiTimeInfoGCGenerationLabelSomeShorthandForTheWordGeneration",",,,") )
+ /// \n\nException raised during pretty printing.\nPlease report this so it can be fixed.\nTrace: %s\n
+ /// (Originally from ..\fsi\FSIstrings.txt:28)
+ static member fsiExceptionDuringPrettyPrinting(a0 : System.String) = (GetStringFunc("fsiExceptionDuringPrettyPrinting",",,,%s,,,") a0)
+ /// F# Interactive directives:
+ /// (Originally from ..\fsi\FSIstrings.txt:29)
+ static member fsiIntroTextHeader1directives() = (GetStringFunc("fsiIntroTextHeader1directives",",,,") )
+ /// Reference (dynamically load) the given DLL
+ /// (Originally from ..\fsi\FSIstrings.txt:30)
+ static member fsiIntroTextHashrInfo() = (GetStringFunc("fsiIntroTextHashrInfo",",,,") )
+ /// Add the given search path for referenced DLLs
+ /// (Originally from ..\fsi\FSIstrings.txt:31)
+ static member fsiIntroTextHashIInfo() = (GetStringFunc("fsiIntroTextHashIInfo",",,,") )
+ /// Load the given file(s) as if compiled and referenced
+ /// (Originally from ..\fsi\FSIstrings.txt:32)
+ static member fsiIntroTextHashloadInfo() = (GetStringFunc("fsiIntroTextHashloadInfo",",,,") )
+ /// Toggle timing on/off
+ /// (Originally from ..\fsi\FSIstrings.txt:33)
+ static member fsiIntroTextHashtimeInfo() = (GetStringFunc("fsiIntroTextHashtimeInfo",",,,") )
+ /// Display help
+ /// (Originally from ..\fsi\FSIstrings.txt:34)
+ static member fsiIntroTextHashhelpInfo() = (GetStringFunc("fsiIntroTextHashhelpInfo",",,,") )
+ /// Exit
+ /// (Originally from ..\fsi\FSIstrings.txt:35)
+ static member fsiIntroTextHashquitInfo() = (GetStringFunc("fsiIntroTextHashquitInfo",",,,") )
+ /// F# Interactive command line options:
+ /// (Originally from ..\fsi\FSIstrings.txt:36)
+ static member fsiIntroTextHeader2commandLine() = (GetStringFunc("fsiIntroTextHeader2commandLine",",,,") )
+ /// See '%s' for options
+ /// (Originally from ..\fsi\FSIstrings.txt:37)
+ static member fsiIntroTextHeader3(a0 : System.String) = (GetStringFunc("fsiIntroTextHeader3",",,,%s,,,") a0)
+ /// Loading
+ /// (Originally from ..\fsi\FSIstrings.txt:38)
+ static member fsiLoadingFilesPrefixText() = (GetStringFunc("fsiLoadingFilesPrefixText",",,,") )
+ /// \n- Interrupt\n
+ /// (Originally from ..\fsi\FSIstrings.txt:39)
+ static member fsiInterrupt() = (GetStringFunc("fsiInterrupt",",,,") )
+ /// \n- Exit...\n
+ /// (Originally from ..\fsi\FSIstrings.txt:40)
+ static member fsiExit() = (GetStringFunc("fsiExit",",,,") )
+ /// - Aborting main thread...
+ /// (Originally from ..\fsi\FSIstrings.txt:41)
+ static member fsiAbortingMainThread() = (GetStringFunc("fsiAbortingMainThread",",,,") )
+ /// Failed to install ctrl-c handler - Ctrl-C handling will not be available. Error was:\n\t%s
+ /// (Originally from ..\fsi\FSIstrings.txt:42)
+ static member fsiCouldNotInstallCtrlCHandler(a0 : System.String) = (GetStringFunc("fsiCouldNotInstallCtrlCHandler",",,,%s,,,") a0)
+ /// --> Referenced '%s'
+ /// (Originally from ..\fsi\FSIstrings.txt:43)
+ static member fsiDidAHashr(a0 : System.String) = (GetStringFunc("fsiDidAHashr",",,,%s,,,") a0)
+ /// --> Referenced '%s' (file may be locked by F# Interactive process)
+ /// (Originally from ..\fsi\FSIstrings.txt:44)
+ static member fsiDidAHashrWithLockWarning(a0 : System.String) = (GetStringFunc("fsiDidAHashrWithLockWarning",",,,%s,,,") a0)
+ /// --> Referenced '%s' (an assembly with a different timestamp has already been referenced from this location, reset fsi to load the updated assembly)
+ /// (Originally from ..\fsi\FSIstrings.txt:45)
+ static member fsiDidAHashrWithStaleWarning(a0 : System.String) = (GetStringFunc("fsiDidAHashrWithStaleWarning",",,,%s,,,") a0)
+ /// --> Added '%s' to library include path
+ /// (Originally from ..\fsi\FSIstrings.txt:46)
+ static member fsiDidAHashI(a0 : System.String) = (GetStringFunc("fsiDidAHashI",",,,%s,,,") a0)
+ /// --> Timing now on
+ /// (Originally from ..\fsi\FSIstrings.txt:47)
+ static member fsiTurnedTimingOn() = (GetStringFunc("fsiTurnedTimingOn",",,,") )
+ /// --> Timing now off
+ /// (Originally from ..\fsi\FSIstrings.txt:48)
+ static member fsiTurnedTimingOff() = (GetStringFunc("fsiTurnedTimingOff",",,,") )
+ /// - Unexpected ThreadAbortException (Ctrl-C) during event handling: Trying to restart...
+ /// (Originally from ..\fsi\FSIstrings.txt:49)
+ static member fsiUnexpectedThreadAbortException() = (GetStringFunc("fsiUnexpectedThreadAbortException",",,,") )
+ /// Failed to resolve assembly '%s'
+ /// (Originally from ..\fsi\FSIstrings.txt:50)
+ static member fsiFailedToResolveAssembly(a0 : System.String) = (GetStringFunc("fsiFailedToResolveAssembly",",,,%s,,,") a0)
+ /// Binding session to '%s'...
+ /// (Originally from ..\fsi\FSIstrings.txt:51)
+ static member fsiBindingSessionTo(a0 : System.String) = (GetStringFunc("fsiBindingSessionTo",",,,%s,,,") a0)
+ /// Microsoft (R) F# Interactive version %s
+ /// (Originally from ..\fsi\FSIstrings.txt:52)
+ static member fsiProductName(a0 : System.String) = (GetStringFunc("fsiProductName",",,,%s,,,") a0)
+ /// F# Interactive for F# %s
+ /// (Originally from ..\fsi\FSIstrings.txt:53)
+ static member fsiProductNameCommunity(a0 : System.String) = (GetStringFunc("fsiProductNameCommunity",",,,%s,,,") a0)
+ /// Prevents references from being locked by the F# Interactive process
+ /// (Originally from ..\fsi\FSIstrings.txt:54)
+ static member shadowCopyReferences() = (GetStringFunc("shadowCopyReferences",",,,") )
+
+ /// Call this method once to validate that all known resources are valid; throws if not
+ static member RunStartupValidation() =
+ ignore(GetString("stoppedDueToError"))
+ ignore(GetString("fsiUsage"))
+ ignore(GetString("fsiInputFiles"))
+ ignore(GetString("fsiCodeGeneration"))
+ ignore(GetString("fsiErrorsAndWarnings"))
+ ignore(GetString("fsiLanguage"))
+ ignore(GetString("fsiMiscellaneous"))
+ ignore(GetString("fsiAdvanced"))
+ ignore(GetString("fsiExceptionRaisedStartingServer"))
+ ignore(GetString("fsiUse"))
+ ignore(GetString("fsiLoad"))
+ ignore(GetString("fsiRemaining"))
+ ignore(GetString("fsiHelp"))
+ ignore(GetString("fsiExec"))
+ ignore(GetString("fsiGui"))
+ ignore(GetString("fsiQuiet"))
+ ignore(GetString("fsiReadline"))
+ ignore(GetString("fsiEmitDebugInfoInQuotations"))
+ ignore(GetString("fsiBanner3"))
+ ignore(GetString("fsiConsoleProblem"))
+ ignore(GetString("fsiInvalidAssembly"))
+ ignore(GetString("fsiDirectoryDoesNotExist"))
+ ignore(GetString("fsiInvalidDirective"))
+ ignore(GetString("fsiLineTooLong"))
+ ignore(GetString("fsiTimeInfoMainString"))
+ ignore(GetString("fsiTimeInfoGCGenerationLabelSomeShorthandForTheWordGeneration"))
+ ignore(GetString("fsiExceptionDuringPrettyPrinting"))
+ ignore(GetString("fsiIntroTextHeader1directives"))
+ ignore(GetString("fsiIntroTextHashrInfo"))
+ ignore(GetString("fsiIntroTextHashIInfo"))
+ ignore(GetString("fsiIntroTextHashloadInfo"))
+ ignore(GetString("fsiIntroTextHashtimeInfo"))
+ ignore(GetString("fsiIntroTextHashhelpInfo"))
+ ignore(GetString("fsiIntroTextHashquitInfo"))
+ ignore(GetString("fsiIntroTextHeader2commandLine"))
+ ignore(GetString("fsiIntroTextHeader3"))
+ ignore(GetString("fsiLoadingFilesPrefixText"))
+ ignore(GetString("fsiInterrupt"))
+ ignore(GetString("fsiExit"))
+ ignore(GetString("fsiAbortingMainThread"))
+ ignore(GetString("fsiCouldNotInstallCtrlCHandler"))
+ ignore(GetString("fsiDidAHashr"))
+ ignore(GetString("fsiDidAHashrWithLockWarning"))
+ ignore(GetString("fsiDidAHashrWithStaleWarning"))
+ ignore(GetString("fsiDidAHashI"))
+ ignore(GetString("fsiTurnedTimingOn"))
+ ignore(GetString("fsiTurnedTimingOff"))
+ ignore(GetString("fsiUnexpectedThreadAbortException"))
+ ignore(GetString("fsiFailedToResolveAssembly"))
+ ignore(GetString("fsiBindingSessionTo"))
+ ignore(GetString("fsiProductName"))
+ ignore(GetString("fsiProductNameCommunity"))
+ ignore(GetString("shadowCopyReferences"))
+ ()
diff --git a/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.resx b/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.resx
new file mode 100644
index 000000000..38a86b6e2
--- /dev/null
+++ b/src/buildfromsource/FSharp.Compiler.Private/FSIstrings.resx
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ Stopped due to error\n
+
+
+ Usage: {0} <options> [script.fsx [<arguments>]]
+
+
+ - INPUT FILES -
+
+
+ - CODE GENERATION -
+
+
+ - ERRORS AND WARNINGS -
+
+
+ - LANGUAGE -
+
+
+ - MISCELLANEOUS -
+
+
+ - ADVANCED -
+
+
+ Exception raised when starting remoting server.\n{0}
+
+
+ Use the given file on startup as initial input
+
+
+ #load the given file on startup
+
+
+ Treat remaining arguments as command line arguments, accessed using fsi.CommandLineArgs
+
+
+ Display this usage message (Short form: -?)
+
+
+ Exit fsi after loading the files or running the .fsx script given on the command line
+
+
+ Execute interactions on a Windows Forms event loop (on by default)
+
+
+ Suppress fsi writing to stdout
+
+
+ Support TAB completion in console (on by default)
+
+
+ Emit debug information in quotations
+
+
+ For help type #help;;
+
+
+ A problem occurred starting the F# Interactive process. This may be due to a known problem with background process console support for Unicode-enabled applications on some Windows systems. Try selecting Tools->Options->F# Interactive for Visual Studio and enter '--fsi-server-no-unicode'.
+
+
+ '{0}' is not a valid assembly name
+
+
+ Directory '{0}' doesn't exist
+
+
+ Invalid directive '#{0} {1}'
+
+
+ Warning: line too long, ignoring some characters\n
+
+
+ Real: {0}, CPU: {1}, GC {2}
+
+
+ gen
+
+
+ \n\nException raised during pretty printing.\nPlease report this so it can be fixed.\nTrace: {0}\n
+
+
+ F# Interactive directives:
+
+
+ Reference (dynamically load) the given DLL
+
+
+ Add the given search path for referenced DLLs
+
+
+ Load the given file(s) as if compiled and referenced
+
+
+ Toggle timing on/off
+
+
+ Display help
+
+
+ Exit
+
+
+ F# Interactive command line options:
+
+
+ See '{0}' for options
+
+
+ Loading
+
+
+ \n- Interrupt\n
+
+
+ \n- Exit...\n
+
+
+ - Aborting main thread...
+
+
+ Failed to install ctrl-c handler - Ctrl-C handling will not be available. Error was:\n\t{0}
+
+
+ --> Referenced '{0}'
+
+
+ --> Referenced '{0}' (file may be locked by F# Interactive process)
+
+
+ --> Referenced '{0}' (an assembly with a different timestamp has already been referenced from this location, reset fsi to load the updated assembly)
+
+
+ --> Added '{0}' to library include path
+
+
+ --> Timing now on
+
+
+ --> Timing now off
+
+
+ - Unexpected ThreadAbortException (Ctrl-C) during event handling: Trying to restart...
+
+
+ Failed to resolve assembly '{0}'
+
+
+ Binding session to '{0}'...
+
+
+ Microsoft (R) F# Interactive version {0}
+
+
+ F# Interactive for F# {0}
+
+
+ Prevents references from being locked by the F# Interactive process
+
+
\ No newline at end of file
diff --git a/src/buildfromsource/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj b/src/buildfromsource/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
index 1ff4c7690..296a3cb68 100644
--- a/src/buildfromsource/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
+++ b/src/buildfromsource/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
@@ -8,7 +8,7 @@
FSharp.Compiler.Private$(NoWarn);45;55;62;75;1204true
- $(DefineConstants);EXTENSIONTYPING;COMPILER
+ $(DefineConstants);COMPILER$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1
@@ -18,12 +18,14 @@
assemblyinfo.FSharp.Compiler.Private.dll.fs
-
- FSComp.txt
-
+
+ FSComp.resx
+
FSStrings.resx
+
+
Reflection\reshapedreflection.fs
@@ -598,9 +600,9 @@
-
- FSIstrings.txt
-
+
+ FSIstrings.resx
+
InteractiveSession\fsi.fsi
@@ -621,27 +623,6 @@
-
@@ -660,7 +641,7 @@
-
+
diff --git a/src/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj b/src/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj
index 70d5835c0..3737779f5 100644
--- a/src/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj
+++ b/src/buildfromsource/FSharp.Compiler.nuget/FSharp.Compiler.nuget.fsproj
@@ -14,12 +14,12 @@
- $([System.DateTime]::Now.ToString(`yyMMdd`))
+ $([System.DateTime]::Now.ToString(`yyMMdd`))https://github.com/Microsoft/visualfsharp/blob/master/License.txthttps://github.com/Microsoft/visualfsharpMicrosoft and F# Software FoundationVisual F# Compiler FSharp functional programming
- -$(BuildRevision.Trim())-0
+ -rc-$(BuildRevision.Trim())-04.2.0$(PreReleaseSuffix)-prop "licenseUrl=$(PackageLicenceUrl)" -prop "version=$(PackageVersion)" -prop "authors=$(PackageAuthors)" -prop "projectUrl=$(PackageProjectUrl)" -prop "tags=$(PackageTags)"
diff --git a/src/buildfromsource/Fsc/Fsc.fsproj b/src/buildfromsource/Fsc/Fsc.fsproj
index c40121222..572a8c8ef 100644
--- a/src/buildfromsource/Fsc/Fsc.fsproj
+++ b/src/buildfromsource/Fsc/Fsc.fsproj
@@ -9,7 +9,7 @@
fsc$(NoWarn);45;55;62;75;1204true
- $(DefineConstants);EXTENSIONTYPING;COMPILER
+ $(DefineConstants);COMPILER$(OtherFlags) --maxerrors:20 --extraoptimizationloops:1
diff --git a/src/buildfromsource/Fsi/Fsi.fsproj b/src/buildfromsource/Fsi/Fsi.fsproj
index d06056fe0..9ecd22b72 100644
--- a/src/buildfromsource/Fsi/Fsi.fsproj
+++ b/src/buildfromsource/Fsi/Fsi.fsproj
@@ -9,7 +9,7 @@
fsi$(NoWarn);45;55;62;75;1204true
- $(DefineConstants);BUILD_FROM_SOURCE;COMPILER;EXTENSIONTYPING
+ $(DefineConstants);BUILD_FROM_SOURCE;COMPILER$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1
diff --git a/src/buildfromsource/NuGet.config b/src/buildfromsource/NuGet.config
new file mode 100644
index 000000000..6fd4b1873
--- /dev/null
+++ b/src/buildfromsource/NuGet.config
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/src/buildfromsource/buildtools/fslex/fslex.fsproj b/src/buildfromsource/buildtools/fslex/fslex.fsproj
new file mode 100644
index 000000000..c110c53d3
--- /dev/null
+++ b/src/buildfromsource/buildtools/fslex/fslex.fsproj
@@ -0,0 +1,14 @@
+
+
+
+ netcoreapp2.0
+ INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstant)
+ true
+
+
+
+
+
+
+
+
diff --git a/src/buildfromsource/buildtools/fsyacc/fsyacc.fsproj b/src/buildfromsource/buildtools/fsyacc/fsyacc.fsproj
new file mode 100644
index 000000000..701126cb3
--- /dev/null
+++ b/src/buildfromsource/buildtools/fsyacc/fsyacc.fsproj
@@ -0,0 +1,14 @@
+
+
+
+ netcoreapp2.0
+ INTERNALIZED_FSLEXYACC_RUNTIME;$(DefineConstant)
+ true
+
+
+
+
+
+
+
+
diff --git a/src/fsharp/AccessibilityLogic.fs b/src/fsharp/AccessibilityLogic.fs
index 6c4362d9a..c69d00cd0 100644
--- a/src/fsharp/AccessibilityLogic.fs
+++ b/src/fsharp/AccessibilityLogic.fs
@@ -14,7 +14,7 @@ open Microsoft.FSharp.Compiler.Tast
open Microsoft.FSharp.Compiler.Tastops
open Microsoft.FSharp.Compiler.TcGlobals
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -228,7 +228,7 @@ let ComputeILAccess isPublic isFamily isFamilyOrAssembly isFamilyAndAssembly =
let IsILFieldInfoAccessible g amap m ad x =
match x with
| ILFieldInfo (tinfo,fd) -> IsILTypeAndMemberAccessible g amap m ad ad tinfo fd.Access
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField (amap, tpfi, m) as pfi ->
let access = tpfi.PUntaint((fun fi -> ComputeILAccess fi.IsPublic fi.IsFamily fi.IsFamilyOrAssembly fi.IsFamilyAndAssembly), m)
IsProvidedMemberAccessible amap m ad pfi.EnclosingType access
@@ -314,7 +314,7 @@ let IsTypeAndMethInfoAccessible amap m adTyp ad = function
| ILMeth (g,x,_) -> IsILMethInfoAccessible g amap m adTyp ad x
| FSMeth (_,_,vref,_) -> IsValAccessible ad vref
| DefaultStructCtor(g,typ) -> IsTypeAccessible g amap m ad typ
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,tpmb,_,m) as etmi ->
let access = tpmb.PUntaint((fun mi -> ComputeILAccess mi.IsPublic mi.IsFamily mi.IsFamilyOrAssembly mi.IsFamilyAndAssembly), m)
IsProvidedMemberAccessible amap m ad etmi.EnclosingType access
@@ -325,7 +325,7 @@ let IsPropInfoAccessible g amap m ad = function
| ILProp (_,x) -> IsILPropInfoAccessible g amap m ad x
| FSProp (_,_,Some vref,_)
| FSProp (_,_,_,Some vref) -> IsValAccessible ad vref
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp (amap, tppi, m) as pp->
let access =
let a = tppi.PUntaint((fun ppi ->
diff --git a/src/fsharp/AttributeChecking.fs b/src/fsharp/AttributeChecking.fs
index ccd5c6d27..d39020751 100644
--- a/src/fsharp/AttributeChecking.fs
+++ b/src/fsharp/AttributeChecking.fs
@@ -19,7 +19,7 @@ open Microsoft.FSharp.Compiler.Tast
open Microsoft.FSharp.Compiler.Tastops
open Microsoft.FSharp.Compiler.TcGlobals
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
open Microsoft.FSharp.Core.CompilerServices
#endif
@@ -130,7 +130,7 @@ let AttribInfosOfFS g attribs =
let GetAttribInfosOfEntity g amap m (tcref:TyconRef) =
match metadataOfTycon tcref.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// TODO: provided attributes
| ProvidedTypeMetadata _info -> []
//let provAttribs = info.ProvidedType.PApply((fun a -> (a :> IProvidedCustomAttributeProvider)),m)
@@ -149,7 +149,7 @@ let GetAttribInfosOfMethod amap m minfo =
| ILMeth (g,ilminfo,_) -> ilminfo.RawMetadata.CustomAttrs |> AttribInfosOfIL g amap ilminfo.MetadataScope m
| FSMeth (g,_,vref,_) -> vref.Attribs |> AttribInfosOfFS g
| DefaultStructCtor _ -> []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// TODO: provided attributes
| ProvidedMeth (_,_mi,_,_m) ->
[]
@@ -162,7 +162,7 @@ let GetAttribInfosOfProp amap m pinfo =
| FSProp(g,_,Some vref,_)
| FSProp(g,_,_,Some vref) -> vref.Attribs |> AttribInfosOfFS g
| FSProp _ -> failwith "GetAttribInfosOfProp: unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// TODO: provided attributes
| ProvidedProp _ -> []
#endif
@@ -171,7 +171,7 @@ let GetAttribInfosOfEvent amap m einfo =
match einfo with
| ILEvent(g, x) -> x.RawMetadata.CustomAttrs |> AttribInfosOfIL g amap x.ILTypeInfo.ILScopeRef m
| FSEvent(_, pi, _vref1, _vref2) -> GetAttribInfosOfProp amap m pi
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// TODO: provided attributes
| ProvidedEvent _ -> []
#endif
@@ -183,7 +183,7 @@ let GetAttribInfosOfEvent amap m einfo =
let TryBindTyconRefAttribute g m (AttribInfo (atref,_) as args) (tcref:TyconRef) f1 f2 f3 =
ignore m; ignore f3
match metadataOfTycon tcref.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let provAttribs = info.ProvidedType.PApply((fun a -> (a :> IProvidedCustomAttributeProvider)),m)
match provAttribs.PUntaint((fun a -> a.GetAttributeConstructorArgs(provAttribs.TypeProvider.PUntaintNoFailure(id), atref.FullName)),m) with
@@ -207,14 +207,14 @@ let BindMethInfoAttributes m minfo f1 f2 f3 =
| ILMeth (_,x,_) -> f1 x.RawMetadata.CustomAttrs
| FSMeth (_,_,vref,_) -> f2 vref.Attribs
| DefaultStructCtor _ -> f2 []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth (_,mi,_,_) -> f3 (mi.PApply((fun st -> (st :> IProvidedCustomAttributeProvider)),m))
#endif
/// Analyze three cases for attributes declared on methods: IL-declared attributes, F#-declared attributes and
/// provided attributes.
let TryBindMethInfoAttribute g m (AttribInfo(atref,_) as attribSpec) minfo f1 f2 f3 =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
#else
// to prevent unused parameter warning
ignore f3
@@ -222,7 +222,7 @@ let TryBindMethInfoAttribute g m (AttribInfo(atref,_) as attribSpec) minfo f1 f2
BindMethInfoAttributes m minfo
(fun ilAttribs -> TryDecodeILAttribute g atref ilAttribs |> Option.bind f1)
(fun fsAttribs -> TryFindFSharpAttribute g attribSpec fsAttribs |> Option.bind f2)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
(fun provAttribs ->
match provAttribs.PUntaint((fun a -> a.GetAttributeConstructorArgs(provAttribs.TypeProvider.PUntaintNoFailure(id), atref.FullName)),m) with
| Some args -> f3 args
@@ -316,7 +316,7 @@ let CheckFSharpAttributes g attribs m =
CompleteD
)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Check a list of provided attributes for 'ObsoleteAttribute', returning errors and warnings as data
let private CheckProvidedAttributes (g: TcGlobals) m (provAttribs: Tainted) =
let (AttribInfo(tref,_)) = g.attrib_SystemObsolete
@@ -368,7 +368,7 @@ let CheckFSharpAttributesForUnseen g attribs _m =
(CheckFSharpAttributesForObsolete g attribs ||
CheckFSharpAttributesForHidden g attribs)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Indicate if a list of provided attributes contains 'ObsoleteAttribute'. Used to suppress the item in intellisense.
let CheckProvidedAttributesForUnseen (provAttribs: Tainted) m =
provAttribs.PUntaint((fun a -> a.GetAttributeConstructorArgs(provAttribs.TypeProvider.PUntaintNoFailure(id), typeof.FullName).IsSome),m)
@@ -381,7 +381,7 @@ let CheckPropInfoAttributes pinfo m =
| FSProp(g,_,Some vref,_)
| FSProp(g,_,_,Some vref) -> CheckFSharpAttributes g vref.Attribs m
| FSProp _ -> failwith "CheckPropInfoAttributes: unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp (amap,pi,m) ->
CheckProvidedAttributes amap.g m (pi.PApply((fun st -> (st :> IProvidedCustomAttributeProvider)),m))
@@ -393,7 +393,7 @@ let CheckILFieldAttributes g (finfo:ILFieldInfo) m =
match finfo with
| ILFieldInfo(_,pd) ->
CheckILAttributes g pd.CustomAttrs m |> CommitOperationResult
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField (amap,fi,m) ->
CheckProvidedAttributes amap.g m (fi.PApply((fun st -> (st :> IProvidedCustomAttributeProvider)),m)) |> CommitOperationResult
#endif
@@ -411,7 +411,7 @@ let CheckMethInfoAttributes g m tyargsOpt minfo =
else
CompleteD)
Some res)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
(fun provAttribs -> Some (CheckProvidedAttributes g m provAttribs))
#else
(fun _provAttribs -> None)
@@ -427,7 +427,7 @@ let MethInfoIsUnseen g m typ minfo =
match BindMethInfoAttributes m minfo
(fun ilAttribs -> Some(CheckILAttributesForUnseen g ilAttribs m))
(fun fsAttribs -> Some(CheckFSharpAttributesForUnseen g fsAttribs m))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
(fun provAttribs -> Some(CheckProvidedAttributesForUnseen provAttribs m))
#else
(fun _provAttribs -> None)
@@ -437,7 +437,7 @@ let MethInfoIsUnseen g m typ minfo =
| None -> false
let isUnseenByHidingAttribute =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
not (isObjTy g typ) &&
isAppTy g typ &&
isObjTy g minfo.EnclosingType &&
@@ -470,7 +470,7 @@ let PropInfoIsUnseen m pinfo =
| FSProp (g,_,Some vref,_)
| FSProp (g,_,_,Some vref) -> CheckFSharpAttributesForUnseen g vref.Attribs m
| FSProp _ -> failwith "CheckPropInfoAttributes: unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp (_amap,pi,m) ->
CheckProvidedAttributesForUnseen (pi.PApply((fun st -> (st :> IProvidedCustomAttributeProvider)),m)) m
#endif
diff --git a/src/fsharp/CompileOps.fs b/src/fsharp/CompileOps.fs
index 0d35f05dc..0cab04275 100644
--- a/src/fsharp/CompileOps.fs
+++ b/src/fsharp/CompileOps.fs
@@ -4,11 +4,12 @@
module internal Microsoft.FSharp.Compiler.CompileOps
open System
-open System.Diagnostics
-open System.Text
-open System.IO
+open System.Collections.Concurrent
open System.Collections.Generic
+open System.Diagnostics
+open System.IO
open System.Runtime.CompilerServices
+open System.Text
open Internal.Utilities
open Internal.Utilities.Text
@@ -49,7 +50,7 @@ open Microsoft.FSharp.Compiler.PrettyNaming
open Microsoft.FSharp.Compiler.Import
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
open Microsoft.FSharp.Core.CompilerServices
#endif
@@ -101,7 +102,7 @@ exception HashLoadedScriptConsideredSource of range
let GetRangeOfDiagnostic(err:PhasedDiagnostic) =
let rec RangeFromException = function
| ErrorFromAddingConstraint(_, err2, _) -> RangeFromException err2
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ExtensionTyping.ProvidedTypeResolutionNoRange(e) -> RangeFromException e
| ExtensionTyping.ProvidedTypeResolution(m, _)
#endif
@@ -233,7 +234,7 @@ let GetRangeOfDiagnostic(err:PhasedDiagnostic) =
// Strip TargetInvocationException wrappers
| :? System.Reflection.TargetInvocationException as e ->
RangeFromException e.InnerException
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| :? TypeProviderError as e -> e.Range |> Some
#endif
@@ -352,7 +353,7 @@ let GetDiagnosticNumber(err:PhasedDiagnostic) =
| UnresolvedConversionOperator _ -> 93
// avoid 94-100 for safety
| ObsoleteError _ -> 101
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ExtensionTyping.ProvidedTypeResolutionNoRange _
| ExtensionTyping.ProvidedTypeResolution _ -> 103
#endif
@@ -369,7 +370,7 @@ let GetDiagnosticNumber(err:PhasedDiagnostic) =
| Failure _ -> 192
| NumberedError((n, _), _) -> n
| IllegalFileNameChar(fileName, invalidChar) -> fst (FSComp.SR.buildUnexpectedFileNameCharacter(fileName, string invalidChar))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| :? TypeProviderError as e -> e.Number
#endif
| ErrorsFromAddingSubsumptionConstraint (_, _, _, _, _, ContextInfo.DowncastUsedInsteadOfUpcast _, _) -> fst (FSComp.SR.considerUpcast("", ""))
@@ -747,7 +748,7 @@ let OutputPhasedErrorR (os:StringBuilder) (err:PhasedDiagnostic) =
| ErrorFromAddingConstraint(_, e, _) ->
OutputExceptionR os e
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ExtensionTyping.ProvidedTypeResolutionNoRange(e)
| ExtensionTyping.ProvidedTypeResolution(_, e) ->
@@ -1726,7 +1727,7 @@ let CollectDiagnostic (implicitIncludeDir, showFullPaths, flattenErrors, errorSt
relatedErrors |> List.iter OutputRelatedError
match err with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| {Exception = (:? TypeProviderError as tpe)} ->
tpe.Iter (fun e ->
let newErr = {err with Exception = e}
@@ -1774,20 +1775,25 @@ let OutputDiagnosticContext prefix fileLineFn os err =
let GetFSharpCoreLibraryName () = "FSharp.Core"
// If necessary assume a reference to the latest .NET Framework FSharp.Core with which those tools are built.
-let GetDefaultFSharpCoreReference() = typeof>.Assembly.Location
+let GetDefaultFSharpCoreReference () = typeof>.Assembly.Location
-// If necessary assume a reference to the latest System.ValueTuple with which those tools are built.
-let GetDefaultSystemValueTupleReference() =
-#if COMPILER_SERVICE_AS_DLL
- None // TODO, right now FCS doesn't add this reference automatically
-#else
- try
- let asm = typeof>.Assembly
- if asm.FullName.StartsWith "System.ValueTuple" then
- Some asm.Location
- else None
+type private TypeInThisAssembly = class end
+
+// Use the ValueTuple that is executing with the compiler if it is from System.ValueTuple
+// or the System.ValueTuple.dll that sits alongside the compiler. (Note we always ship one with the compiler)
+let GetDefaultSystemValueTupleReference () =
+ try
+ let asm = typeof>.Assembly
+ if asm.FullName.StartsWith "System.ValueTuple" then
+ Some asm.Location
+ else
+ let location = Path.GetDirectoryName(typeof.Assembly.Location)
+ let valueTuplePath = Path.Combine(location, "System.ValueTuple.dll")
+ if File.Exists(valueTuplePath) then
+ Some valueTuplePath
+ else
+ None
with _ -> None
-#endif
let GetFsiLibraryName () = "FSharp.Compiler.Interactive.Settings"
@@ -1821,10 +1827,11 @@ let DefaultReferencesForScriptsAndOutOfProjectSources(assumeDotNetFramework) =
yield "System.Collections" // System.Collections.Generic.List
yield "System.Runtime.Numerics" // BigInteger
yield "System.Threading" // OperationCanceledException
- // always include a default reference to System.ValueTuple.dll in scripts and out-of-project sources
- match GetDefaultSystemValueTupleReference() with
- | None -> ()
- | Some v -> yield v
+
+ // always include a default reference to System.ValueTuple.dll in scripts and out-of-project sources
+ match GetDefaultSystemValueTupleReference() with
+ | None -> ()
+ | Some v -> yield v
yield "System.Web"
yield "System.Web.Services"
@@ -2137,14 +2144,14 @@ type AssemblyReference =
override x.ToString() = sprintf "AssemblyReference(%s)" x.Text
type UnresolvedAssemblyReference = UnresolvedAssemblyReference of string * AssemblyReference list
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
type ResolvedExtensionReference = ResolvedExtensionReference of string * AssemblyReference list * Tainted list
#endif
type ImportedBinary =
{ FileName: string
RawMetadata: IRawFSharpAssemblyData
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
ProviderGeneratedAssembly: System.Reflection.Assembly option
IsProviderGenerated: bool
ProviderGeneratedStaticLinkMap : ProvidedAssemblyStaticLinkingMap option
@@ -2157,7 +2164,7 @@ type ImportedAssembly =
FSharpViewOfMetadata: CcuThunk
AssemblyAutoOpenAttributes: string list
AssemblyInternalsVisibleToAttributes: string list
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
IsProviderGenerated: bool
mutable TypeProviders: Tainted list
#endif
@@ -2291,7 +2298,7 @@ type TcConfigBuilder =
mutable showTimes : bool
mutable showLoadedAssemblies : bool
mutable continueAfterParseFailure : bool
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// show messages about extension type resolution?
mutable showExtensionTypeMessages : bool
#endif
@@ -2450,7 +2457,7 @@ type TcConfigBuilder =
showTimes = false
showLoadedAssemblies = false
continueAfterParseFailure = false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
showExtensionTypeMessages = false
#endif
pause = false
@@ -2916,7 +2923,7 @@ type TcConfig private (data : TcConfigBuilder, validate:bool) =
member x.showTimes = data.showTimes
member x.showLoadedAssemblies = data.showLoadedAssemblies
member x.continueAfterParseFailure = data.continueAfterParseFailure
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member x.showExtensionTypeMessages = data.showExtensionTypeMessages
#endif
member x.pause = data.pause
@@ -3503,14 +3510,14 @@ let PostParseModuleSpecs (defaultNamespace, filename, isLastCompiland, ParsedSig
ParsedInput.SigFile(ParsedSigFileInput(filename, qualName, scopedPragmas, hashDirectives, specs))
/// Checks if a module name is already given and deduplicates the name if needed.
-let DeduplicateModuleName (moduleNamesDict:Dictionary>) (paths: Set) path (qualifiedNameOfFile: QualifiedNameOfFile) =
+let DeduplicateModuleName (moduleNamesDict:IDictionary>) (paths: Set) path (qualifiedNameOfFile: QualifiedNameOfFile) =
let count = if paths.Contains path then paths.Count else paths.Count + 1
moduleNamesDict.[qualifiedNameOfFile.Text] <- Set.add path paths
let id = qualifiedNameOfFile.Id
if count = 1 then qualifiedNameOfFile else QualifiedNameOfFile(Ident(id.idText + "___" + count.ToString(), id.idRange))
/// Checks if a ParsedInput is using a module name that was already given and deduplicates the name if needed.
-let DeduplicateParsedInputModuleName (moduleNamesDict:Dictionary>) input =
+let DeduplicateParsedInputModuleName (moduleNamesDict:IDictionary>) input =
match input with
| ParsedInput.ImplFile (ParsedImplFileInput.ParsedImplFileInput(fileName, isScript, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules, (isLastCompiland, isExe))) ->
let path = Path.GetDirectoryName fileName
@@ -3519,7 +3526,7 @@ let DeduplicateParsedInputModuleName (moduleNamesDict:Dictionary
- moduleNamesDict.Add(qualifiedNameOfFile.Text, Set.singleton path)
+ moduleNamesDict.[qualifiedNameOfFile.Text] <- Set.singleton path
input
| ParsedInput.SigFile (ParsedSigFileInput.ParsedSigFileInput(fileName, qualifiedNameOfFile, scopedPragmas, hashDirectives, modules)) ->
let path = Path.GetDirectoryName fileName
@@ -3528,7 +3535,7 @@ let DeduplicateParsedInputModuleName (moduleNamesDict:Dictionary
- moduleNamesDict.Add(qualifiedNameOfFile.Text, Set.singleton path)
+ moduleNamesDict.[qualifiedNameOfFile.Text] <- Set.singleton path
input
let ParseInput (lexer, errorLogger:ErrorLogger, lexbuf:UnicodeLexing.Lexbuf, defaultNamespace, filename, isLastCompiland) =
@@ -3913,7 +3920,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
let mutable disposed = false
let mutable ilGlobalsOpt = ilGlobalsOpt
let mutable tcGlobals = None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let mutable generatedTypeRoots = new System.Collections.Generic.Dictionary()
#endif
@@ -4032,7 +4039,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
| UnresolvedImportedAssembly _ -> UnresolvedCcu(assref.QualifiedName)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member tcImports.GetProvidedAssemblyInfo(ctok, m, assembly: Tainted) =
let anameOpt = assembly.PUntaint((fun assembly -> match assembly with null -> None | a -> Some (a.GetName())), m)
match anameOpt with
@@ -4183,7 +4190,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
{ new Import.AssemblyLoader with
member x.FindCcuFromAssemblyRef (ctok, m, ilAssemblyRef) =
tcImports.FindCcuFromAssemblyRef (ctok, m, ilAssemblyRef)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member x.GetProvidedAssemblyInfo (ctok, m, assembly) = tcImports.GetProvidedAssemblyInfo (ctok, m, assembly)
member x.RecordGeneratedTypeRoot root = tcImports.RecordGeneratedTypeRoot root
#endif
@@ -4215,7 +4222,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
CheckDisposed()
tcGlobals <- Some g
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member private tcImports.InjectProvidedNamespaceOrTypeIntoEntity
(typeProviderEnvironment,
tcConfig:TcConfig,
@@ -4413,14 +4420,14 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
ILScopeRef = ilScopeRef
AssemblyAutoOpenAttributes = GetAutoOpenAttributes ilg ilModule
AssemblyInternalsVisibleToAttributes = GetInternalsVisibleToAttributes ilg ilModule
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
IsProviderGenerated = false
TypeProviders = []
#endif
FSharpOptimizationData = notlazy None }
tcImports.RegisterCcu(ccuinfo)
let phase2 () =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
ccuinfo.TypeProviders <- tcImports.ImportTypeProviderExtensions (ctok, tcConfig, filename, ilScopeRef, ilModule.ManifestOfAssembly.CustomAttrs.AsList, ccu.Contents, invalidateCcu, m)
#endif
[ResolvedImportedAssembly(ccuinfo)]
@@ -4428,7 +4435,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
member tcImports.PrepareToImportReferencedFSharpAssembly (ctok, m, filename, dllinfo:ImportedBinary) =
CheckDisposed()
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let tcConfig = tcConfigP.Get(ctok)
#endif
let ilModule = dllinfo.RawMetadata
@@ -4448,7 +4455,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
let minfo : PickledCcuInfo = data.RawData
let mspec = minfo.mspec
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let invalidateCcu = new Event<_>()
#endif
@@ -4461,7 +4468,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
SourceCodeDirectory = codeDir (* note: in some cases we fix up this information later *)
IsFSharp=true
Contents = mspec
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
InvalidateEvent=invalidateCcu.Publish
IsProviderGenerated = false
ImportProvidedType = (fun ty -> Import.ImportProvidedType (tcImports.GetImportMap()) m ty)
@@ -4489,13 +4496,13 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
AssemblyAutoOpenAttributes = ilModule.GetAutoOpenAttributes(ilg)
AssemblyInternalsVisibleToAttributes = ilModule.GetInternalsVisibleToAttributes(ilg)
FSharpOptimizationData=optdata
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
IsProviderGenerated = false
TypeProviders = []
#endif
ILScopeRef = ilScopeRef }
let phase2() =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match ilModule.TryGetRawILModule() with
| None -> () // no type providers can be used without a real IL Module present
| Some ilModule ->
@@ -4511,7 +4518,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
(* Relink *)
(* dprintf "Phase2: %s\n" filename; REMOVE DIAGNOSTICS *)
ccuRawDataAndInfos |> List.iter (fun (data, _, _) -> data.OptionalFixup(fun nm -> availableToOptionalCcu(tcImports.FindCcu(ctok, m, nm, lookupOnly=false))) |> ignore)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
ccuRawDataAndInfos |> List.iter (fun (_, _, phase2) -> phase2())
#endif
ccuRawDataAndInfos |> List.map p23 |> List.map ResolvedImportedAssembly
@@ -4549,7 +4556,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
let dllinfo =
{ RawMetadata=assemblyData
FileName=filename
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
ProviderGeneratedAssembly=None
IsProviderGenerated=false
ProviderGeneratedStaticLinkMap = None
@@ -4616,7 +4623,7 @@ type TcImports(tcConfigP:TcConfigProvider, initialResolutions:TcAssemblyResoluti
if tryFile (assemblyName + ".dll") then ()
else tryFile (assemblyName + ".exe") |> ignore
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member tcImports.TryFindProviderGeneratedAssemblyByName(ctok, assemblyName:string) : System.Reflection.Assembly option =
// The assembly may not be in the resolutions, but may be in the load set including EST injected assemblies
match tcImports.TryFindDllInfo (ctok, range0, assemblyName, lookupOnly=true) with
@@ -5065,13 +5072,7 @@ module private ScriptPreprocessClosure =
match codeContext with
| CodeContext.Editing -> ResolutionEnvironment.EditingOrCompilation true
| CodeContext.Compilation -> ResolutionEnvironment.EditingOrCompilation false
- | CodeContext.CompilationAndEvaluation ->
-#if FSI_TODO_NETCORE
- // "CompilationAndEvaluation" assembly resolution for F# Interactive is not yet properly figured out on .NET Core
- ResolutionEnvironment.EditingOrCompilation false
-#else
- ResolutionEnvironment.CompilationAndEvaluation
-#endif
+ | CodeContext.CompilationAndEvaluation -> ResolutionEnvironment.CompilationAndEvaluation
tcConfigB.framework <- false
tcConfigB.useSimpleResolution <- useSimpleResolution
// Indicates that there are some references not in BasicReferencesForScriptLoadClosure which should
@@ -5359,7 +5360,7 @@ let GetInitialTcState(m, ccuName, tcConfig:TcConfig, tcGlobals, tcImports:TcImpo
let ccuData : CcuData =
{ IsFSharp=true
UsesFSharp20PlusQuotations=false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
InvalidateEvent=(new Event<_>()).Publish
IsProviderGenerated = false
ImportProvidedType = (fun ty -> Import.ImportProvidedType (tcImports.GetImportMap()) m ty)
diff --git a/src/fsharp/CompileOps.fsi b/src/fsharp/CompileOps.fsi
index c5f14dc8b..77916b63f 100755
--- a/src/fsharp/CompileOps.fsi
+++ b/src/fsharp/CompileOps.fsi
@@ -23,7 +23,7 @@ open Microsoft.FSharp.Compiler.Infos
open Microsoft.FSharp.Compiler.ReferenceResolver
open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Core.CompilerServices
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -65,10 +65,10 @@ val ComputeQualifiedNameOfFileFromUniquePath: range * string list -> Ast.Qualifi
val PrependPathToInput: Ast.Ident list -> Ast.ParsedInput -> Ast.ParsedInput
/// Checks if a module name is already given and deduplicates the name if needed.
-val DeduplicateModuleName: Dictionary> -> Set -> string -> Ast.QualifiedNameOfFile -> Ast.QualifiedNameOfFile
+val DeduplicateModuleName: IDictionary> -> Set -> string -> Ast.QualifiedNameOfFile -> Ast.QualifiedNameOfFile
/// Checks if a ParsedInput is using a module name that was already given and deduplicates the name if needed.
-val DeduplicateParsedInputModuleName: Dictionary> -> Ast.ParsedInput -> Ast.ParsedInput
+val DeduplicateParsedInputModuleName: IDictionary> -> Ast.ParsedInput -> Ast.ParsedInput
val ParseInput: (UnicodeLexing.Lexbuf -> Parser.token) * ErrorLogger * UnicodeLexing.Lexbuf * string option * string * isLastCompiland:(bool * bool) -> Ast.ParsedInput
@@ -207,7 +207,7 @@ type AssemblyResolution =
type UnresolvedAssemblyReference = UnresolvedAssemblyReference of string * AssemblyReference list
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
type ResolvedExtensionReference = ResolvedExtensionReference of string * AssemblyReference list * Tainted list
#endif
@@ -347,7 +347,7 @@ type TcConfigBuilder =
mutable showTimes: bool
mutable showLoadedAssemblies: bool
mutable continueAfterParseFailure: bool
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
mutable showExtensionTypeMessages: bool
#endif
mutable pause: bool
@@ -499,7 +499,7 @@ type TcConfig =
member showTimes: bool
member showLoadedAssemblies: bool
member continueAfterParseFailure: bool
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member showExtensionTypeMessages: bool
#endif
member pause: bool
@@ -555,7 +555,7 @@ type TcConfigProvider =
type ImportedBinary =
{ FileName: string
RawMetadata: IRawFSharpAssemblyData
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
ProviderGeneratedAssembly: System.Reflection.Assembly option
IsProviderGenerated: bool
ProviderGeneratedStaticLinkMap: ProvidedAssemblyStaticLinkingMap option
@@ -570,7 +570,7 @@ type ImportedAssembly =
FSharpViewOfMetadata: CcuThunk
AssemblyAutoOpenAttributes: string list
AssemblyInternalsVisibleToAttributes: string list
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
IsProviderGenerated: bool
mutable TypeProviders: Tainted list
#endif
@@ -599,7 +599,7 @@ type TcImports =
member FindDllInfo: CompilationThreadToken * range * string -> ImportedBinary
member TryFindDllInfo: CompilationThreadToken * range * string * lookupOnly: bool -> option
member FindCcuFromAssemblyRef: CompilationThreadToken * range * ILAssemblyRef -> CcuResolutionResult
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member ProviderGeneratedTypeRoots: ProviderGeneratedType list
#endif
member GetImportMap: unit -> Import.ImportMap
@@ -617,7 +617,7 @@ type TcImports =
/// Try to find the given assembly reference.
member TryFindExistingFullyQualifiedPathByExactAssemblyRef: CompilationThreadToken * ILAssemblyRef -> string option
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Try to find a provider-generated assembly
member TryFindProviderGeneratedAssemblyByName: CompilationThreadToken * assemblyName:string -> System.Reflection.Assembly option
#endif
diff --git a/src/fsharp/CompileOptions.fs b/src/fsharp/CompileOptions.fs
index ce26cafde..1c78fd9aa 100644
--- a/src/fsharp/CompileOptions.fs
+++ b/src/fsharp/CompileOptions.fs
@@ -903,7 +903,7 @@ let internalFlags (tcConfigB:TcConfigBuilder) =
CompilerOption("splitting", tagNone, OptionSwitch(splittingSwitch tcConfigB),Some(InternalCommandLineOption("splitting", rangeCmdArgs)), None)
CompilerOption("versionfile", tagString, OptionString (fun s -> tcConfigB.version <- VersionFile s), Some(InternalCommandLineOption("versionfile", rangeCmdArgs)), None)
CompilerOption("times" , tagNone, OptionUnit (fun () -> tcConfigB.showTimes <- true), Some(InternalCommandLineOption("times", rangeCmdArgs)), None) // "Display timing profiles for compilation")
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
CompilerOption("showextensionresolution" , tagNone, OptionUnit (fun () -> tcConfigB.showExtensionTypeMessages <- true), Some(InternalCommandLineOption("showextensionresolution", rangeCmdArgs)), None) // "Display information about extension type resolution")
#endif
(* BEGIN: Consider as public Retail option? *)
diff --git a/src/fsharp/ConstraintSolver.fs b/src/fsharp/ConstraintSolver.fs
index 7a88d2e56..0ec8f9f83 100644
--- a/src/fsharp/ConstraintSolver.fs
+++ b/src/fsharp/ConstraintSolver.fs
@@ -1333,7 +1333,7 @@ and RecordMemberConstraintSolution css m trace traitInfo res =
/// Convert a MethInfo into the data we save in the TAST
and MemberConstraintSolutionOfMethInfo css m minfo minst =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
#else
// to prevent unused parameter warning
ignore css
@@ -1347,7 +1347,7 @@ and MemberConstraintSolutionOfMethInfo css m minfo minst =
FSMethSln(typ, vref, minst)
| MethInfo.DefaultStructCtor _ ->
error(InternalError("the default struct constructor was the unexpected solution to a trait constraint", m))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap, mi, _, m) ->
let g = amap.g
let minst = [] // GENERIC TYPE PROVIDERS: for generics, we would have an minst here
@@ -2050,7 +2050,7 @@ and ReportNoCandidatesError (csenv:ConstraintSolverEnv) (nUnnamedCallerArgs, nNa
let predictFields() =
minfo.DeclaringEntityRef.AllInstanceFieldsAsList
|> List.map (fun p -> p.Name.Replace("@", ""))
- |> Set.ofList
+ |> System.Collections.Generic.HashSet
ErrorWithSuggestions((msgNum, FSComp.SR.csCtorHasNoArgumentOrReturnProperty(methodName, id.idText, msgText)), id.idRange, id.idText, predictFields)
else
diff --git a/src/fsharp/ErrorLogger.fs b/src/fsharp/ErrorLogger.fs
index d854d8975..cb2b58516 100755
--- a/src/fsharp/ErrorLogger.fs
+++ b/src/fsharp/ErrorLogger.fs
@@ -54,9 +54,9 @@ let rec findOriginalException err =
| WrappedError(err, _) -> findOriginalException err
| _ -> err
-type Suggestions = unit -> Set
+type Suggestions = unit -> Collections.Generic.HashSet
-let NoSuggestions : Suggestions = fun () -> Set.empty
+let NoSuggestions : Suggestions = fun () -> Collections.Generic.HashSet()
/// Thrown when we stop processing the F# Interactive entry or #load.
exception StopProcessingExn of exn option with
diff --git a/src/fsharp/ExtensionTyping.fs b/src/fsharp/ExtensionTyping.fs
index 57ddfff1a..dade9c965 100755
--- a/src/fsharp/ExtensionTyping.fs
+++ b/src/fsharp/ExtensionTyping.fs
@@ -4,7 +4,7 @@
namespace Microsoft.FSharp.Compiler
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
module internal ExtensionTyping =
open System
diff --git a/src/fsharp/ExtensionTyping.fsi b/src/fsharp/ExtensionTyping.fsi
index 7ac14362c..f796881c3 100755
--- a/src/fsharp/ExtensionTyping.fsi
+++ b/src/fsharp/ExtensionTyping.fsi
@@ -4,7 +4,7 @@
namespace Microsoft.FSharp.Compiler
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
module internal ExtensionTyping =
diff --git a/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj b/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj
index a6505441b..8aba43380 100644
--- a/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj
+++ b/src/fsharp/FSharp.Build-proto/FSharp.Build-proto.fsproj
@@ -22,16 +22,13 @@
CompilerLocationUtils.fs
-
- CreateFSharpManifestResourceName.fsi
-
CreateFSharpManifestResourceName.fs
-
- Fsc.fsi
-
-
+
+ FSharpCommandLineBuilder.fs
+
+
Fsc.fs
@@ -75,7 +72,7 @@
-
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
@@ -93,22 +90,5 @@
FSharp.Core
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
diff --git a/src/fsharp/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/src/fsharp/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
index f81d227e8..b68ab1691 100644
--- a/src/fsharp/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
+++ b/src/fsharp/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj
@@ -20,7 +20,7 @@
netcore
- $(DefineConstants);EXTENSIONTYPING;$(TargetDotnetProfile.ToLower())
+ $(DefineConstants);$(TargetDotnetProfile.ToLower())true
diff --git a/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi b/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi
deleted file mode 100644
index 549f1ab83..000000000
--- a/src/fsharp/FSharp.Build/CreateFSharpManifestResourceName.fsi
+++ /dev/null
@@ -1,9 +0,0 @@
-// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-
-namespace Microsoft.FSharp.Build
-
-[]
-type CreateFSharpManifestResourceName =
- inherit Microsoft.Build.Tasks.CreateCSharpManifestResourceName
- public new : unit -> CreateFSharpManifestResourceName
- member UseStandardResourceNames : bool with get,set
\ No newline at end of file
diff --git a/src/fsharp/FSharp.Build/FSharp.Build.fsproj b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
index 42403c427..d95ee7403 100644
--- a/src/fsharp/FSharp.Build/FSharp.Build.fsproj
+++ b/src/fsharp/FSharp.Build/FSharp.Build.fsproj
@@ -15,20 +15,22 @@
+
+ $(FSharpSourcesRoot)\..\loc\lcl\{Lang}\$(AssemblyName).dll.lcl
+ $(FSharpSourcesRoot)\..\loc\lci\$(AssemblyName).dll.lci
+ false
+ false
+
-
-
-
-
+
- Microsoft.FSharp.Targets
@@ -58,7 +60,7 @@
-
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
@@ -72,23 +74,6 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Tasks.Core.dll
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
- {DED3BBD7-53F4-428A-8C9F-27968E768605}
diff --git a/src/fsharp/FSharp.Build/FSharpCommandLineBuilder.fs b/src/fsharp/FSharp.Build/FSharpCommandLineBuilder.fs
new file mode 100644
index 000000000..8ea25e12d
--- /dev/null
+++ b/src/fsharp/FSharp.Build/FSharpCommandLineBuilder.fs
@@ -0,0 +1,106 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+namespace Microsoft.FSharp.Build
+
+open System
+open System.Text
+open Microsoft.Build.Framework
+open Microsoft.Build.Utilities
+open Internal.Utilities
+
+[]
+[]
+do()
+
+type FSharpCommandLineBuilder () =
+
+ // In addition to generating a command-line that will be handed to cmd.exe, we also generate
+ // an array of individual arguments. The former needs to be quoted (and cmd.exe will strip the
+ // quotes while parsing), whereas the latter is not. See bug 4357 for background; this helper
+ // class gets us out of the business of unparsing-then-reparsing arguments.
+
+ let builder = new CommandLineBuilder()
+ let mutable args = [] // in reverse order
+ let mutable srcs = [] // in reverse order
+
+ /// Return a list of the arguments (with no quoting for the cmd.exe shell)
+ member x.CapturedArguments() = List.rev args
+
+ /// Return a list of the sources (with no quoting for the cmd.exe shell)
+ member x.CapturedFilenames() = List.rev srcs
+
+ /// Return a full command line (with quoting for the cmd.exe shell)
+ override x.ToString() = builder.ToString()
+
+ member x.AppendFileNamesIfNotNull(filenames:ITaskItem array, sep:string) =
+ builder.AppendFileNamesIfNotNull(filenames, sep)
+ // do not update "args", not used
+ for item in filenames do
+ let tmp = new CommandLineBuilder()
+ tmp.AppendSwitchUnquotedIfNotNull("", item.ItemSpec) // we don't want to quote the filename, this is a way to get that
+ let s = tmp.ToString()
+ if s <> String.Empty then
+ srcs <- tmp.ToString() :: srcs
+
+ member x.AppendSwitchIfNotNull(switch:string, values:string array, sep:string) =
+ builder.AppendSwitchIfNotNull(switch, values, sep)
+ let tmp = new CommandLineBuilder()
+ tmp.AppendSwitchUnquotedIfNotNull(switch, values, sep)
+ let s = tmp.ToString()
+ if s <> String.Empty then
+ args <- s :: args
+
+ member x.AppendSwitchIfNotNull(switch:string, value:string, ?metadataNames:string array) =
+ let metadataNames = defaultArg metadataNames [||]
+ builder.AppendSwitchIfNotNull(switch, value)
+ let tmp = new CommandLineBuilder()
+ tmp.AppendSwitchUnquotedIfNotNull(switch, value)
+ let providedMetaData =
+ metadataNames
+ |> Array.filter (String.IsNullOrWhiteSpace >> not)
+ if providedMetaData.Length > 0 then
+ tmp.AppendTextUnquoted ","
+ tmp.AppendTextUnquoted (providedMetaData|> String.concat ",")
+ let s = tmp.ToString()
+ if s <> String.Empty then
+ args <- s :: args
+
+ member x.AppendSwitchUnquotedIfNotNull(switch:string, value:string) =
+ assert(switch = "") // we only call this method for "OtherFlags"
+ // Unfortunately we still need to mimic what cmd.exe does, but only for "OtherFlags".
+ let ParseCommandLineArgs(commandLine:string) = // returns list in reverse order
+ let mutable args = []
+ let mutable i = 0 // index into commandLine
+ let len = commandLine.Length
+ while i < len do
+ // skip whitespace
+ while i < len && System.Char.IsWhiteSpace(commandLine, i) do
+ i <- i + 1
+ if i < len then
+ // parse an argument
+ let sb = new StringBuilder()
+ let mutable finished = false
+ let mutable insideQuote = false
+ while i < len && not finished do
+ match commandLine.[i] with
+ | '"' -> insideQuote <- not insideQuote; i <- i + 1
+ | c when not insideQuote && System.Char.IsWhiteSpace(c) -> finished <- true
+ | c -> sb.Append(c) |> ignore; i <- i + 1
+ args <- sb.ToString() :: args
+ args
+ builder.AppendSwitchUnquotedIfNotNull(switch, value)
+ let tmp = new CommandLineBuilder()
+ tmp.AppendSwitchUnquotedIfNotNull(switch, value)
+ let s = tmp.ToString()
+ if s <> String.Empty then
+ args <- ParseCommandLineArgs(s) @ args
+
+ member x.AppendSwitch(switch:string) =
+ builder.AppendSwitch(switch)
+ args <- switch :: args
+
+ member internal x.GetCapturedArguments() =
+ [|
+ yield! x.CapturedArguments()
+ yield! x.CapturedFilenames()
+ |]
diff --git a/src/fsharp/FSharp.Build/Fsc.fs b/src/fsharp/FSharp.Build/Fsc.fs
index 2d1bc51ce..f397c5091 100644
--- a/src/fsharp/FSharp.Build/Fsc.fs
+++ b/src/fsharp/FSharp.Build/Fsc.fs
@@ -3,125 +3,28 @@
namespace Microsoft.FSharp.Build
open System
-open System.Text
-open System.Diagnostics.CodeAnalysis
+open System.Diagnostics
+open System.Globalization
open System.IO
open System.Reflection
open Microsoft.Build.Framework
open Microsoft.Build.Utilities
open Internal.Utilities
-[]
-[]
-
-[]
-do()
-
-
#if FX_RESHAPED_REFLECTION
open Microsoft.FSharp.Core.ReflectionAdapters
#endif
-type FscCommandLineBuilder () =
-
- // In addition to generating a command-line that will be handed to cmd.exe, we also generate
- // an array of individual arguments. The former needs to be quoted (and cmd.exe will strip the
- // quotes while parsing), whereas the latter is not. See bug 4357 for background; this helper
- // class gets us out of the business of unparsing-then-reparsing arguments.
-
- let builder = new CommandLineBuilder()
- let mutable args = [] // in reverse order
- let mutable srcs = [] // in reverse order
- /// Return a list of the arguments (with no quoting for the cmd.exe shell)
- member x.CapturedArguments() =
- List.rev args
- /// Return a list of the sources (with no quoting for the cmd.exe shell)
- member x.CapturedFilenames() =
- List.rev srcs
- /// Return a full command line (with quoting for the cmd.exe shell)
- override x.ToString() =
- builder.ToString()
-
- member x.AppendFileNamesIfNotNull(filenames:ITaskItem array, sep:string) =
- builder.AppendFileNamesIfNotNull(filenames, sep)
- // do not update "args", not used
- for item in filenames do
- let tmp = new CommandLineBuilder()
- tmp.AppendSwitchUnquotedIfNotNull("", item.ItemSpec) // we don't want to quote the filename, this is a way to get that
- let s = tmp.ToString()
- if s <> String.Empty then
- srcs <- tmp.ToString() :: srcs
-
- member x.AppendSwitchIfNotNull(switch:string, values:string array, sep:string) =
- builder.AppendSwitchIfNotNull(switch, values, sep)
- let tmp = new CommandLineBuilder()
- tmp.AppendSwitchUnquotedIfNotNull(switch, values, sep)
- let s = tmp.ToString()
- if s <> String.Empty then
- args <- s :: args
-
- member x.AppendSwitchIfNotNull(switch:string, value:string, ?metadataNames:string array) =
- let metadataNames = defaultArg metadataNames [||]
- builder.AppendSwitchIfNotNull(switch, value)
- let tmp = new CommandLineBuilder()
- tmp.AppendSwitchUnquotedIfNotNull(switch, value)
- let providedMetaData =
- metadataNames
- |> Array.filter (String.IsNullOrWhiteSpace >> not)
- if providedMetaData.Length > 0 then
- tmp.AppendTextUnquoted ","
- tmp.AppendTextUnquoted (providedMetaData|> String.concat ",")
- let s = tmp.ToString()
- if s <> String.Empty then
- args <- s :: args
-
- member x.AppendSwitchUnquotedIfNotNull(switch:string, value:string) =
- assert(switch = "") // we only call this method for "OtherFlags"
- // Unfortunately we still need to mimic what cmd.exe does, but only for "OtherFlags".
- let ParseCommandLineArgs(commandLine:string) = // returns list in reverse order
- let mutable args = []
- let mutable i = 0 // index into commandLine
- let len = commandLine.Length
- while i < len do
- // skip whitespace
- while i < len && System.Char.IsWhiteSpace(commandLine, i) do
- i <- i + 1
- if i < len then
- // parse an argument
- let sb = new StringBuilder()
- let mutable finished = false
- let mutable insideQuote = false
- while i < len && not finished do
- match commandLine.[i] with
- | '"' -> insideQuote <- not insideQuote; i <- i + 1
- | c when not insideQuote && System.Char.IsWhiteSpace(c) -> finished <- true
- | c -> sb.Append(c) |> ignore; i <- i + 1
- args <- sb.ToString() :: args
- args
- builder.AppendSwitchUnquotedIfNotNull(switch, value)
- let tmp = new CommandLineBuilder()
- tmp.AppendSwitchUnquotedIfNotNull(switch, value)
- let s = tmp.ToString()
- if s <> String.Empty then
- args <- ParseCommandLineArgs(s) @ args
-
- member x.AppendSwitch(switch:string) =
- builder.AppendSwitch(switch)
- args <- switch :: args
-
- member internal x.GetCapturedArguments() =
- [|
- yield! x.CapturedArguments()
- yield! x.CapturedFilenames()
- |]
-
//There are a lot of flags on fsc.exe.
//For now, not all of them are represented in the "Fsc class" object model.
//The goal is to have the most common/important flags available via the Fsc class, and the
//rest can be "backdoored" through the .OtherFlags property.
-type [] Fsc() as this =
- inherit ToolTask()
+[]
+type public Fsc () as this =
+
+ inherit ToolTask ()
+
let mutable baseAddress : string = null
let mutable capturedArguments : string list = [] // list of individual args, to pass to HostObject Compile()
let mutable capturedFilenames : string list = [] // list of individual source filenames, to pass to HostObject Compile()
@@ -160,9 +63,9 @@ type [.Assembly.Location))
+ let mutable toolPath : string =
+ let locationOfThisDll =
+ try Some(Path.GetDirectoryName(typeof.Assembly.Location))
with _ -> None
match FSharpEnvironment.BinFolderOfDefaultFSharpCompiler(locationOfThisDll) with
| Some s -> s
@@ -178,18 +81,11 @@ type [ null with e-> false
- do if not runningOnMono then
- typeof.InvokeMember("YieldDuringToolExecution",(BindingFlags.Instance ||| BindingFlags.SetProperty ||| BindingFlags.Public),null,this,[| box true |]) |> ignore
-#else
- do this.YieldDuringToolExecution <- true // See bug 6483; this makes parallel build faster, and is fine to set unconditionally
-#endif
+ // See bug 6483; this makes parallel build faster, and is fine to set unconditionally
+ do this.YieldDuringToolExecution <- true
let generateCommandLineBuilder () =
- let builder = new FscCommandLineBuilder()
+ let builder = new FSharpCommandLineBuilder()
// OutputAssembly
builder.AppendSwitchIfNotNull("-o:", outputAssembly)
// CodePage
@@ -198,7 +94,7 @@ type [ null
@@ -219,7 +115,7 @@ type [ null then
for item in defineConstants do
- builder.AppendSwitchIfNotNull("--define:", item.ItemSpec)
+ builder.AppendSwitchIfNotNull("--define:", item.ItemSpec)
// DocumentationFile
builder.AppendSwitchIfNotNull("--doc:", documentationFile)
// GenerateInterfaceFile
@@ -238,7 +134,7 @@ type [ "anycpu"
| "X86" , _, _ -> "x86"
| "X64" , _, _ -> "x64"
- | "ITANIUM", _, _ -> "Itanium"
- | _ -> null)
+ | _ -> null)
// Resources
if resources <> null then
for item in resources do
match useStandardResourceNames with
| true -> builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec, [|item.GetMetadata("LogicalName"); item.GetMetadata("Access")|])
| false -> builder.AppendSwitchIfNotNull("--resource:", item.ItemSpec)
-
+
// VersionFile
builder.AppendSwitchIfNotNull("--versionfile:", versionFile)
// References
@@ -266,7 +161,7 @@ type [ null
| _ -> referencePath.Split([|';'; ','|], StringSplitOptions.RemoveEmptyEntries)
-
+
builder.AppendSwitchIfNotNull("--lib:", referencePathArray, ",")
// TargetType
builder.AppendSwitchIfNotNull("--target:",
@@ -296,9 +191,9 @@ type [ [|"76"|]
- | _ -> (warningsAsErrors + " 76 ").Split([|' '; ';'; ','|], StringSplitOptions.RemoveEmptyEntries)
+ | _ -> (warningsAsErrors + " 76 ").Split([|' '; ';'; ','|], StringSplitOptions.RemoveEmptyEntries)
- builder.AppendSwitchIfNotNull("--warnaserror:", warningsAsErrorsArray, ",")
+ builder.AppendSwitchIfNotNull("--warnaserror:", warningsAsErrorsArray, ",")
// Win32ResourceFile
builder.AppendSwitchIfNotNull("--win32res:", win32res)
@@ -306,16 +201,16 @@ type [: Specify the codepage to use when opening source files
member fsc.CodePage
@@ -369,7 +264,7 @@ type [: Do not report the given specific warning.
member fsc.DisabledWarnings
with get() = disabledWarnings
- and set(a) = disabledWarnings <- a
+ and set(a) = disabledWarnings <- a
// --define : Define the given conditional compilation symbol.
member fsc.DefineConstants
@@ -399,7 +294,7 @@ type [:
// Sign the assembly the given keypair file, as produced
@@ -435,13 +330,13 @@ type [: Name the output file.
+ // -o : Name the output file
member fsc.OutputAssembly
with get() = outputAssembly
and set(s) = outputAssembly <- s
// --pdb :
- // Name the debug output file.
+ // Name the debug output file
member fsc.PdbFile
with get() = pdbFile
and set(s) = pdbFile <- s
@@ -449,36 +344,35 @@ type [: Limit which platforms this code can run on:
// x86
// x64
- // Itanium
// anycpu
// anycpu32bitpreferred
member fsc.Platform
with get() = platform
- and set(s) = platform <- s
+ and set(s) = platform <- s
// indicator whether anycpu32bitpreferred is applicable or not
member fsc.Prefer32Bit
with get() = prefer32bit
- and set(s) = prefer32bit <- s
+ and set(s) = prefer32bit <- s
member fsc.PreferredUILang
with get() = preferredUILang
- and set(s) = preferredUILang <- s
+ and set(s) = preferredUILang <- s
- member fsc.ProvideCommandLineArgs
+ member fsc.ProvideCommandLineArgs
with get() = provideCommandLineArgs
and set(p) = provideCommandLineArgs <- p
member fsc.PublicSign
with get() = publicSign
- and set(s) = publicSign <- s
+ and set(s) = publicSign <- s
// -r : Reference an F# or .NET assembly.
- member fsc.References
- with get() = references
+ member fsc.References
+ with get() = references
and set(a) = references <- a
- // --lib
+ // --lib
member fsc.ReferencePath
with get() = referencePath
and set(s) = referencePath <- s
@@ -489,7 +383,7 @@ type [:
member fsc.VersionFile
with get() = versionFile
and set(s) = versionFile <- s
- // For specifying a win32 native resource file (.res)
+ // For specifying a win32 native resource file (.res)
member fsc.Win32ResourceFile
with get() = win32res
and set(s) = win32res <- s
-
+
// For specifying a win32 manifest file
member fsc.Win32ManifestFile
with get() = win32manifest
and set(m) = win32manifest <- m
- // For specifying the warning level (0-4)
+ // For specifying the warning level (0-4)
member fsc.WarningLevel
with get() = warningLevel
and set(s) = warningLevel <- s
@@ -591,7 +486,7 @@ type [ Array.map (fun (arg: string) -> TaskItem(arg) :> ITaskItem)
|> Array.toList
@@ -604,30 +499,42 @@ type [ base.ExecuteTool(pathToTool, responseFileCommands, commandLineCommands)
| _ ->
let sources = sources|>Array.map(fun i->i.ItemSpec)
-#if FX_NO_CONVERTER
- let baseCallDelegate = new Func(fun () -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands) )
-#else
- let baseCall = fun (dummy : int) -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands)
- // We are using a Converter rather than a "unit->int" because it is too hard to
- // figure out how to pass an F# function object via reflection.
- let baseCallDelegate = new System.Converter(baseCall)
-#endif
- try
- let ret =
- (host.GetType()).InvokeMember("Compile", BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.InvokeMethod ||| BindingFlags.Instance, null, host,
- [| baseCallDelegate; box (capturedArguments |> List.toArray); box (capturedFilenames |> List.toArray) |],
- System.Globalization.CultureInfo.InvariantCulture)
- unbox ret
- with
- | :? System.Reflection.TargetInvocationException as tie when (match tie.InnerException with | :? Microsoft.Build.Exceptions.BuildAbortedException -> true | _ -> false) ->
- fsc.Log.LogError(tie.InnerException.Message, [| |])
- -1 // ok, this is what happens when VS IDE cancels the build, no need to assert, just log the build-canceled error and return -1 to denote task failed
+ let invokeCompiler baseCallDelegate =
+ try
+ let ret =
+ (host.GetType()).InvokeMember("Compile", BindingFlags.Public ||| BindingFlags.NonPublic ||| BindingFlags.InvokeMethod ||| BindingFlags.Instance, null, host,
+ [| baseCallDelegate; box (capturedArguments |> List.toArray); box (capturedFilenames |> List.toArray) |],
+ CultureInfo.InvariantCulture)
+ unbox ret
+ with
+ | :? TargetInvocationException as tie when (match tie.InnerException with | :? Microsoft.Build.Exceptions.BuildAbortedException -> true | _ -> false) ->
+ fsc.Log.LogError(tie.InnerException.Message, [| |])
+ -1 // ok, this is what happens when VS IDE cancels the build, no need to assert, just log the build-canceled error and return -1 to denote task failed
+ | e -> reraise()
+
+ // Todo: Remove !FX_NO_CONVERTER code path for VS2017.7
+ // Earlier buildtasks usesd System.Converter for cross platform we are moving to Func
+ // This is so that during the interim, earlier VS's will still load the OSS project
+ let baseCallDelegate = Func(fun () -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands) )
+ try
+ invokeCompiler baseCallDelegate
+ with
| e ->
- System.Diagnostics.Debug.Assert(false, "HostObject received by Fsc task did not have a Compile method or the compile method threw an exception. "+(e.ToString()))
- reraise()
+#if !FX_NO_CONVERTER
+ try
+ let baseCall = fun (dummy : int) -> fsc.BaseExecuteTool(pathToTool, responseFileCommands, commandLineCommands)
+ // We are using a Converter rather than a "unit->int" because it is too hard to
+ // figure out how to pass an F# function object via reflection.
+ let baseCallDelegate = new System.Converter(baseCall)
+ invokeCompiler baseCallDelegate
+ with
+ | e ->
+#endif
+ Debug.Assert(false, "HostObject received by Fsc task did not have a Compile method or the compile method threw an exception. "+(e.ToString()))
+ reraise()
override fsc.GenerateCommandLineCommands() =
- let builder = new FscCommandLineBuilder()
+ let builder = new FSharpCommandLineBuilder()
if not (String.IsNullOrEmpty(dotnetFscCompilerPath)) then builder.AppendSwitch(dotnetFscCompilerPath)
builder.ToString()
@@ -640,18 +547,14 @@ type []
- do()
diff --git a/src/fsharp/FSharp.Build/Fsc.fsi b/src/fsharp/FSharp.Build/Fsc.fsi
deleted file mode 100644
index e05d4f9e6..000000000
--- a/src/fsharp/FSharp.Build/Fsc.fsi
+++ /dev/null
@@ -1,65 +0,0 @@
-// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-
-/// This namespace contains. MSBuild tasks for the FsYacc and FsLex tools.
-namespace Microsoft.FSharp.Build
-type Fsc = class
- inherit Microsoft.Build.Utilities.ToolTask
- new : unit -> Fsc
- override GenerateCommandLineCommands : unit -> System.String
- override GenerateFullPathToTool : unit -> System.String
- override ToolName : System.String
- override StandardErrorEncoding : System.Text.Encoding
- override StandardOutputEncoding : System.Text.Encoding
-
- member internal InternalGenerateFullPathToTool : unit -> System.String
- member internal InternalGenerateCommandLineCommands : unit -> System.String
- member internal InternalGenerateResponseFileCommands : unit -> System.String
- member internal InternalExecuteTool : string * string * string -> int
- member internal GetCapturedArguments : unit -> string[]
- member BaseAddress : string with get,set
- member CodePage : string with get,set
- member CommandLineArgs : Microsoft.Build.Framework.ITaskItem [] with get,set
- member DebugSymbols : bool with get,set
- member DebugType : string with get,set
- member DefineConstants : Microsoft.Build.Framework.ITaskItem [] with get,set
- member DelaySign : bool with get,set
- member DisabledWarnings : string with get,set
- member DocumentationFile : string with get,set
- member DotnetFscCompilerPath : string with get,set
- member Embed : string with get,set
- member EmbedAllSources : bool with get,set
- member GenerateInterfaceFile : string with get,set
- member HighEntropyVA : bool with get,set
- member KeyFile : string with get,set
- member LCID : string with get,set
- member NoFramework : bool with get,set
- member Optimize : bool with get,set
- member OtherFlags : string with get,set
- member OutputAssembly : string with get,set
- member PdbFile : string with get,set
- member Platform : string with get,set
- member Prefer32Bit : bool with get,set
- member PreferredUILang : string with get,set
- member ProvideCommandLineArgs : bool with get,set
- member PublicSign : bool with get,set
- member VersionFile : string with get,set
- member References : Microsoft.Build.Framework.ITaskItem [] with get,set
- member ReferencePath : string with get,set
- member Resources : Microsoft.Build.Framework.ITaskItem [] with get,set
- member SkipCompilerExecution : bool with get,set
- member SourceLink : string with get,set
- member Sources : Microsoft.Build.Framework.ITaskItem [] with get,set
- member SubsystemVersion : string with get,set
- member Tailcalls : bool with get,set
- member TargetType : string with get,set
- member ToolPath : string with get,set
- member TargetProfile : string with get,set
- member TreatWarningsAsErrors : bool with get,set
- member UseStandardResourceNames : bool with get,set
- member Utf8Output : bool with get,set
- member VisualStudioStyleErrors : bool with get,set
- member WarningLevel : string with get,set
- member WarningsAsErrors : string with get,set
- member Win32ResourceFile : string with get,set
- member Win32ManifestFile : string with get,set
- end
diff --git a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
index 188f4ff62..01889c239 100644
--- a/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
+++ b/src/fsharp/FSharp.Compiler.Interactive.Settings/FSharp.Compiler.Interactive.Settings.fsproj
@@ -10,7 +10,6 @@
AnyCPU{649FA588-F02E-457C-9FCF-87E46407481E}Library
- EXTENSIONTYPING;$(DefineConstants)FSharp.Compiler.Interactive.Settings512
diff --git a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
index bcbbfc476..e862b3006 100644
--- a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
+++ b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.fsproj
@@ -10,7 +10,6 @@
AnyCPULibraryFSharp.Compiler.Private
- EXTENSIONTYPING;$(DefineConstants)COMPILER;$(DefineConstants)$(NoWarn);62;9{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}
@@ -683,7 +682,7 @@
- ..\..\..\packages\Microsoft.DiaSymReader.PortablePdb.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll
+ ..\..\..\packages\Microsoft.DiaSymReader.PortablePdb.1.2.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll..\..\..\packages\Microsoft.DiaSymReader.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.dll
@@ -698,44 +697,19 @@
..\..\..\packages\System.ValueTuple.4.3.1\lib\netstandard1.0\System.ValueTuple.dlltrue
+
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
+
+
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.dll
+
+
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Utilities.Core.dll
+
+
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Tasks.Core.dll
+
-
-
-
-
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
-
-
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.dll
-
-
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Utilities.Core.dll
-
-
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Tasks.Core.dll
-
-
-
-
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
-
- {DED3BBD7-53F4-428A-8C9F-27968E768605}
diff --git a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
index 302e10bbe..3b663e8d3 100644
--- a/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
+++ b/src/fsharp/FSharp.Compiler.Private/FSharp.Compiler.Private.netcore.nuspec
@@ -31,13 +31,13 @@
-
+
-
+
diff --git a/src/fsharp/FSharp.Compiler.Private/project.json b/src/fsharp/FSharp.Compiler.Private/project.json
index bee86e2f4..09cfefb19 100644
--- a/src/fsharp/FSharp.Compiler.Private/project.json
+++ b/src/fsharp/FSharp.Compiler.Private/project.json
@@ -17,7 +17,7 @@
"System.Threading.Tasks.Parallel": "4.3.0",
"System.Threading.Thread": "4.3.0",
"System.Threading.ThreadPool": "4.3.0",
- "Microsoft.DiaSymReader.PortablePdb": "1.1.0",
+ "Microsoft.DiaSymReader.PortablePdb": "1.2.0",
"Microsoft.DiaSymReader": "1.1.0",
"System.ValueTuple": "4.3.1"
},
diff --git a/src/fsharp/FSharp.Compiler.Unittests/FSharp.Compiler.Unittests.fsproj b/src/fsharp/FSharp.Compiler.Unittests/FSharp.Compiler.Unittests.fsproj
index 1e4f6603e..765e8cc5b 100644
--- a/src/fsharp/FSharp.Compiler.Unittests/FSharp.Compiler.Unittests.fsproj
+++ b/src/fsharp/FSharp.Compiler.Unittests/FSharp.Compiler.Unittests.fsproj
@@ -17,9 +17,6 @@
falsefalse
-
- $(DefineConstants);EXTENSIONTYPING
- truefalse
diff --git a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
index bf3b7397d..0b7005826 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
+++ b/src/fsharp/FSharp.Compiler.nuget/Microsoft.FSharp.Compiler.nuspec
@@ -25,7 +25,7 @@
-
+
@@ -33,16 +33,16 @@
-
-
+
+
-
-
-
-
-
+
+
+
+
+
@@ -54,16 +54,16 @@
tools, build and runtime/native make unnecessary copies.
this approach gives a very small deployment. Which is kind of necessary.
-->
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.nuspec b/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.nuspec
index ac1069ee4..021b458ed 100644
--- a/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.nuspec
+++ b/src/fsharp/FSharp.Compiler.nuget/Testing.FSharp.Compiler.nuspec
@@ -24,7 +24,7 @@
-
+
@@ -32,8 +32,8 @@
-
-
+
+
@@ -46,16 +46,16 @@
tools, build and runtime/native make unnecessary copies.
this approach gives a very small deployment. Which is kind of necessary.
-->
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj b/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
index 379990b79..9a655b05f 100644
--- a/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
+++ b/src/fsharp/FSharp.Core.Unittests/FSharp.Core.Unittests.fsproj
@@ -24,7 +24,7 @@
$(NoWarn);217
- $(DefineConstants);EXTENSIONTYPING;$(TargetDotnetProfile.ToLower())
+ $(DefineConstants);$(TargetDotnetProfile.ToLower())true
diff --git a/src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Collections/ListType.fs b/src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Collections/ListType.fs
index 009736b36..452add35f 100644
--- a/src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Collections/ListType.fs
+++ b/src/fsharp/FSharp.Core.Unittests/FSharp.Core/Microsoft.FSharp.Collections/ListType.fs
@@ -245,16 +245,26 @@ type ListType() =
Assert.AreEqual(lst.[6..], ([]: int list))
CheckThrowsIndexOutRangException((fun _ -> lst.[7..] |> ignore))
- CheckThrowsIndexOutRangException((fun _ -> lst.[.. -1] |> ignore))
+
+ Assert.AreEqual(lst.[..(-1)], ([]: int list))
Assert.AreEqual(lst.[..0], [1])
Assert.AreEqual(lst.[..1], [1;2])
Assert.AreEqual(lst.[..2], [1;2;3])
Assert.AreEqual(lst.[..3], [1;2;3;4])
Assert.AreEqual(lst.[..4], [1;2;3;4;5])
Assert.AreEqual(lst.[..5], [1;2;3;4;5;6])
- CheckThrowsIndexOutRangException((fun _ -> lst.[..6] |> ignore))
+ CheckThrowsIndexOutRangException((fun _ -> lst.[..6] |> ignore))
+
+ Assert.AreEqual(lst.[0..(-1)], ([]: int list))
+ Assert.AreEqual(lst.[0..0], [1])
+ Assert.AreEqual(lst.[0..1], [1;2])
+ Assert.AreEqual(lst.[0..2], [1;2;3])
+ Assert.AreEqual(lst.[0..3], [1;2;3;4])
+ Assert.AreEqual(lst.[0..4], [1;2;3;4;5])
+ Assert.AreEqual(lst.[0..5], [1;2;3;4;5;6])
+ CheckThrowsIndexOutRangException((fun _ -> lst.[0..6] |> ignore))
- Assert.AreEqual(lst.[1..-1], ([]: int list))
+ Assert.AreEqual(lst.[1..(-1)], ([]: int list))
Assert.AreEqual(lst.[1..0], ([]: int list))
Assert.AreEqual(lst.[1..1], [2])
Assert.AreEqual(lst.[1..2], [2;3])
@@ -270,8 +280,8 @@ type ListType() =
Assert.AreEqual(lst.[3..1], ([]: int list))
Assert.AreEqual(lst.[4..1], ([]: int list))
- Assert.AreEqual(lst.[-3..-4], ([]: int list))
- CheckThrowsIndexOutRangException((fun _ -> lst.[-4..-3] |> ignore))
+ Assert.AreEqual(lst.[-3..(-4)], ([]: int list))
+ CheckThrowsIndexOutRangException((fun _ -> lst.[-4..(-3)] |> ignore))
let empty : obj list = List.empty
Assert.AreEqual(empty.[*], ([]: obj list))
@@ -280,4 +290,4 @@ type ListType() =
CheckThrowsIndexOutRangException((fun _ -> empty.[..0] |> ignore))
CheckThrowsIndexOutRangException((fun _ -> empty.[0..0] |> ignore))
CheckThrowsIndexOutRangException((fun _ -> empty.[0..1] |> ignore))
- CheckThrowsIndexOutRangException((fun _ -> empty.[3..5] |> ignore))
\ No newline at end of file
+ CheckThrowsIndexOutRangException((fun _ -> empty.[3..5] |> ignore))
diff --git a/src/fsharp/FSharp.Core.Unittests/FSharp.Core/SampleTuples/Microsoft.FSharp.TupleSample.nuspec b/src/fsharp/FSharp.Core.Unittests/FSharp.Core/SampleTuples/Microsoft.FSharp.TupleSample.nuspec
index 33c3bd8f3..312296a1a 100644
--- a/src/fsharp/FSharp.Core.Unittests/FSharp.Core/SampleTuples/Microsoft.FSharp.TupleSample.nuspec
+++ b/src/fsharp/FSharp.Core.Unittests/FSharp.Core/SampleTuples/Microsoft.FSharp.TupleSample.nuspec
@@ -17,7 +17,7 @@
-
-
+
+
diff --git a/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.1.xxx.nuspec b/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.1.xxx.nuspec
index c97e0fd54..84ca12cf7 100644
--- a/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.1.xxx.nuspec
+++ b/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.1.xxx.nuspec
@@ -71,56 +71,56 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.2.xxx.nuspec b/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.2.xxx.nuspec
index d69b1df56..26e975536 100644
--- a/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.2.xxx.nuspec
+++ b/src/fsharp/FSharp.Core.nuget/FSharp.Core.4.2.xxx.nuspec
@@ -52,15 +52,15 @@
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/src/fsharp/FSharp.Core.nuget/Microsoft.Portable.FSharp.Core.4.1.xxx.nuspec b/src/fsharp/FSharp.Core.nuget/Microsoft.Portable.FSharp.Core.4.1.xxx.nuspec
index 128b62cb3..22812ebf2 100644
--- a/src/fsharp/FSharp.Core.nuget/Microsoft.Portable.FSharp.Core.4.1.xxx.nuspec
+++ b/src/fsharp/FSharp.Core.nuget/Microsoft.Portable.FSharp.Core.4.1.xxx.nuspec
@@ -14,14 +14,14 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/src/fsharp/FSharp.Core/Testing.FSharp.Core.nuspec b/src/fsharp/FSharp.Core/Testing.FSharp.Core.nuspec
index 208611c36..746986fc7 100644
--- a/src/fsharp/FSharp.Core/Testing.FSharp.Core.nuspec
+++ b/src/fsharp/FSharp.Core/Testing.FSharp.Core.nuspec
@@ -42,8 +42,8 @@
-
-
-
+
+
+
diff --git a/src/fsharp/FSharp.Core/list.fs b/src/fsharp/FSharp.Core/list.fs
index 6b31ea2b0..45eccc3f3 100644
--- a/src/fsharp/FSharp.Core/list.fs
+++ b/src/fsharp/FSharp.Core/list.fs
@@ -216,11 +216,10 @@ namespace Microsoft.FSharp.Collections
| [] -> state
| _ ->
let f = OptimizedClosures.FSharpFunc<_,_,_>.Adapt(folder)
- let rec loop s xs =
- match xs with
- | [] -> s
- | h::t -> loop (f.Invoke(s,h)) t
- loop state list
+ let mutable acc = state
+ for x in list do
+ acc <- f.Invoke(acc, x)
+ acc
[]
let pairwise (list: 'T list) =
diff --git a/src/fsharp/FSharp.Core/prim-types.fs b/src/fsharp/FSharp.Core/prim-types.fs
index 18e8539fc..36ae18b7a 100644
--- a/src/fsharp/FSharp.Core/prim-types.fs
+++ b/src/fsharp/FSharp.Core/prim-types.fs
@@ -3157,7 +3157,7 @@ namespace Microsoft.FSharp.Collections
// similar to 'take' but with n representing an index, not a number of elements
// and with exceptions matching array slicing
let sliceTake n l =
- if n < 0 then outOfRange()
+ if n < 0 then [] else
match l with
| [] -> outOfRange()
| x::xs ->
diff --git a/src/fsharp/Fsc-proto/Fsc-proto.fsproj b/src/fsharp/Fsc-proto/Fsc-proto.fsproj
index 1f86f2337..fd3d209e5 100644
--- a/src/fsharp/Fsc-proto/Fsc-proto.fsproj
+++ b/src/fsharp/Fsc-proto/Fsc-proto.fsproj
@@ -11,6 +11,7 @@
Exe$(NoWarn);62fsc-proto
+ NO_EXTENSIONTYPING;$(DefineConstants)BUILDING_PROTO;$(DefineConstants)BUILDING_WITH_LKG;$(DefineConstants)COMPILER;$(DefineConstants)
@@ -453,7 +454,7 @@
- $(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.PortablePdb.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.PortablePdb.1.2.0\lib\portable-net45+win8\Microsoft.DiaSymReader.PortablePdb.dll$(FSharpSourcesRoot)\..\packages\Microsoft.DiaSymReader.1.1.0\lib\portable-net45+win8\Microsoft.DiaSymReader.dll
@@ -472,7 +473,7 @@
FSharp.Core
-
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
@@ -486,23 +487,6 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Tasks.Core.dll
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
- True
-
-
diff --git a/src/fsharp/Fsc/Fsc.fsproj b/src/fsharp/Fsc/Fsc.fsproj
index 6b9024e5f..64995eb28 100644
--- a/src/fsharp/Fsc/Fsc.fsproj
+++ b/src/fsharp/Fsc/Fsc.fsproj
@@ -18,7 +18,6 @@
Exe$(NoWarn);62fsc
- EXTENSIONTYPING;$(DefineConstants)COMPILER;$(DefineConstants)true$(OtherFlags) --warnon:1182
diff --git a/src/fsharp/IlxGen.fs b/src/fsharp/IlxGen.fs
index dcc823331..e0311b395 100644
--- a/src/fsharp/IlxGen.fs
+++ b/src/fsharp/IlxGen.fs
@@ -400,7 +400,7 @@ and GenNamedTyAppAux (amap:ImportMap) m tyenv ptrsOK tcref tinst =
if ptrsOK = PtrTypesOK && tyconRefEq g tcref g.nativeptr_tcr && (freeInTypes CollectTypars tinst).FreeTypars.IsEmpty then
GenNamedTyAppAux amap m tyenv ptrsOK g.ilsigptr_tcr tinst
else
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tcref.TypeReprInfo with
// Generate the base type, because that is always the representation of the erased type, unless the assembly is being injected
| TProvidedTypeExtensionPoint info when info.IsErased ->
@@ -6179,7 +6179,7 @@ and GenTypeDef cenv mgbuf lazyInitInfo eenv m (tycon:Tycon) =
let tcref = mkLocalTyconRef tycon
if tycon.IsTypeAbbrev then () else
match tycon.TypeReprInfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedNamespaceExtensionPoint _ -> ()
| TProvidedTypeExtensionPoint _ -> ()
#endif
diff --git a/src/fsharp/InfoReader.fs b/src/fsharp/InfoReader.fs
index 375571f1a..c6f8a7629 100644
--- a/src/fsharp/InfoReader.fs
+++ b/src/fsharp/InfoReader.fs
@@ -53,7 +53,7 @@ let GetImmediateIntrinsicMethInfosOfType (optFilter,ad) g amap m typ =
let minfos =
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
let meths =
@@ -122,7 +122,7 @@ let GetImmediateIntrinsicPropInfosOfType (optFilter,ad) g amap m typ =
let pinfos =
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
let matchingProps =
@@ -185,7 +185,7 @@ type InfoReader(g:TcGlobals, amap:Import.ImportMap) =
let GetImmediateIntrinsicILFieldsOfType (optFilter,ad) m typ =
let infos =
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
match optFilter with
@@ -210,7 +210,7 @@ type InfoReader(g:TcGlobals, amap:Import.ImportMap) =
let ComputeImmediateIntrinsicEventsOfType (optFilter,ad) m typ =
let infos =
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
match optFilter with
@@ -426,7 +426,7 @@ let GetIntrinsicConstructorInfosOfType (infoReader:InfoReader) m ty =
let amap = infoReader.amap
if isAppTy g ty then
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
[ for ci in st.PApplyArray((fun st -> st.GetConstructors()), "GetConstructors", m) do
diff --git a/src/fsharp/MethodCalls.fs b/src/fsharp/MethodCalls.fs
index ab6d2c0c7..8221e8087 100644
--- a/src/fsharp/MethodCalls.fs
+++ b/src/fsharp/MethodCalls.fs
@@ -27,7 +27,7 @@ open Microsoft.FSharp.Compiler.Tastops.DebugPrint
open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.TypeRelations
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -654,7 +654,7 @@ let MakeMethInfoCall amap m minfo minst args =
BuildFSharpMethodCall g m (typ,vref) valUseFlags minst args |> fst
| DefaultStructCtor(_,typ) ->
mkDefault (m,typ)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,m) ->
let isProp = false // not necessarily correct, but this is only used post-creflect where this flag is irrelevant
let ilMethodRef = Import.ImportProvidedMethodBaseAsILMethodRef amap m mi
@@ -668,7 +668,7 @@ let MakeMethInfoCall amap m minfo minst args =
#endif
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// This imports a provided method, and checks if it is a known compiler intrinsic like "1 + 2"
let TryImportProvidedMethodBaseAsLibraryIntrinsic (amap:Import.ImportMap, m:range, mbase: Tainted) =
let methodName = mbase.PUntaint((fun x -> x.Name),m)
@@ -718,7 +718,7 @@ let BuildMethodCall tcVal g amap isMutable m isProp minfo valUseFlags minst objA
valUseFlags
match minfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// By this time this is an erased method info, e.g. one returned from an expression
// REVIEW: copied from tastops, which doesn't allow protected methods
| ProvidedMeth (amap,providedMeth,_,_) ->
@@ -835,7 +835,7 @@ let CoerceFromFSharpFuncToDelegate g amap infoReader ad callerArgTy m callerArgE
//-------------------------------------------------------------------------
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// This file is not a great place for this functionality to sit, it's here because of BuildMethodCall
module ProvidedMethodCalls =
diff --git a/src/fsharp/MethodOverrides.fs b/src/fsharp/MethodOverrides.fs
index 56092362d..a326248b5 100644
--- a/src/fsharp/MethodOverrides.fs
+++ b/src/fsharp/MethodOverrides.fs
@@ -650,7 +650,7 @@ let FinalTypeDefinitionChecksAtEndOfInferenceScope (infoReader:InfoReader, nenv,
// Note you only have to explicitly implement 'System.IComparable' to customize structural comparison AND equality on F# types
if isImplementation &&
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
not tycon.IsProvidedGeneratedTycon &&
#endif
Option.isNone tycon.GeneratedCompareToValues &&
@@ -667,7 +667,7 @@ let FinalTypeDefinitionChecksAtEndOfInferenceScope (infoReader:InfoReader, nenv,
AugmentWithHashCompare.CheckAugmentationAttribs isImplementation g amap tycon
// Check some conditions about generic comparison and hashing. We can only check this condition after we've done the augmentation
if isImplementation
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
&& not tycon.IsProvidedGeneratedTycon
#endif
then
diff --git a/src/fsharp/NameResolution.fs b/src/fsharp/NameResolution.fs
index 7150c4d99..a80ddbf1d 100644
--- a/src/fsharp/NameResolution.fs
+++ b/src/fsharp/NameResolution.fs
@@ -27,7 +27,7 @@ open Microsoft.FSharp.Compiler.InfoReader
open Microsoft.FSharp.Compiler.PrettyNaming
open System.Collections.Generic
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -899,7 +899,9 @@ let AddResults res1 res2 =
| Result x,Exception _ -> Result x
// If we have error messages for the same symbol, then we can merge suggestions.
| Exception (UndefinedName(n1,f,id1,suggestions1)),Exception (UndefinedName(n2,_,id2,suggestions2)) when n1 = n2 && id1.idText = id2.idText && id1.idRange = id2.idRange ->
- Exception(UndefinedName(n1,f,id1,fun () -> Set.union (suggestions1()) (suggestions2())))
+ let suggestions = HashSet(suggestions1())
+ suggestions.UnionWith(suggestions2())
+ Exception(UndefinedName(n1,f,id1,fun () -> suggestions))
// This prefers error messages coming from deeper failing long identifier paths
| Exception (UndefinedName(n1,_,_,_) as e1),Exception (UndefinedName(n2,_,_,_) as e2) ->
if n1 < n2 then Exception e2 else Exception e1
@@ -1066,7 +1068,7 @@ type PermitDirectReferenceToGeneratedType =
| No
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Check for direct references to generated provided types.
let CheckForDirectReferenceToGeneratedType (tcref: TyconRef, genOk, m) =
@@ -1141,7 +1143,7 @@ let LookupTypeNameInEntityMaybeHaveArity (amap, m, ad, nm, staticResInfo:TypeNam
match LookupTypeNameInEntityHaveArity nm staticResInfo mtyp with
| Some tycon -> [modref.NestedTyconRef tycon]
| None -> []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let tcrefs =
match tcrefs with
| [] -> ResolveProvidedTypeNameInEntity (amap, m, nm, modref)
@@ -1171,7 +1173,7 @@ let GetNestedTypesOfType (ad, ncenv:NameResolver, optFilter, staticResInfo, chec
let tycon = tcref.Deref
let mty = tycon.ModuleOrNamespaceType
// No dotting through type generators to get to a nested type!
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if checkForGenerated then
CheckForDirectReferenceToGeneratedType (tcref, PermitDirectReferenceToGeneratedType.No, m)
#else
@@ -1183,7 +1185,7 @@ let GetNestedTypesOfType (ad, ncenv:NameResolver, optFilter, staticResInfo, chec
let tcrefs = LookupTypeNameInEntityMaybeHaveArity (ncenv.amap, m, ad, nm, staticResInfo, tcref)
tcrefs |> List.map (MakeNestedType ncenv tinst m)
| None ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tycon.TypeReprInfo with
| TProvidedTypeExtensionPoint info ->
[ for nestedType in info.ProvidedType.PApplyArray((fun sty -> sty.GetNestedTypes()), "GetNestedTypes", m) do
@@ -1727,7 +1729,7 @@ let CheckForTypeLegitimacyAndMultipleGenericTypeAmbiguities
| _ ->
tcrefs
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
for (_,tcref) in tcrefs do
// Type generators can't be returned by name resolution, unless PermitDirectReferenceToGeneratedType.Yes
CheckForDirectReferenceToGeneratedType (tcref, genOk, m)
@@ -1761,23 +1763,23 @@ let rec ResolveLongIndentAsModuleOrNamespace atMostOne amap m fullyQualified (ne
|> Seq.collect (fun kv -> kv.Value)
|> Seq.filter (fun modref -> IsEntityAccessible amap m ad modref)
|> Seq.collect (fun e -> [e.DisplayName; e.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ |> HashSet
UndefinedName(0,FSComp.SR.undefinedNameNamespaceOrModule,id,suggestModulesAndNamespaces))
- let moduleNotFoundErrorCache = ref None
- let moduleNotFound (modref: ModuleOrNamespaceRef) (mty:ModuleOrNamespaceType) id depth =
- match !moduleNotFoundErrorCache with
- | Some error -> error
- | None ->
+ let mutable moduleNotFoundErrorCache = None
+ let moduleNotFound (modref: ModuleOrNamespaceRef) (mty:ModuleOrNamespaceType) (id:Ident) depth =
+ match moduleNotFoundErrorCache with
+ | Some (oldId, error) when oldId = id.idRange -> error
+ | _ ->
let suggestNames() =
mty.ModulesAndNamespacesByDemangledName
|> Seq.filter (fun kv -> IsEntityAccessible amap m ad (modref.NestedTyconRef kv.Value))
|> Seq.collect (fun e -> [e.Value.DisplayName; e.Value.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ |> HashSet
let error = raze (UndefinedName(depth,FSComp.SR.undefinedNameNamespace,id,suggestNames))
- moduleNotFoundErrorCache := Some error
+ moduleNotFoundErrorCache <- Some(id.idRange, error)
error
match moduleOrNamespaces.TryFind id.idText with
@@ -1931,7 +1933,7 @@ let SelectMethInfosFromExtMembers (infoReader:InfoReader) optFilter apparentTy m
// F#-defined IL-style extension methods are not seen as extension methods in F# code
| FSMeth(g,_,vref,_) ->
yield (FSMeth(g, apparentTy, vref, Some pri))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// // Provided extension methods are not yet supported
| ProvidedMeth(amap,providedMeth,_,m) ->
yield (ProvidedMeth(amap, providedMeth, Some pri,m))
@@ -1989,7 +1991,7 @@ let CoreDisplayName(pinfo:PropInfo) =
| FSProp(_,_,Some get,_) -> get.CoreDisplayName
| FSProp _ -> failwith "unexpected (property must have either getter or setter)"
| ILProp(_,ILPropInfo(_,def)) -> def.Name
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) -> pi.PUntaint((fun pi -> pi.Name), m)
#endif
@@ -2014,16 +2016,13 @@ let DecodeFSharpEvent (pinfos:PropInfo list) ad g (ncenv:NameResolver) m =
/// Returns all record label names for the given type.
let GetRecordLabelsForType g nenv typ =
+ let result = HashSet()
if isRecdTy g typ then
- let typeName = NicePrint.minimalStringOfType nenv.eDisplayEnv typ
- nenv.eFieldLabels
- |> Seq.filter (fun kv ->
- kv.Value
- |> List.exists (fun r -> r.TyconRef.DisplayName = typeName))
- |> Seq.map (fun kv -> kv.Key)
- |> Set.ofSeq
- else
- Set.empty
+ let typeName = NicePrint.minimalStringOfType nenv.eDisplayEnv typ
+ for KeyValue(k, v) in nenv.eFieldLabels do
+ if v |> List.exists (fun r -> r.TyconRef.DisplayName = typeName) then
+ result.Add k |> ignore
+ result
// REVIEW: this shows up on performance logs. Consider for example endless resolutions of "List.map" to
// the empty set of results, or "x.Length" for a list or array type. This indicates it could be worth adding a cache here.
@@ -2112,21 +2111,22 @@ let rec ResolveLongIdentInTypePrim (ncenv:NameResolver) nenv lookupKind (resInfo
let suggestions1 =
ExtensionPropInfosOfTypeInScope ncenv.InfoReader nenv (None, ad) m typ
|> List.map (fun p -> p.PropertyName)
- |> Set.ofList
+
let suggestions2 =
ExtensionMethInfosOfTypeInScope ncenv.InfoReader nenv None m typ
|> List.map (fun m -> m.DisplayName)
- |> Set.ofList
+
let suggestions3 =
GetIntrinsicPropInfosOfType ncenv.InfoReader (None, ad, AllowMultiIntfInstantiations.No) findFlag m typ
|> List.map (fun p -> p.PropertyName)
- |> Set.ofList
+
let suggestions4 =
GetIntrinsicMethInfosOfType ncenv.InfoReader (None, ad, AllowMultiIntfInstantiations.No) findFlag m typ
|> List.filter (fun m -> not m.IsClassConstructor && not m.IsConstructor)
|> List.map (fun m -> m.DisplayName)
- |> Set.ofList
+
let suggestions5 = GetRecordLabelsForType g nenv typ
+
let suggestions6 =
match lookupKind with
| LookupKind.Expr | LookupKind.Pattern ->
@@ -2134,17 +2134,17 @@ let rec ResolveLongIdentInTypePrim (ncenv:NameResolver) nenv lookupKind (resInfo
let tcref,_ = destAppTy g typ
tcref.UnionCasesArray
|> Array.map (fun uc -> uc.DisplayName)
- |> Set.ofArray
else
- Set.empty
- | _ -> Set.empty
+ [||]
+ | _ -> [||]
- suggestions1
- |> Set.union suggestions2
- |> Set.union suggestions3
- |> Set.union suggestions4
- |> Set.union suggestions5
- |> Set.union suggestions6
+ [ yield! suggestions1
+ yield! suggestions2
+ yield! suggestions3
+ yield! suggestions4
+ yield! suggestions5
+ yield! suggestions6 ]
+ |> HashSet
raze (UndefinedName (depth,FSComp.SR.undefinedNameFieldConstructorOrMember, id, suggestMembers))
@@ -2164,7 +2164,7 @@ let ResolveLongIdentInType sink ncenv nenv lookupKind m ad lid findFlag typeName
item,rest
let private ResolveLongIdentInTyconRef (ncenv:NameResolver) nenv lookupKind resInfo depth m ad lid typeNameResInfo tcref =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// No dotting through type generators to get to a member!
CheckForDirectReferenceToGeneratedType (tcref, PermitDirectReferenceToGeneratedType.No, m)
#endif
@@ -2259,13 +2259,11 @@ let rec ResolveExprLongIdentInModuleOrNamespace (ncenv:NameResolver) nenv (typeN
modref.ModuleOrNamespaceType.AllEntities
|> Seq.filter (fun e -> IsEntityAccessible ncenv.amap m ad (modref.NestedTyconRef e))
|> Seq.map (fun e -> e.DisplayName)
- |> Set.ofSeq
let submodules =
mty.ModulesAndNamespacesByDemangledName
|> Seq.filter (fun kv -> IsEntityAccessible ncenv.amap m ad (modref.NestedTyconRef kv.Value))
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
let unions =
modref.ModuleOrNamespaceType.AllEntities
@@ -2276,25 +2274,23 @@ let rec ResolveExprLongIdentInModuleOrNamespace (ncenv:NameResolver) nenv (typeN
else
tycon.UnionCasesArray)
|> Seq.map (fun uc -> uc.DisplayName)
- |> Set.ofSeq
let vals =
modref.ModuleOrNamespaceType.AllValsByLogicalName
|> Seq.filter (fun e -> IsValAccessible ad (mkNestedValRef modref e.Value))
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
let exns =
modref.ModuleOrNamespaceType.ExceptionDefinitionsByDemangledName
|> Seq.filter (fun e -> IsTyconReprAccessible ncenv.amap m ad (modref.NestedTyconRef e.Value))
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
- types
- |> Set.union submodules
- |> Set.union unions
- |> Set.union vals
- |> Set.union exns
+ [ yield! types
+ yield! submodules
+ yield! unions
+ yield! vals
+ yield! exns ]
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameValueConstructorNamespaceOrType,id,suggestPossibleTypesAndNames))
| results -> AtMostOneResult id.idRange results
@@ -2393,20 +2389,17 @@ let rec ResolveExprLongIdentPrim sink (ncenv:NameResolver) fullyQualified m ad n
let suggestedNames =
nenv.eUnqualifiedItems
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
let suggestedTypes =
nenv.TyconsByDemangledNameAndArity fullyQualified
|> Seq.filter (fun e -> IsEntityAccessible ncenv.amap m ad e.Value)
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
let suggestedModulesAndNamespaces =
nenv.ModulesAndNamespaces fullyQualified
|> Seq.collect (fun kv -> kv.Value)
|> Seq.filter (fun modref -> IsEntityAccessible ncenv.amap m ad modref)
|> Seq.collect (fun e -> [e.DisplayName; e.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
let unions =
// check if the user forgot to use qualified access
@@ -2421,12 +2414,12 @@ let rec ResolveExprLongIdentPrim sink (ncenv:NameResolver) fullyQualified m ad n
else
None)
|> Seq.map (fun t -> t.DisplayName + "." + id.idText)
- |> Set.ofSeq
- suggestedNames
- |> Set.union suggestedTypes
- |> Set.union suggestedModulesAndNamespaces
- |> Set.union unions
+ [ yield! suggestedNames
+ yield! suggestedTypes
+ yield! suggestedModulesAndNamespaces
+ yield! unions ]
+ |> HashSet
raze (UndefinedName(0,FSComp.SR.undefinedNameValueOfConstructor,id,suggestNamesAndTypes))
ForceRaise failingCase
@@ -2514,33 +2507,28 @@ let rec ResolveExprLongIdentPrim sink (ncenv:NameResolver) fullyQualified m ad n
search +++ moduleSearch +++ tyconSearch
let suggestEverythingInScope() =
- let suggestedModulesAndNamespaces =
- nenv.ModulesAndNamespaces fullyQualified
- |> Seq.collect (fun kv -> kv.Value)
- |> Seq.filter (fun modref -> IsEntityAccessible ncenv.amap m ad modref)
- |> Seq.collect (fun e -> [e.DisplayName; e.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ seq { yield!
+ nenv.ModulesAndNamespaces fullyQualified
+ |> Seq.collect (fun kv -> kv.Value)
+ |> Seq.filter (fun modref -> IsEntityAccessible ncenv.amap m ad modref)
+ |> Seq.collect (fun e -> [e.DisplayName; e.DemangledModuleOrNamespaceName])
- let suggestedTypes =
- nenv.TyconsByDemangledNameAndArity fullyQualified
- |> Seq.filter (fun e -> IsEntityAccessible ncenv.amap m ad e.Value)
- |> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
+ yield!
+ nenv.TyconsByDemangledNameAndArity fullyQualified
+ |> Seq.filter (fun e -> IsEntityAccessible ncenv.amap m ad e.Value)
+ |> Seq.map (fun e -> e.Value.DisplayName)
- let suggestedNames =
- nenv.eUnqualifiedItems
- |> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
-
- suggestedNames
- |> Set.union suggestedTypes
- |> Set.union suggestedModulesAndNamespaces
+ yield!
+ nenv.eUnqualifiedItems
+ |> Seq.map (fun e -> e.Value.DisplayName)
+ } |> HashSet
match innerSearch with
| Exception (UndefinedName(0,_,id1,suggestionsF)) when id.idRange = id1.idRange ->
let mergeSuggestions() =
- suggestEverythingInScope()
- |> Set.union (suggestionsF())
+ let res = suggestEverythingInScope()
+ res.UnionWith(suggestionsF())
+ res
let failingCase = raze (UndefinedName(0,FSComp.SR.undefinedNameValueNamespaceTypeOrModule,id,mergeSuggestions))
ForceRaise failingCase
@@ -2635,15 +2623,15 @@ let rec ResolvePatternLongIdentInModuleOrNamespace (ncenv:NameResolver) nenv num
mty.ModulesAndNamespacesByDemangledName
|> Seq.filter (fun kv -> IsEntityAccessible ncenv.amap m ad (modref.NestedTyconRef kv.Value))
|> Seq.collect (fun e -> [e.Value.DisplayName; e.Value.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
let suggestedTypes =
nenv.TyconsByDemangledNameAndArity FullyQualifiedFlag.OpenQualified
|> Seq.filter (fun e -> IsEntityAccessible ncenv.amap m ad e.Value)
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
- Set.union submodules suggestedTypes
+ [ yield! submodules
+ yield! suggestedTypes ]
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameConstructorModuleOrNamespace,id,suggestPossibleTypes))
| results -> AtMostOneResult id.idRange results
@@ -2732,7 +2720,7 @@ let rec ResolveTypeLongIdentInTyconRefPrim (ncenv:NameResolver) (typeNameResInfo
match lid with
| [] -> error(Error(FSComp.SR.nrUnexpectedEmptyLongId(),m))
| [id] ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// No dotting through type generators to get to a nested type!
CheckForDirectReferenceToGeneratedType (tcref, PermitDirectReferenceToGeneratedType.No, m)
#endif
@@ -2746,11 +2734,11 @@ let rec ResolveTypeLongIdentInTyconRefPrim (ncenv:NameResolver) (typeNameResInfo
let suggestTypes() =
tcref.ModuleOrNamespaceType.TypesByDemangledNameAndArity id.idRange
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameType,id,suggestTypes))
| id::rest ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// No dotting through type generators to get to a nested type!
CheckForDirectReferenceToGeneratedType (tcref, PermitDirectReferenceToGeneratedType.No, m)
#endif
@@ -2767,7 +2755,7 @@ let rec ResolveTypeLongIdentInTyconRefPrim (ncenv:NameResolver) (typeNameResInfo
let suggestTypes() =
tcref.ModuleOrNamespaceType.TypesByDemangledNameAndArity id.idRange
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameType,id,suggestTypes))
@@ -2787,7 +2775,7 @@ let SuggestTypeLongIdentInModuleOrNamespace depth (modref:ModuleOrNamespaceRef)
modref.ModuleOrNamespaceType.AllEntities
|> Seq.filter (fun e -> IsEntityAccessible amap m ad (modref.NestedTyconRef e))
|> Seq.collect (fun e -> [e.DisplayName; e.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ |> HashSet
let errorTextF s = FSComp.SR.undefinedNameTypeIn(s,fullDisplayTextOfModRef modref)
UndefinedName(depth,errorTextF,id,suggestPossibleTypes)
@@ -2814,7 +2802,7 @@ let rec private ResolveTypeLongIdentInModuleOrNamespace (ncenv:NameResolver) (ty
modref.ModuleOrNamespaceType.ModulesAndNamespacesByDemangledName
|> Seq.filter (fun kv -> IsEntityAccessible ncenv.amap m ad (modref.NestedTyconRef kv.Value))
|> Seq.collect (fun e -> [e.Value.DisplayName; e.Value.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameNamespaceOrModule,id,suggestPossibleModules))
let tyconSearch =
@@ -2825,7 +2813,7 @@ let rec private ResolveTypeLongIdentInModuleOrNamespace (ncenv:NameResolver) (ty
let suggestTypes() =
modref.ModuleOrNamespaceType.TypesByDemangledNameAndArity id.idRange
|> Seq.map (fun e -> e.Value.DisplayName)
- |> Set.ofSeq
+ |> HashSet
raze (UndefinedName(depth,FSComp.SR.undefinedNameType,id,suggestTypes))
tyconSearch +++ modulSearch
@@ -2868,7 +2856,7 @@ let rec ResolveTypeLongIdentPrim (ncenv:NameResolver) occurence fullyQualified m
if e.Value.DisplayName.EndsWith "Attribute" then
yield e.Value.DisplayName.Replace("Attribute","")]
| _ -> [e.Value.DisplayName; e.Value.DemangledModuleOrNamespaceName])
- |> Set.ofSeq
+ |> HashSet
raze (UndefinedName(0,FSComp.SR.undefinedNameType,id,suggestPossibleTypes))
@@ -2991,18 +2979,19 @@ let SuggestOtherLabelsOfSameRecordType g (nenv:NameResolutionEnv) typ (id:Ident)
allFields
|> List.map (fun fld -> fld.idText)
|> List.filter ((<>) id.idText)
- |> Set.ofList
- Set.difference labelsOfPossibleRecord givenFields
-
+ labelsOfPossibleRecord.ExceptWith givenFields
+ labelsOfPossibleRecord
let SuggestLabelsOfRelatedRecords g (nenv:NameResolutionEnv) (id:Ident) (allFields:Ident list) =
let suggestLabels() =
- let givenFields = allFields |> List.map (fun fld -> fld.idText) |> List.filter ((<>) id.idText) |> Set.ofList
+ let givenFields = allFields |> List.map (fun fld -> fld.idText) |> List.filter ((<>) id.idText) |> HashSet
let fullyQualfied =
- if Set.isEmpty givenFields then
+ if givenFields.Count = 0 then
// return labels from all records
- NameMap.domainL nenv.eFieldLabels |> Set.ofList |> Set.remove "contents"
+ let result = NameMap.domainL nenv.eFieldLabels |> HashSet
+ result.Remove "contents" |> ignore
+ result
else
let possibleRecords =
[for fld in givenFields do
@@ -3010,10 +2999,10 @@ let SuggestLabelsOfRelatedRecords g (nenv:NameResolutionEnv) (id:Ident) (allFiel
| None -> ()
| Some recordTypes -> yield! (recordTypes |> List.map (fun r -> r.TyconRef.DisplayName, fld)) ]
|> List.groupBy fst
- |> List.map (fun (r,fields) -> r, fields |> List.map snd |> Set.ofList)
- |> List.filter (fun (_,fields) -> Set.isSubset givenFields fields)
+ |> List.map (fun (r,fields) -> r, fields |> List.map snd)
+ |> List.filter (fun (_,fields) -> givenFields.IsSubsetOf fields)
|> List.map fst
- |> Set.ofList
+ |> HashSet
let labelsOfPossibleRecords =
nenv.eFieldLabels
@@ -3022,11 +3011,12 @@ let SuggestLabelsOfRelatedRecords g (nenv:NameResolutionEnv) (id:Ident) (allFiel
|> List.map (fun r -> r.TyconRef.DisplayName)
|> List.exists possibleRecords.Contains)
|> Seq.map (fun kv -> kv.Key)
- |> Set.ofSeq
+ |> HashSet
- Set.difference labelsOfPossibleRecords givenFields
+ labelsOfPossibleRecords.ExceptWith givenFields
+ labelsOfPossibleRecords
- if not (Set.isEmpty fullyQualfied) then fullyQualfied else
+ if fullyQualfied.Count > 0 then fullyQualfied else
// check if the user forgot to use qualified access
nenv.eTyconsByDemangledNameAndArity
@@ -3040,7 +3030,7 @@ let SuggestLabelsOfRelatedRecords g (nenv:NameResolutionEnv) (id:Ident) (allFiel
else
None)
|> Seq.map (fun t -> t.DisplayName + "." + id.idText)
- |> Set.ofSeq
+ |> HashSet
UndefinedName(0,FSComp.SR.undefinedNameRecordLabel, id, suggestLabels)
@@ -3575,7 +3565,7 @@ let ResolveCompletionsInType (ncenv: NameResolver) nenv (completionTargets: Reso
if addersAndRemovers.IsEmpty then minfos
else minfos |> List.filter (fun minfo -> not (addersAndRemovers.Contains minfo.LogicalName))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// Filter out the ones with mangled names from applying static parameters
let minfos =
let methsWithStaticParams =
@@ -4201,7 +4191,7 @@ let ResolveCompletionsInTypeForItem (ncenv: NameResolver) nenv m ad statics typ
if addersAndRemovers.IsEmpty then minfos
else minfos |> List.filter (fun minfo -> not (addersAndRemovers.Contains minfo.LogicalName))
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
// Filter out the ones with mangled names from applying static parameters
let minfos =
let methsWithStaticParams =
diff --git a/src/fsharp/NicePrint.fs b/src/fsharp/NicePrint.fs
index 2387b0365..258f12a52 100755
--- a/src/fsharp/NicePrint.fs
+++ b/src/fsharp/NicePrint.fs
@@ -27,7 +27,7 @@ open Microsoft.FSharp.Compiler.PrettyNaming
open Microsoft.FSharp.Core.Printf
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
open Microsoft.FSharp.Core.CompilerServices
#endif
@@ -1370,7 +1370,7 @@ module InfoMemberPrinting =
let prettyTyparInst, prettyMethInfo, minst = prettifyILMethInfo amap m methInfo typarInst ilminfo
let resL = layoutMethInfoCSharpStyle amap m denv prettyMethInfo minst
prettyTyparInst, resL
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ ->
let prettyTyparInst, _ = PrettyTypes.PrettifyInst amap.g typarInst
prettyTyparInst, layoutMethInfoCSharpStyle amap m denv methInfo methInfo.FormalMethodInst
@@ -1469,7 +1469,7 @@ module private TastDefinitionPrinting =
| TAsmRepr _
| TILObjectRepr _
| TMeasureableRepr _
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint _
| TProvidedNamespaceExtensionPoint _
#endif
@@ -1477,7 +1477,7 @@ module private TastDefinitionPrinting =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let private layoutILFieldInfo denv amap m (e: ILFieldInfo) =
let staticL = if e.IsStatic then WordL.keywordStatic else emptyL
let nameL = wordL (tagField (adjustILName e.FieldName))
@@ -1642,7 +1642,7 @@ module private TastDefinitionPrinting =
let tpsL = layoutTyparDecls denv nameL tycon.IsPrefixDisplay tps
typewordL ^^ tpsL
let start = Option.map tagKeyword start
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tycon.IsProvided with
| true ->
layoutProvidedTycon denv infoReader ad m start lhsL ty
diff --git a/src/fsharp/PostInferenceChecks.fs b/src/fsharp/PostInferenceChecks.fs
index 029de52c3..8906c9a4e 100644
--- a/src/fsharp/PostInferenceChecks.fs
+++ b/src/fsharp/PostInferenceChecks.fs
@@ -1379,7 +1379,7 @@ let CheckRecdField isUnion cenv env (tycon:Tycon) (rfield:RecdField) =
CheckForByrefLikeType cenv env rfield.FormalType (fun () -> errorR(Error(FSComp.SR.chkCantStoreByrefValue(), tycon.Range)))
let CheckEntityDefn cenv env (tycon:Entity) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if not tycon.IsProvidedGeneratedTycon then
#endif
let env = { env with reflect = env.reflect || HasFSharpAttribute cenv.g cenv.g.attrib_ReflectedDefinitionAttribute tycon.Attribs }
diff --git a/src/fsharp/QuotationTranslator.fs b/src/fsharp/QuotationTranslator.fs
index 5ca9483fe..0f599ff60 100644
--- a/src/fsharp/QuotationTranslator.fs
+++ b/src/fsharp/QuotationTranslator.fs
@@ -802,7 +802,7 @@ and ConvType cenv env m typ =
| TType_ucase(UCRef(tcref,_),tyargs) // Note: we erase union case 'types' when converting to quotations
| TType_app(tcref,tyargs) ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match TryElimErasableTyconRef cenv m tcref with
| Some baseTy -> ConvType cenv env m baseTy
| _ ->
@@ -926,7 +926,7 @@ and ConvDecisionTree cenv env tgs typR x =
and IsILTypeRefStaticLinkLocal cenv m (tr:ILTypeRef) =
ignore cenv; ignore m
match tr.Scope with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ILScopeRef.Assembly aref
when not cenv.g.isInteractive &&
aref.Name <> cenv.g.ilg.primaryAssemblyName && // optimization to avoid this check in the common case
@@ -985,7 +985,7 @@ and ConvILType cenv env m ty =
| ILType.FunctionPointer _ -> wfail(Error(FSComp.SR.crefQuotationsCantContainThisType(), m))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
and TryElimErasableTyconRef cenv m (tcref:TyconRef) =
match tcref.TypeReprInfo with
// Get the base type
@@ -994,7 +994,7 @@ and TryElimErasableTyconRef cenv m (tcref:TyconRef) =
#endif
and ConvTyconRef cenv (tcref:TyconRef) m =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match TryElimErasableTyconRef cenv m tcref with
| Some baseTy -> ConvTyconRef cenv (tcrefOfAppTy cenv.g baseTy) m
| None ->
diff --git a/src/fsharp/SignatureConformance.fs b/src/fsharp/SignatureConformance.fs
index cd41c20fc..21d2fd061 100644
--- a/src/fsharp/SignatureConformance.fs
+++ b/src/fsharp/SignatureConformance.fs
@@ -17,7 +17,7 @@ open Microsoft.FSharp.Compiler.Tastops
open Microsoft.FSharp.Compiler.Lib
open Microsoft.FSharp.Compiler.Infos
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -446,7 +446,7 @@ type Checker(g, amap, denv, remapInfo: SignatureRepackageInfo, checkingSig) =
| (TRecdRepr _
| TUnionRepr _
| TILObjectRepr _
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint _
| TProvidedNamespaceExtensionPoint _
#endif
@@ -498,7 +498,7 @@ type Checker(g, amap, denv, remapInfo: SignatureRepackageInfo, checkingSig) =
| (TMeasureableRepr ty1), (TMeasureableRepr ty2) ->
if typeAEquiv g aenv ty1 ty2 then true else (errorR (Error(FSComp.SR.DefinitionsInSigAndImplNotCompatibleRepresentationsDiffer(implTycon.TypeOrMeasureKind.ToString(), implTycon.DisplayName),m)); false)
| TNoRepr, TNoRepr -> true
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint info1 , TProvidedTypeExtensionPoint info2 ->
Tainted.EqTainted info1.ProvidedType.TypeProvider info2.ProvidedType.TypeProvider && ProvidedType.TaintedEquals(info1.ProvidedType,info2.ProvidedType)
| TProvidedNamespaceExtensionPoint _, TProvidedNamespaceExtensionPoint _ ->
diff --git a/src/fsharp/TastOps.fs b/src/fsharp/TastOps.fs
index 5b0c0eaf0..d2d378508 100644
--- a/src/fsharp/TastOps.fs
+++ b/src/fsharp/TastOps.fs
@@ -22,7 +22,7 @@ open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.Layout
open Microsoft.FSharp.Compiler.Layout.TaggedTextOps
open Microsoft.FSharp.Compiler.PrettyNaming
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -627,14 +627,14 @@ let reduceTyconRefAbbrev (tcref:TyconRef) tyargs =
reduceTyconAbbrev tcref.Deref tyargs
let reduceTyconMeasureableOrProvided (g:TcGlobals) (tycon:Tycon) tyargs =
-#if !EXTENSIONTYPING
+#if NO_EXTENSIONTYPING
ignore g // otherwise g would be unused
#endif
let repr = tycon.TypeReprInfo
match repr with
| TMeasureableRepr ty ->
if isNil tyargs then ty else instType (mkTyconInst tycon tyargs) ty
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint info when info.IsErased -> info.BaseTypeForErased (range0, g.obj_ty)
#endif
| _ -> invalidArg "tc" "this type definition is not a refinement"
@@ -921,7 +921,7 @@ let measureEquiv g m1 m2 = measureAEquiv g TypeEquivEnv.Empty m1 m2
let isErasedType g ty =
match stripTyEqns g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TType_app (tcref, _) -> tcref.IsProvidedErasedTycon
#endif
| _ -> false
@@ -1516,19 +1516,19 @@ let isILAppTy g ty = ty |> stripTyEqns g |> (function TType_app(tcref, _) ->
let isNativePtrTy g ty = ty |> stripTyEqns g |> (function TType_app(tcref, _) -> tyconRefEq g g.nativeptr_tcr tcref | _ -> false)
let isByrefTy g ty = ty |> stripTyEqns g |> (function TType_app(tcref, _) -> tyconRefEq g g.byref_tcr tcref | _ -> false)
let isByrefLikeTy g ty = ty |> stripTyEqns g |> (function TType_app(tcref, _) -> isByrefLikeTyconRef g tcref | _ -> false)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let extensionInfoOfTy g ty = ty |> stripTyEqns g |> (function TType_app(tcref, _) -> tcref.TypeReprInfo | _ -> TNoRepr)
#endif
type TypeDefMetadata =
| ILTypeMetadata of TILObjectReprData
| FSharpOrArrayOrByrefOrTupleOrExnTypeMetadata
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata of TProvidedTypeInfo
#endif
let metadataOfTycon (tycon:Tycon) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tycon.TypeReprInfo with
| TProvidedTypeExtensionPoint info -> ProvidedTypeMetadata info
| _ ->
@@ -1540,7 +1540,7 @@ let metadataOfTycon (tycon:Tycon) =
let metadataOfTy g ty =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match extensionInfoOfTy g ty with
| TProvidedTypeExtensionPoint info -> ProvidedTypeMetadata info
| _ ->
@@ -1554,7 +1554,7 @@ let metadataOfTy g ty =
let isILReferenceTy g ty =
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> not info.IsStructOrEnum
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> not td.IsStructOrEnum
@@ -1562,7 +1562,7 @@ let isILReferenceTy g ty =
let isILInterfaceTycon (tycon:Tycon) =
match metadataOfTycon tycon with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsInterface
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Interface)
@@ -1594,7 +1594,7 @@ let isFSharpInterfaceTy g ty =
let isDelegateTy g ty =
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsDelegate ()
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Delegate)
@@ -1605,7 +1605,7 @@ let isDelegateTy g ty =
let isInterfaceTy g ty =
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsInterface
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Interface)
@@ -1613,7 +1613,7 @@ let isInterfaceTy g ty =
let isClassTy g ty =
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsClass
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Class)
@@ -2781,7 +2781,7 @@ let TryFindILAttributeOpt attr attrs =
let TryBindTyconRefAttribute g (m:range) (AttribInfo (atref, _) as args) (tcref:TyconRef) f1 f2 f3 =
ignore m; ignore f3
match metadataOfTycon tcref.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let provAttribs = info.ProvidedType.PApply((fun a -> (a :> IProvidedCustomAttributeProvider)), m)
match provAttribs.PUntaint((fun a -> a.GetAttributeConstructorArgs(provAttribs.TypeProvider.PUntaintNoFailure(id), atref.FullName)), m) with
@@ -3394,7 +3394,7 @@ module DebugPrint = begin
| _ -> failwith "unreachable"
let reprL =
match tycon.TypeReprInfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint _
| TProvidedNamespaceExtensionPoint _
#endif
@@ -4443,7 +4443,7 @@ let InferArityOfExprBinding g allowTypeDirectedDetupling (v:Val) e =
let underlyingTypeOfEnumTy (g: TcGlobals) typ =
assert(isEnumTy g typ)
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.UnderlyingTypeOfEnum()
#endif
| ILTypeMetadata (TILObjectReprData(_, _, tdef)) ->
@@ -4885,7 +4885,7 @@ and remapTyconRepr g tmenv repr =
| TRecdRepr x -> TRecdRepr (remapRecdFields g tmenv x)
| TUnionRepr x -> TUnionRepr (remapUnionCases g tmenv x)
| TILObjectRepr _ -> failwith "cannot remap IL type definitions"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedNamespaceExtensionPoint _ -> repr
| TProvidedTypeExtensionPoint info ->
TProvidedTypeExtensionPoint
@@ -6324,7 +6324,7 @@ let mkCompilationMappingAttrForQuotationResource (g:TcGlobals) (nm, tys: ILTypeR
[ ILAttribElem.String (Some nm); ILAttribElem.Array (g.ilg.typ_Type, [ for ty in tys -> ILAttribElem.TypeRef (Some ty) ]) ],
[])
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
//----------------------------------------------------------------------------
// Decode extensible typing attributes
//----------------------------------------------------------------------------
@@ -7319,7 +7319,7 @@ let isSealedTy g ty =
isArrayTy g ty ||
match metadataOfTy g ty with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata st -> st.IsSealed
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> td.IsSealed
diff --git a/src/fsharp/TastOps.fsi b/src/fsharp/TastOps.fsi
index 38220852e..04410eae1 100755
--- a/src/fsharp/TastOps.fsi
+++ b/src/fsharp/TastOps.fsi
@@ -19,7 +19,7 @@ open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.Layout
open Microsoft.FSharp.Compiler.Lib
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -993,7 +993,7 @@ val mkPrintfFormatTy : TcGlobals -> TType -> TType -> TType -> TType -> TType ->
type TypeDefMetadata =
| ILTypeMetadata of TILObjectReprData
| FSharpOrArrayOrByrefOrTupleOrExnTypeMetadata
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata of TProvidedTypeInfo
#endif
@@ -1286,7 +1286,7 @@ val TyconRefHasAttribute : TcGlobals -> range -> BuiltinAttribInfo -> TyconRef -
/// Try to find the AttributeUsage attribute, looking for the value of the AllowMultiple named parameter
val TryFindAttributeUsageAttribute : TcGlobals -> range -> TyconRef -> bool option
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// returns Some(assemblyName) for success
val TryDecodeTypeProviderAssemblyAttr : ILGlobals -> ILAttribute -> string option
#endif
diff --git a/src/fsharp/TastPickle.fs b/src/fsharp/TastPickle.fs
index 10e8897d6..18307ce15 100755
--- a/src/fsharp/TastPickle.fs
+++ b/src/fsharp/TastPickle.fs
@@ -665,7 +665,7 @@ let u_encoded_nleref = u_tup2 u_int (u_array u_int)
let u_nleref st = lookup_uniq st st.inlerefs (u_int st)
let encode_nleref ccuTab stringTab nlerefTab thisCcu (nleref: NonLocalEntityRef) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// Remap references to statically-linked Entity nodes in provider-generated entities to point to the current assembly.
// References to these nodes _do_ appear in F# assembly metadata, because they may be public.
let nleref =
@@ -1646,7 +1646,7 @@ and p_tycon_repr x st =
| TFSharpObjectRepr r -> p_byte 1 st; p_byte 3 st; p_tycon_objmodel_data r st; false
| TMeasureableRepr ty -> p_byte 1 st; p_byte 4 st; p_typ ty st; false
| TNoRepr -> p_byte 0 st; false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint info ->
if info.IsErased then
// Pickle erased type definitions as a NoRepr
diff --git a/src/fsharp/TypeChecker.fs b/src/fsharp/TypeChecker.fs
index 966a5f188..c193ce6fc 100755
--- a/src/fsharp/TypeChecker.fs
+++ b/src/fsharp/TypeChecker.fs
@@ -40,7 +40,7 @@ open Microsoft.FSharp.Compiler.NameResolution
open Microsoft.FSharp.Compiler.PrettyNaming
open Microsoft.FSharp.Compiler.InfoReader
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -449,10 +449,24 @@ let OpenModulesOrNamespaces tcSink g amap scopem root env mvvs openDeclaration =
CallOpenDeclarationSink tcSink openDeclaration
match openDeclaration.Range with
| None -> ()
- | Some range ->
- for modul in mvvs do
- let item = Item.ModuleOrNamespaces [modul]
- CallNameResolutionSink tcSink (range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Use, env.DisplayEnv, env.eAccessRights)
+ | Some _ ->
+ let rec loop (acc: (Item * range) list) (idents: Ident list) =
+ match idents with
+ | [] -> acc
+ | [id] when id.idText = MangledGlobalName -> acc
+ | id :: rest ->
+ let idents = List.rev idents
+ let range = id.idRange
+ let acc =
+ match ResolveLongIndentAsModuleOrNamespace ResultCollectionSettings.AllResults amap range OpenQualified env.NameEnv env.eAccessRights idents with
+ | Result modrefs ->
+ (acc, modrefs) ||> List.fold (fun acc (_, modref, _) ->
+ (Item.ModuleOrNamespaces [modref], range) :: acc)
+ | _ -> acc
+ loop acc rest
+
+ for item, range in loop [] (List.rev openDeclaration.LongId) do
+ CallNameResolutionSink tcSink (range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Use, env.DisplayEnv, env.eAccessRights)
env
let AddRootModuleOrNamespaceRefs g amap m env modrefs =
@@ -665,11 +679,11 @@ let LocateEnv ccu env enclosingNamespacePath =
env
let BuildRootModuleType enclosingNamespacePath (cpath:CompilationPath) mtyp =
- (enclosingNamespacePath, (cpath, (mtyp, None)))
- ||> List.foldBack (fun id (cpath, (mtyp, mspec)) ->
+ (enclosingNamespacePath, (cpath, (mtyp, [])))
+ ||> List.foldBack (fun id (cpath, (mtyp, mspecs)) ->
let a, b = wrapModuleOrNamespaceTypeInNamespace id cpath.ParentCompPath mtyp
- cpath.ParentCompPath, (a, match mspec with Some _ -> mspec | None -> Some b))
- |> snd
+ cpath.ParentCompPath, (a, b :: mspecs))
+ |> fun (_, (mtyp, mspecs)) -> mtyp, List.rev mspecs
let BuildRootModuleExpr enclosingNamespacePath (cpath:CompilationPath) mexpr =
(enclosingNamespacePath, (cpath, mexpr))
@@ -3016,7 +3030,7 @@ let BuildPossiblyConditionalMethodCall cenv env isMutable m isProp minfo valUseF
mkUnit cenv.g m, cenv.g.unit_ty
| _ ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match minfo with
| ProvidedMeth(_, mi, _, _) ->
// BuildInvokerExpressionForProvidedMethodCall converts references to F# intrinsics back to values
@@ -3080,7 +3094,7 @@ let BuildILFieldGet g amap m objExpr (finfo:ILFieldInfo) =
let valu = if isValueType then AsValue else AsObject
let tinst = finfo.TypeInst
let fieldType = finfo.FieldType (amap, m)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let ty = tyOfExpr g objExpr
match finfo with
| ProvidedField _ when (isErasedType g ty) ->
@@ -4458,16 +4472,16 @@ and TcTyparOrMeasurePar optKind cenv (env:TcEnv) newOk tpenv (Typar(id, _, _) as
let predictions1 =
env.eNameResEnv.eTypars
|> Seq.map (fun p -> "'" + p.Key)
- |> Set.ofSeq
let predictions2 =
match tpenv with
| UnscopedTyparEnv elements ->
elements
|> Seq.map (fun p -> "'" + p.Key)
- |> Set.ofSeq
- Set.union predictions1 predictions2
+ [ yield! predictions1
+ yield! predictions2 ]
+ |> HashSet
let reportedId = Ident("'" + id.idText, id.idRange)
error (UndefinedName(0, FSComp.SR.undefinedNameTypeParameter, reportedId, predictTypeParameters))
@@ -4719,7 +4733,7 @@ and TcTyparConstraints cenv newOk checkCxs occ env tpenv wcs =
let _, tpenv = List.fold (fun (ridx, tpenv) tc -> ridx - 1, TcTyparConstraint ridx cenv newOk checkCxs occ env tpenv tc) (List.length wcs - 1, tpenv) wcs
tpenv
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
and TcStaticConstantParameter cenv (env:TcEnv) tpenv kind (v:SynType) idOpt container =
let fail() = error(Error(FSComp.SR.etInvalidStaticArgument(NicePrint.minimalStringOfType env.DisplayEnv kind), v.Range))
let record ttype =
@@ -4908,7 +4922,7 @@ and TcTypeApp cenv newOk checkCxs occ env tpenv m tcref pathTypeArgs (synArgTys:
CheckTyconAccessible cenv.amap m env.eAccessRights tcref |> ignore
CheckEntityAttributes cenv.g tcref m |> CommitOperationResult
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// Provided types are (currently) always non-generic. Their names may include mangled
// static parameters, which are passed by the provider.
if tcref.Deref.IsProvided then TcProvidedTypeApp cenv env tpenv tcref synArgTys m else
@@ -6440,7 +6454,7 @@ and FreshenObjExprAbstractSlot cenv (env: TcEnv) (implty:TType) virtNameAndArity
let suggestVirtualMembers() =
virtNameAndArityPairs
|> List.map (fst >> fst)
- |> Set.ofList
+ |> HashSet
if containsNonAbstractMemberWithSameName then
errorR(ErrorWithSuggestions(FSComp.SR.tcMemberFoundIsNotAbstractOrVirtual(tcref.DisplayName, bindName), mBinding, bindName, suggestVirtualMembers))
@@ -8623,7 +8637,7 @@ and TcItemThen cenv overallTy env tpenv (item, mItem, rest, afterResolution) del
| (DelayedTypeApp(tys, mTypeArgs, mExprAndTypeArgs) :: otherDelayed) ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match TryTcMethodAppToStaticConstantArgs cenv env tpenv (minfos, Some (tys, mTypeArgs), mExprAndTypeArgs, mItem) with
| Some minfoAfterStaticArguments ->
@@ -8654,7 +8668,7 @@ and TcItemThen cenv overallTy env tpenv (item, mItem, rest, afterResolution) del
TcMethodApplicationThen cenv env overallTy None tpenv (Some tyargs) [] mExprAndTypeArgs mItem methodName ad NeverMutates false meths afterResolution NormalValUse [] ExprAtomicFlag.Atomic otherDelayed
| _ ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if not minfos.IsEmpty && minfos.[0].ProvidedStaticParameterInfo.IsSome then
error(Error(FSComp.SR.etMissingStaticArgumentsToMethod(), mItem))
#endif
@@ -8676,7 +8690,7 @@ and TcItemThen cenv overallTy env tpenv (item, mItem, rest, afterResolution) del
let objTyAfterTyArgs, tpenv = TcNestedTypeApplication cenv NewTyparsOK CheckCxs ItemOccurence.UseInType env tpenv mExprAndTypeArgs objTy tyargs
CallExprHasTypeSink cenv.tcSink (mExprAndArg, env.NameEnv, objTyAfterTyArgs, env.DisplayEnv, env.eAccessRights)
let itemAfterTyArgs, minfosAfterTyArgs =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// If the type is provided and took static arguments then the constructor will have changed
// to a provided constructor on the statically instantiated type. Re-resolve that constructor.
match objTyAfterTyArgs with
@@ -9039,7 +9053,7 @@ and TcLookupThen cenv overallTy env tpenv mObjExpr objExpr objExprTy longId dela
// To get better warnings we special case some of the few known mutate-a-struct method names
let mutates = (if methodName = "MoveNext" || methodName = "GetNextArg" then DefinitelyMutates else PossiblyMutates)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match TryTcMethodAppToStaticConstantArgs cenv env tpenv (minfos, tyargsOpt, mExprAndItem, mItem) with
| Some minfoAfterStaticArguments ->
// Replace the resolution including the static parameters, plus the extra information about the original method info
@@ -14703,7 +14717,7 @@ module EstablishTypeDefinitionCores =
tycon.entity_tycon_repr <- repr
attrs, getFinalAttrs
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get the items on the r.h.s. of a 'type X = ABC<...>' definition
let private TcTyconDefnCore_GetGenerateDeclaration_Rhs rhsType =
match rhsType with
@@ -14926,7 +14940,7 @@ module EstablishTypeDefinitionCores =
| SynTypeDefnSimpleRepr.TypeAbbrev(ParserDetail.Ok, rhsType, m) ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// Check we have not already decided that this is a generative provided type definition. If we have already done this (i.e. this is the second pass
// for a generative provided type definition, then there is no more work to do).
if (match tycon.entity_tycon_repr with TNoRepr -> true | _ -> false) then
@@ -16383,7 +16397,13 @@ let rec TcSignatureElementNonMutRec cenv parent typeNames endm (env: TcEnv) synS
// For 'namespace rec' and 'module rec' we add the thing being defined
let mtypNS = !(envNS.eModuleOrNamespaceTypeAccumulator)
- let mtypRoot, mspecNSOpt = BuildRootModuleType enclosingNamespacePath envNS.eCompPath mtypNS
+ let mtypRoot, mspecNSs = BuildRootModuleType enclosingNamespacePath envNS.eCompPath mtypNS
+ let mspecNSOpt = List.tryHead mspecNSs
+
+ mspecNSs |> List.iter (fun mspec ->
+ let modref = mkLocalModRef mspec
+ let item = Item.ModuleOrNamespaces [modref]
+ CallNameResolutionSink cenv.tcSink (mspec.Range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Binding, env.DisplayEnv, env.eAccessRights))
// For 'namespace rec' and 'module rec' we add the thing being defined
let envNS = if isRec then AddLocalRootModuleOrNamespace cenv.tcSink cenv.g cenv.amap m envNS mtypRoot else envNS
@@ -16688,7 +16708,13 @@ let rec TcModuleOrNamespaceElementNonMutRec (cenv:cenv) parent typeNames scopem
let envNS = ImplicitlyOpenOwnNamespace cenv.tcSink cenv.g cenv.amap m enclosingNamespacePath envNS
let mtypNS = !(envNS.eModuleOrNamespaceTypeAccumulator)
- let mtypRoot, mspecNSOpt = BuildRootModuleType enclosingNamespacePath envNS.eCompPath mtypNS
+ let mtypRoot, mspecNSs = BuildRootModuleType enclosingNamespacePath envNS.eCompPath mtypNS
+ let mspecNSOpt = List.tryHead mspecNSs
+
+ mspecNSs |> List.iter (fun mspec ->
+ let modref = mkLocalModRef mspec
+ let item = Item.ModuleOrNamespaces [modref]
+ CallNameResolutionSink cenv.tcSink (mspec.Range, env.NameEnv, item, item, emptyTyparInst, ItemOccurence.Binding, env.DisplayEnv, env.eAccessRights))
// For 'namespace rec' and 'module rec' we add the thing being defined
let envNS = if isRec then AddLocalRootModuleOrNamespace cenv.tcSink cenv.g cenv.amap m envNS mtypRoot else envNS
diff --git a/src/fsharp/fsc.fs b/src/fsharp/fsc.fs
index b880d24df..e18f782dc 100644
--- a/src/fsharp/fsc.fs
+++ b/src/fsharp/fsc.fs
@@ -13,6 +13,7 @@
module internal Microsoft.FSharp.Compiler.Driver
open System
+open System.Collections.Concurrent
open System.Collections.Generic
open System.Diagnostics
open System.Globalization
@@ -53,7 +54,7 @@ open Microsoft.FSharp.Compiler.Tast
open Microsoft.FSharp.Compiler.Tastops
open Microsoft.FSharp.Compiler.TcGlobals
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -1103,7 +1104,7 @@ module StaticLinker =
// Don't save interface, optimization or resource definitions for provider-generated assemblies.
// These are "fake".
let isProvided (ccu: CcuThunk option) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match ccu with
| Some c -> c.IsProviderGenerated
| None -> false
@@ -1333,7 +1334,7 @@ module StaticLinker =
// prior to this point.
let StaticLink (ctok, tcConfig:TcConfig, tcImports:TcImports, ilGlobals:ILGlobals) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let providerGeneratedAssemblies =
[ // Add all EST-generated assemblies into the static linking set
@@ -1347,7 +1348,7 @@ module StaticLinker =
(fun ilxMainModule -> LegacyFindAndAddMscorlibTypesForStaticLinkingIntoFSharpCoreLibraryForNet20 (tcConfig, ilGlobals, ilxMainModule))
elif not tcConfig.standalone && tcConfig.extraStaticLinkRoots.IsEmpty
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
&& providerGeneratedAssemblies.IsEmpty
#endif
then
@@ -1360,7 +1361,7 @@ module StaticLinker =
ReportTime tcConfig "Static link"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
Morphs.enableMorphCustomAttributeData()
let providerGeneratedILModules = FindProviderGeneratedILModules (ctok, tcImports, providerGeneratedAssemblies)
@@ -1758,7 +1759,7 @@ let main0(ctok, argv, legacyReferenceResolver, bannerAlreadyPrinted, openBinarie
let inputs =
// Deduplicate module names
- let moduleNamesDict = Dictionary>()
+ let moduleNamesDict = ConcurrentDictionary>()
inputs
|> List.map (fun (input,x) -> DeduplicateParsedInputModuleName moduleNamesDict input,x)
diff --git a/src/fsharp/fsi/Fsi.fsproj b/src/fsharp/fsi/Fsi.fsproj
index 34cb44b67..3d6fae1ad 100644
--- a/src/fsharp/fsi/Fsi.fsproj
+++ b/src/fsharp/fsi/Fsi.fsproj
@@ -18,7 +18,6 @@
$(NoWarn);62fsi0x0A000000
- EXTENSIONTYPING;$(DefineConstants)COMPILER;$(DefineConstants)FSI_SHADOW_COPY_REFERENCES;$(DefineConstants)FSI_SERVER;$(DefineConstants)
diff --git a/src/fsharp/fsi/fsi.fs b/src/fsharp/fsi/fsi.fs
index c5e3d5450..3a178a5c1 100644
--- a/src/fsharp/fsi/fsi.fs
+++ b/src/fsharp/fsi/fsi.fs
@@ -1671,7 +1671,7 @@ module internal MagicAssemblyResolution =
| Some (OkResult (warns,[r])) -> OkResult (warns, Choice1Of2 r.resolvedPath)
| _ ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tcImports.TryFindProviderGeneratedAssemblyByName(ctok, simpleAssemName) with
| Some(assembly) -> OkResult([],Choice2Of2 assembly)
| None ->
@@ -2464,8 +2464,6 @@ type FsiEvaluationSession (fsi: FsiEvaluationSessionHostConfig, argv:string[], i
do tcConfigB.useFsiAuxLib <- fsi.UseFsiAuxLib
#if FSI_TODO_NETCORE
- // "CompilationAndEvaluation" assembly resolution for F# Interactive is not yet properly figured out on .NET Core
- do tcConfigB.resolutionEnvironment <- ResolutionEnvironment.EditingOrCompilation false
do tcConfigB.useSimpleResolution <- true
do SetTargetProfile tcConfigB "netcore" // always assume System.Runtime codegen
#endif
@@ -2564,7 +2562,7 @@ type FsiEvaluationSession (fsi: FsiEvaluationSessionHostConfig, argv:string[], i
// Explanation: This callback is invoked during compilation to resolve assembly references
// We don't yet propagate the ctok through these calls (though it looks plausible to do so).
let ctok = AssumeCompilationThreadWithoutEvidence ()
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match tcImports.TryFindProviderGeneratedAssemblyByName (ctok, aref.Name) with
| Some assembly -> Some (Choice2Of2 assembly)
| None ->
diff --git a/src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj b/src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj
index 660ae00bc..ec768169e 100644
--- a/src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj
+++ b/src/fsharp/fsiAnyCpu/FsiAnyCPU.fsproj
@@ -13,7 +13,6 @@
$(NoWarn);62fsiAnyCpu0x0A000000
- EXTENSIONTYPING;$(DefineConstants)COMPILER;$(DefineConstants)FSI_SHADOW_COPY_REFERENCES;$(DefineConstants)FSI_SERVER;$(DefineConstants)
diff --git a/src/fsharp/import.fs b/src/fsharp/import.fs
index f444cca7e..9d8986490 100644
--- a/src/fsharp/import.fs
+++ b/src/fsharp/import.fs
@@ -17,7 +17,7 @@ open Microsoft.FSharp.Compiler.AbstractIL.IL
open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.Ast
open Microsoft.FSharp.Compiler.ErrorLogger
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -27,7 +27,7 @@ type AssemblyLoader =
/// Resolve an Abstract IL assembly reference to a Ccu
abstract FindCcuFromAssemblyRef : CompilationThreadToken * range * ILAssemblyRef -> CcuResolutionResult
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get a flag indicating if an assembly is a provided assembly, plus the
/// table of information recording remappings from type names in the provided assembly to type
@@ -100,7 +100,7 @@ let ImportTypeRefData (env:ImportMap) m (scoref,path,typeName) =
fakeTyconRef.Deref
with _ ->
error (Error(FSComp.SR.impReferencedTypeCouldNotBeFoundInAssembly(String.concat "." (Array.append path [| typeName |]), ccu.AssemblyName),m))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
// Validate (once because of caching)
match tycon.TypeReprInfo with
| TProvidedTypeExtensionPoint info ->
@@ -195,7 +195,7 @@ let rec CanImportILType (env:ImportMap) m typ =
| ILType.Modified(_,_,ty) -> CanImportILType env m ty
| ILType.TypeVar _u16 -> true
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Import a provided type reference as an F# type TyconRef
let ImportProvidedNamedType (env:ImportMap) (m:range) (st:Tainted) =
@@ -566,7 +566,7 @@ let ImportILAssembly(amap:(unit -> ImportMap),m,auxModuleLoader,sref,sourceDir,f
let ccuData : CcuData =
{ IsFSharp=false
UsesFSharp20PlusQuotations=false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
InvalidateEvent=invalidateCcu
IsProviderGenerated = false
ImportProvidedType = (fun ty -> ImportProvidedType (amap()) m ty)
diff --git a/src/fsharp/import.fsi b/src/fsharp/import.fsi
index d13328d33..02415e922 100644
--- a/src/fsharp/import.fsi
+++ b/src/fsharp/import.fsi
@@ -8,7 +8,7 @@ open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.Range
open Microsoft.FSharp.Compiler.AbstractIL.IL
open Microsoft.FSharp.Compiler.AbstractIL.Internal.Library
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
#endif
@@ -21,7 +21,7 @@ type AssemblyLoader =
/// Resolve an Abstract IL assembly reference to a Ccu
abstract FindCcuFromAssemblyRef : CompilationThreadToken * range * ILAssemblyRef -> CcuResolutionResult
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get a flag indicating if an assembly is a provided assembly, plus the
/// table of information recording remappings from type names in the provided assembly to type
/// names in the statically linked, embedded assembly.
@@ -60,7 +60,7 @@ val internal ImportILType : ImportMap -> range -> TType list -> ILType -> TType
/// Pre-check for ability to import an IL type as an F# type.
val internal CanImportILType : ImportMap -> range -> ILType -> bool
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Import a provided type as an F# type.
val internal ImportProvidedType : ImportMap -> range -> (* TType list -> *) Tainted -> TType
diff --git a/src/fsharp/infos.fs b/src/fsharp/infos.fs
index 96d8ec9ab..5ac157c8d 100755
--- a/src/fsharp/infos.fs
+++ b/src/fsharp/infos.fs
@@ -23,7 +23,7 @@ open Microsoft.FSharp.Compiler.TcGlobals
open Microsoft.FSharp.Compiler.Lib
open Microsoft.FSharp.Core.Printf
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
open Microsoft.FSharp.Core.CompilerServices
#endif
@@ -55,14 +55,14 @@ let isExnDeclTy g typ =
/// Get the base type of a type, taking into account type instantiations. Return None if the
/// type has no base type.
let GetSuperTypeOfType g amap m typ =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let typ = (if isAppTy g typ && (tcrefOfAppTy g typ).IsProvided then stripTyEqns g typ else stripTyEqnsAndMeasureEqns g typ)
#else
let typ = stripTyEqnsAndMeasureEqns g typ
#endif
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
let st = info.ProvidedType
let superOpt = st.PApplyOption((fun st -> match st.BaseType with null -> None | t -> Some t),m)
@@ -125,7 +125,7 @@ let rec GetImmediateInterfacesOfType skipUnref g amap m typ =
yield mkAppTy g.system_GenericIEquatable_tcref [typ]]
else
match metadataOfTy g typ with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info ->
[ for ity in info.ProvidedType.PApplyArray((fun st -> st.GetInterfaces()), "GetInterfaces", m) do
yield Import.ImportProvidedType amap m ity ]
@@ -398,7 +398,7 @@ type ValRef with
// as backing data for MethInfo, PropInfo etc.
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get the return type of a provided method, where 'void' is returned as 'None'
let GetCompiledReturnTyOfProvidedMethodInfo amap m (mi:Tainted) =
let returnType =
@@ -583,7 +583,7 @@ type ParamData =
//-------------------------------------------------------------------------
// Helper methods associated with type providers
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
type ILFieldInit with
/// Compute the ILFieldInit for the given provided constant value for a provided enum type.
@@ -862,7 +862,7 @@ type MethInfo =
/// Describes a use of a pseudo-method corresponding to the default constructor for a .NET struct type
| DefaultStructCtor of TcGlobals * TType
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Describes a use of a method backed by provided metadata
| ProvidedMeth of Import.ImportMap * Tainted * ExtensionMethodPriority option * range
#endif
@@ -876,7 +876,7 @@ type MethInfo =
| ILMeth(_g,ilminfo,_) -> ilminfo.ApparentEnclosingType
| FSMeth(_g,typ,_,_) -> typ
| DefaultStructCtor(_g,typ) -> typ
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,m) ->
Import.ImportProvidedType amap m (mi.PApply((fun mi -> mi.DeclaringType),m))
#endif
@@ -895,7 +895,7 @@ type MethInfo =
match x with
| ILMeth _ -> None
| FSMeth _ -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth (_, mb, _, m) ->
let staticParams = mb.PApplyWithProvider((fun (mb,provider) -> mb.GetStaticParametersForMethod(provider)), range=m)
let staticParams = staticParams.PApplyArray(id, "GetStaticParametersForMethod", m)
@@ -911,7 +911,7 @@ type MethInfo =
match x with
| ILMeth(_,_,pri) -> pri
| FSMeth(_,_,_,pri) -> pri
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,_,pri,_) -> pri
#endif
| DefaultStructCtor _ -> None
@@ -927,7 +927,7 @@ type MethInfo =
match x with
| ILMeth(_,y,_) -> "ILMeth: " + y.ILName
| FSMeth(_,_,vref,_) -> "FSMeth: " + vref.LogicalName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> "ProvidedMeth: " + mi.PUntaint((fun mi -> mi.Name),m)
#endif
| DefaultStructCtor _ -> ".ctor"
@@ -938,7 +938,7 @@ type MethInfo =
match x with
| ILMeth(_,y,_) -> y.ILName
| FSMeth(_,_,vref,_) -> vref.LogicalName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.Name),m)
#endif
| DefaultStructCtor _ -> ".ctor"
@@ -953,7 +953,7 @@ type MethInfo =
member x.HasDirectXmlComment =
match x with
| FSMeth(g,_,vref,_) -> valRefInThisAssembly g.compilingFslib vref
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> true
#endif
| _ -> false
@@ -972,7 +972,7 @@ type MethInfo =
| ILMeth(g,_,_) -> g
| FSMeth(g,_,_,_) -> g
| DefaultStructCtor (g,_) -> g
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,_,_,_) -> amap.g
#endif
@@ -986,7 +986,7 @@ type MethInfo =
let _,memberMethodTypars,_,_ = AnalyzeTypeOfMemberVal x.IsCSharpStyleExtensionMember g (typ,vref)
memberMethodTypars
| DefaultStructCtor _ -> []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> [] // There will already have been an error if there are generic parameters here.
#endif
@@ -1001,7 +1001,7 @@ type MethInfo =
| ILMeth(_,_,_) -> XmlDoc.Empty
| FSMeth(_,_,vref,_) -> vref.XmlDoc
| DefaultStructCtor _ -> XmlDoc.Empty
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m)->
XmlDoc (mi.PUntaint((fun mix -> (mix :> IProvidedCustomAttributeProvider).GetXmlDocAttributes(mi.TypeProvider.PUntaintNoFailure(id))),m))
#endif
@@ -1020,7 +1020,7 @@ type MethInfo =
| ILMeth(_,ilminfo,_) -> [ilminfo.NumParams]
| FSMeth(g,_,vref,_) -> GetArgInfosOfMember x.IsCSharpStyleExtensionMember g vref |> List.map List.length
| DefaultStructCtor _ -> [0]
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> [mi.PUntaint((fun mi -> mi.GetParameters().Length),m)] // Why is this a list? Answer: because the method might be curried
#endif
@@ -1032,7 +1032,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsInstance
| FSMeth(_,_,vref,_) -> vref.IsInstanceMember || x.IsCSharpStyleExtensionMember
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> not mi.IsConstructor && not mi.IsStatic),m)
#endif
@@ -1046,7 +1046,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsProtectedAccessibility
| FSMeth _ -> false
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsFamily), m)
#endif
@@ -1055,7 +1055,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsVirtual
| FSMeth(_,_,vref,_) -> vref.IsVirtualMember
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsVirtual), m)
#endif
@@ -1064,7 +1064,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsConstructor
| FSMeth(_g,_,vref,_) -> (vref.MemberInfo.Value.MemberFlags.MemberKind = MemberKind.Constructor)
| DefaultStructCtor _ -> true
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsConstructor), m)
#endif
@@ -1076,7 +1076,7 @@ type MethInfo =
| VSome x -> x.IsClassConstructor
| _ -> false
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsConstructor && mi.IsStatic), m) // Note: these are never public anyway
#endif
@@ -1087,7 +1087,7 @@ type MethInfo =
isInterfaceTy g x.EnclosingType ||
vref.MemberInfo.Value.MemberFlags.IsDispatchSlot
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> x.IsVirtual // Note: follow same implementation as ILMeth
#endif
@@ -1098,7 +1098,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsFinal
| FSMeth(_g,_,_vref,_) -> false
| DefaultStructCtor _ -> true
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsFinal), m)
#endif
@@ -1113,7 +1113,7 @@ type MethInfo =
| ILMeth(_,ilmeth,_) -> ilmeth.IsAbstract
| FSMeth(g,_,vref,_) -> isInterfaceTy g minfo.EnclosingType || vref.IsDispatchSlotMember
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsAbstract), m)
#endif
@@ -1123,7 +1123,7 @@ type MethInfo =
(match x with
| ILMeth(_,x,_) -> x.IsNewSlot
| FSMeth(_,_,vref,_) -> vref.IsDispatchSlotMember
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,m) -> mi.PUntaint((fun mi -> mi.IsHideBySig), m) // REVIEW: Check this is correct
#endif
| DefaultStructCtor _ -> false))
@@ -1134,7 +1134,7 @@ type MethInfo =
| ILMeth _ -> false
| FSMeth(g,_,vref,_) -> vref.IsFSharpExplicitInterfaceImplementation g
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> false
#endif
@@ -1144,7 +1144,7 @@ type MethInfo =
| ILMeth _ -> false
| FSMeth(_,_,vref,_) -> vref.IsDefiniteFSharpOverrideMember
| DefaultStructCtor _ -> false
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> false
#endif
@@ -1183,7 +1183,7 @@ type MethInfo =
member x.IsFSharpEventPropertyMethod =
match x with
| FSMeth(g,_,vref,_) -> vref.IsFSharpEventProperty(g)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> false
#endif
| _ -> false
@@ -1216,7 +1216,7 @@ type MethInfo =
| ILMeth(_,x1,_), ILMeth(_,x2,_) -> (x1.RawMetadata === x2.RawMetadata)
| FSMeth(g,_,vref1,_), FSMeth(_,_,vref2,_) -> valRefEq g vref1 vref2
| DefaultStructCtor(g,ty1), DefaultStructCtor(_,ty2) -> tyconRefEq g (tcrefOfAppTy g ty1) (tcrefOfAppTy g ty2)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi1,_,_),ProvidedMeth(_,mi2,_,_) -> ProvidedMethodBase.TaintedEquals (mi1, mi2)
#endif
| _ -> false
@@ -1229,7 +1229,7 @@ type MethInfo =
| FSMeth(_,_,vref,_) -> hash vref.LogicalName
| DefaultStructCtor(_,_ty) -> 34892 // "ty" doesn't support hashing. We could use "hash (tcrefOfAppTy g ty).CompiledName" or
// something but we don't have a "g" parameter here yet. But this hash need only be very approximate anyway
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_,mi,_,_) -> ProvidedMethodInfo.TaintedGetHashCode(mi)
#endif
@@ -1242,7 +1242,7 @@ type MethInfo =
| ILMethInfo(_,typ,Some declaringTyconRef,md,_) -> MethInfo.CreateILExtensionMeth(amap, m, instType inst typ, declaringTyconRef, pri, md)
| FSMeth(g,typ,vref,pri) -> FSMeth(g,instType inst typ,vref,pri)
| DefaultStructCtor(g,typ) -> DefaultStructCtor(g,instType inst typ)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ ->
match inst with
| [] -> x
@@ -1259,7 +1259,7 @@ type MethInfo =
let _,_,retTy,_ = AnalyzeTypeOfMemberVal x.IsCSharpStyleExtensionMember g (typ,vref)
retTy |> Option.map (instType inst)
| DefaultStructCtor _ -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,m) ->
GetCompiledReturnTyOfProvidedMethodInfo amap m mi
#endif
@@ -1279,7 +1279,7 @@ type MethInfo =
let inst = GetInstantiationForMemberVal g x.IsCSharpStyleExtensionMember (typ,vref,minst)
paramTypes |> List.mapSquared (fun (ParamNameAndType(_,ty)) -> instType inst ty)
| DefaultStructCtor _ -> []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,m) ->
// A single group of tupled arguments
[ [ for p in mi.PApplyArray((fun mi -> mi.GetParameters()), "GetParameters",m) do
@@ -1302,7 +1302,7 @@ type MethInfo =
[ typ ]
else []
| DefaultStructCtor _ -> []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,m) ->
if x.IsInstance then [ Import.ImportProvidedType amap m (mi.PApply((fun mi -> mi.DeclaringType),m)) ] // find the type of the 'this' argument
else []
@@ -1405,7 +1405,7 @@ type MethInfo =
| DefaultStructCtor _ ->
[[]]
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,_) ->
// A single group of tupled arguments
[ [for p in mi.PApplyArray((fun mi -> mi.GetParameters()), "GetParameters", m) do
@@ -1468,7 +1468,7 @@ type MethInfo =
let paramType = ImportILTypeFromMetadata amap m ftinfo.ILScopeRef ftinfo.TypeInst formalMethTyparTys p.Type
yield TSlotParam(p.Name, paramType, p.IsIn, p.IsOut, p.IsOptional, []) ] ]
formalRetTy, formalParams
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth (_,mi,_,_) ->
// GENERIC TYPE PROVIDERS: for generics, formal types should be generated here, not the actual types
// For non-generic type providers there is no difference
@@ -1498,7 +1498,7 @@ type MethInfo =
items |> ParamNameAndType.InstantiateCurried inst
| DefaultStructCtor _ ->
[[]]
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(amap,mi,_,_) ->
// A single set of tupled parameters
[ [for p in mi.PApplyArray((fun mi -> mi.GetParameters()), "GetParameters", m) do
@@ -1538,7 +1538,7 @@ type MethInfo =
memberParentTypars
| DefaultStructCtor(g,typ) ->
(tcrefOfAppTy g typ).Typars(m)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth (amap,_,_,_) ->
(tcrefOfAppTy amap.g x.EnclosingType).Typars(m)
#endif
@@ -1552,7 +1552,7 @@ type MethInfo =
type ILFieldInfo =
/// Represents a single use of a field backed by Abstract IL metadata
| ILFieldInfo of ILTypeInfo * ILFieldDef // .NET IL fields
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Represents a single use of a field backed by provided metadata
| ProvidedField of Import.ImportMap * Tainted * range
#endif
@@ -1561,7 +1561,7 @@ type ILFieldInfo =
member x.EnclosingType =
match x with
| ILFieldInfo(tinfo,_) -> tinfo.ToType
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(amap,fi,m) -> (Import.ImportProvidedType amap m (fi.PApply((fun fi -> fi.DeclaringType),m)))
#endif
@@ -1569,7 +1569,7 @@ type ILFieldInfo =
member x.ILTypeRef =
match x with
| ILFieldInfo(tinfo,_) -> tinfo.ILTypeRef
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(amap,fi,m) -> (Import.ImportProvidedTypeAsILType amap m (fi.PApply((fun fi -> fi.DeclaringType),m))).TypeRef
#endif
@@ -1580,7 +1580,7 @@ type ILFieldInfo =
member x.TypeInst =
match x with
| ILFieldInfo(tinfo,_) -> tinfo.TypeInst
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField _ -> [] /// GENERIC TYPE PROVIDERS
#endif
@@ -1588,7 +1588,7 @@ type ILFieldInfo =
member x.FieldName =
match x with
| ILFieldInfo(_,pd) -> pd.Name
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi,m) -> fi.PUntaint((fun fi -> fi.Name),m)
#endif
@@ -1596,7 +1596,7 @@ type ILFieldInfo =
member x.IsInitOnly =
match x with
| ILFieldInfo(_,pd) -> pd.IsInitOnly
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi,m) -> fi.PUntaint((fun fi -> fi.IsInitOnly),m)
#endif
@@ -1604,7 +1604,7 @@ type ILFieldInfo =
member x.IsValueType =
match x with
| ILFieldInfo(tinfo,_) -> tinfo.IsValueType
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(amap,_,_) -> isStructTy amap.g x.EnclosingType
#endif
@@ -1612,7 +1612,7 @@ type ILFieldInfo =
member x.IsStatic =
match x with
| ILFieldInfo(_,pd) -> pd.IsStatic
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi,m) -> fi.PUntaint((fun fi -> fi.IsStatic),m)
#endif
@@ -1620,7 +1620,7 @@ type ILFieldInfo =
member x.IsSpecialName =
match x with
| ILFieldInfo(_,pd) -> pd.IsSpecialName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi,m) -> fi.PUntaint((fun fi -> fi.IsSpecialName),m)
#endif
@@ -1628,7 +1628,7 @@ type ILFieldInfo =
member x.LiteralValue =
match x with
| ILFieldInfo(_,pd) -> if pd.IsLiteral then pd.LiteralValue else None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi,m) ->
if fi.PUntaint((fun fi -> fi.IsLiteral),m) then
Some (ILFieldInit.FromProvidedObj m (fi.PUntaint((fun fi -> fi.GetRawConstantValue()),m)))
@@ -1640,7 +1640,7 @@ type ILFieldInfo =
member x.ILFieldType =
match x with
| ILFieldInfo (_,fdef) -> fdef.Type
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(amap,fi,m) -> Import.ImportProvidedTypeAsILType amap m (fi.PApply((fun fi -> fi.FieldType),m))
#endif
@@ -1648,14 +1648,14 @@ type ILFieldInfo =
member x.FieldType(amap,m) =
match x with
| ILFieldInfo (tinfo,fdef) -> ImportILTypeFromMetadata amap m tinfo.ILScopeRef tinfo.TypeInst [] fdef.Type
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(amap,fi,m) -> Import.ImportProvidedType amap m (fi.PApply((fun fi -> fi.FieldType),m))
#endif
static member ILFieldInfosUseIdenticalDefinitions x1 x2 =
match x1,x2 with
| ILFieldInfo(_, x1), ILFieldInfo(_, x2) -> (x1 === x2)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField(_,fi1,_), ProvidedField(_,fi2,_)-> ProvidedFieldInfo.TaintedEquals (fi1, fi2)
| _ -> false
#endif
@@ -1807,7 +1807,7 @@ type PropInfo =
| FSProp of TcGlobals * TType * ValRef option * ValRef option
/// An F# use of a property backed by Abstract IL metadata
| ILProp of TcGlobals * ILPropInfo
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// An F# use of a property backed by provided metadata
| ProvidedProp of Import.ImportMap * Tainted * range
#endif
@@ -1825,7 +1825,7 @@ type PropInfo =
match x with
| FSProp(g,_,Some vref,_)
| FSProp(g,_,_,Some vref) -> valRefInThisAssembly g.compilingFslib vref
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp _ -> true
#endif
| _ -> false
@@ -1836,7 +1836,7 @@ type PropInfo =
| ILProp(_,x) -> x.PropertyName
| FSProp(_,_,Some vref,_)
| FSProp(_,_,_, Some vref) -> vref.PropertyName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) -> pi.PUntaint((fun pi -> pi.Name),m)
#endif
| FSProp _ -> failwith "unreachable"
@@ -1846,7 +1846,7 @@ type PropInfo =
match x with
| ILProp(_,x) -> x.HasGetter
| FSProp(_,_,x,_) -> Option.isSome x
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) -> pi.PUntaint((fun pi -> pi.CanRead),m)
#endif
@@ -1855,7 +1855,7 @@ type PropInfo =
match x with
| ILProp(_,x) -> x.HasSetter
| FSProp(_,_,_,x) -> Option.isSome x
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) -> pi.PUntaint((fun pi -> pi.CanWrite),m)
#endif
@@ -1866,7 +1866,7 @@ type PropInfo =
match x with
| ILProp(_,x) -> x.ILTypeInfo.ToType
| FSProp(_,typ,_,_) -> typ
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(amap,pi,m) ->
Import.ImportProvidedType amap m (pi.PApply((fun pi -> pi.DeclaringType),m))
#endif
@@ -1883,7 +1883,7 @@ type PropInfo =
| FSProp(_,_,Some vref,_)
| FSProp(_,_,_, Some vref) -> vref.IsVirtualMember
| FSProp _-> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
let mi = ArbitraryMethodInfoOfPropertyInfo pi m
mi.PUntaint((fun mi -> mi.IsVirtual), m)
@@ -1896,7 +1896,7 @@ type PropInfo =
| FSProp(_,_,Some vref,_)
| FSProp(_,_,_, Some vref) -> vref.IsDispatchSlotMember
| FSProp(_,_,None,None) -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
let mi = ArbitraryMethodInfoOfPropertyInfo pi m
mi.PUntaint((fun mi -> mi.IsHideBySig), m)
@@ -1912,7 +1912,7 @@ type PropInfo =
| FSProp(g,typ,_, Some vref) ->
isInterfaceTy g typ || (vref.MemberInfo.Value.MemberFlags.IsDispatchSlot)
| FSProp _ -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
let mi = ArbitraryMethodInfoOfPropertyInfo pi m
mi.PUntaint((fun mi -> mi.IsVirtual), m)
@@ -1925,7 +1925,7 @@ type PropInfo =
| FSProp(_,_,Some vref,_)
| FSProp(_,_,_, Some vref) -> not vref.IsInstanceMember
| FSProp(_,_,None,None) -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
(ArbitraryMethodInfoOfPropertyInfo pi m).PUntaint((fun mi -> mi.IsStatic), m)
#endif
@@ -1961,7 +1961,7 @@ type PropInfo =
arginfos.Length = 1 && arginfos.Head.Length >= 2
| FSProp(_,_,None,None) ->
failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
pi.PUntaint((fun pi -> pi.GetIndexParameters().Length), m)>0
#endif
@@ -1970,7 +1970,7 @@ type PropInfo =
member x.IsFSharpEventProperty =
match x with
| FSProp(g,_,Some vref,None) -> vref.IsFSharpEventProperty(g)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp _ -> false
#endif
| _ -> false
@@ -1998,7 +1998,7 @@ type PropInfo =
| FSProp(_,_,Some vref,_)
| FSProp(_,_,_, Some vref) -> vref.XmlDoc
| FSProp(_,_,None,None) -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
XmlDoc (pi.PUntaint((fun pix -> (pix :> IProvidedCustomAttributeProvider).GetXmlDocAttributes(pi.TypeProvider.PUntaintNoFailure(id))), m))
#endif
@@ -2008,7 +2008,7 @@ type PropInfo =
match x with
| ILProp(g,_) -> g
| FSProp(g,_,_,_) -> g
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(amap,_,_) -> amap.g
#endif
@@ -2028,7 +2028,7 @@ type PropInfo =
ReturnTypeOfPropertyVal g vref.Deref |> instType inst
| FSProp _ -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,m) ->
Import.ImportProvidedType amap m (pi.PApply((fun pi -> pi.PropertyType),m))
#endif
@@ -2045,7 +2045,7 @@ type PropInfo =
let inst = GetInstantiationForPropertyVal g (typ,vref)
ArgInfosOfPropertyVal g vref.Deref |> List.map (ParamNameAndType.FromArgInfo >> ParamNameAndType.Instantiate inst)
| FSProp _ -> failwith "unreachable"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp (_,pi,m) ->
[ for p in pi.PApplyArray((fun pi -> pi.GetIndexParameters()), "GetIndexParameters", m) do
let paramName = p.PUntaint((fun p -> match p.Name with null -> None | s -> Some (mkSynId m s)), m)
@@ -2067,7 +2067,7 @@ type PropInfo =
match x with
| ILProp(g,x) -> ILMeth(g,x.GetterMethod(g),None)
| FSProp(g,typ,Some vref,_) -> FSMeth(g,typ,vref,None)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(amap,pi,m) ->
let meth = GetAndSanityCheckProviderMethod m pi (fun pi -> pi.GetGetMethod()) FSComp.SR.etPropertyCanReadButHasNoGetter
ProvidedMeth(amap, meth, None, m)
@@ -2080,7 +2080,7 @@ type PropInfo =
match x with
| ILProp(g,x) -> ILMeth(g,x.SetterMethod(g),None)
| FSProp(g,typ,_,Some vref) -> FSMeth(g,typ,vref,None)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(amap,pi,m) ->
let meth = GetAndSanityCheckProviderMethod m pi (fun pi -> pi.GetSetMethod()) FSComp.SR.etPropertyCanWriteButHasNoSetter
ProvidedMeth(amap, meth, None, m)
@@ -2099,7 +2099,7 @@ type PropInfo =
| ILProp(_, x1), ILProp(_, x2) -> (x1.RawMetadata === x2.RawMetadata)
| FSProp(g, _, vrefa1, vrefb1), FSProp(_, _, vrefa2, vrefb2) ->
(optVrefEq g (vrefa1, vrefa2)) && (optVrefEq g (vrefb1, vrefb2))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi1,_), ProvidedProp(_,pi2,_) -> ProvidedPropertyInfo.TaintedEquals (pi1, pi2)
#endif
| _ -> false
@@ -2112,7 +2112,7 @@ type PropInfo =
// Hash on option*option
let vth = (vrefOpt1 |> Option.map (fun vr -> vr.LogicalName), (vrefOpt2 |> Option.map (fun vr -> vr.LogicalName)))
hash vth
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_,pi,_) -> ProvidedPropertyInfo.TaintedGetHashCode(pi)
#endif
@@ -2191,7 +2191,7 @@ type EventInfo =
| FSEvent of TcGlobals * PropInfo * ValRef * ValRef
/// An F# use of an event backed by .NET metadata
| ILEvent of TcGlobals * ILEventInfo
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// An F# use of an event backed by provided metadata
| ProvidedEvent of Import.ImportMap * Tainted * range
#endif
@@ -2203,7 +2203,7 @@ type EventInfo =
match x with
| ILEvent(_,e) -> e.ILTypeInfo.ToType
| FSEvent (_,p,_,_) -> p.EnclosingType
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (amap,ei,m) -> Import.ImportProvidedType amap m (ei.PApply((fun ei -> ei.DeclaringType),m))
#endif
@@ -2211,7 +2211,7 @@ type EventInfo =
member x.HasDirectXmlComment =
match x with
| FSEvent (_,p,_,_) -> p.HasDirectXmlComment
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent _ -> true
#endif
| _ -> false
@@ -2221,7 +2221,7 @@ type EventInfo =
match x with
| ILEvent _ -> XmlDoc.Empty
| FSEvent (_,p,_,_) -> p.XmlDoc
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei,m) ->
XmlDoc (ei.PUntaint((fun eix -> (eix :> IProvidedCustomAttributeProvider).GetXmlDocAttributes(ei.TypeProvider.PUntaintNoFailure(id))), m))
#endif
@@ -2231,7 +2231,7 @@ type EventInfo =
match x with
| ILEvent(_,e) -> e.Name
| FSEvent (_,p,_,_) -> p.PropertyName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei,m) -> ei.PUntaint((fun ei -> ei.Name), m)
#endif
@@ -2240,7 +2240,7 @@ type EventInfo =
match x with
| ILEvent(g,e) -> e.IsStatic(g)
| FSEvent (_,p,_,_) -> p.IsStatic
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei,m) ->
let meth = GetAndSanityCheckProviderMethod m ei (fun ei -> ei.GetAddMethod()) FSComp.SR.etEventNoAdd
meth.PUntaint((fun mi -> mi.IsStatic), m)
@@ -2251,7 +2251,7 @@ type EventInfo =
match x with
| ILEvent(g,_) -> g
| FSEvent(g,_,_,_) -> g
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (amap,_,_) -> amap.g
#endif
@@ -2265,7 +2265,7 @@ type EventInfo =
match x with
| ILEvent(g,e) -> ILMeth(g,e.AddMethod(g),None)
| FSEvent(g,p,addValRef,_) -> FSMeth(g,p.EnclosingType,addValRef,None)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (amap,ei,m) ->
let meth = GetAndSanityCheckProviderMethod m ei (fun ei -> ei.GetAddMethod()) FSComp.SR.etEventNoAdd
ProvidedMeth(amap, meth, None, m)
@@ -2276,7 +2276,7 @@ type EventInfo =
match x with
| ILEvent(g,e) -> ILMeth(g,e.RemoveMethod(g),None)
| FSEvent(g,p,_,removeValRef) -> FSMeth(g,p.EnclosingType,removeValRef,None)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (amap,ei,m) ->
let meth = GetAndSanityCheckProviderMethod m ei (fun ei -> ei.GetRemoveMethod()) FSComp.SR.etEventNoRemove
ProvidedMeth(amap, meth, None, m)
@@ -2299,7 +2299,7 @@ type EventInfo =
| FSEvent(g,p,_,_) ->
FindDelegateTypeOfPropertyEvent g amap x.EventName m (p.GetPropertyType(amap,m))
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei,_) ->
Import.ImportProvidedType amap m (ei.PApply((fun ei -> ei.EventHandlerType), m))
#endif
@@ -2311,7 +2311,7 @@ type EventInfo =
| FSEvent(g, pi1, vrefa1, vrefb1), FSEvent(_, pi2, vrefa2, vrefb2) ->
PropInfo.PropInfosUseIdenticalDefinitions pi1 pi2 && valRefEq g vrefa1 vrefa2 && valRefEq g vrefb1 vrefb2
| ILEvent(_, x1), ILEvent(_, x2) -> (x1.RawMetadata === x2.RawMetadata)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei1,_), ProvidedEvent (_,ei2,_) -> ProvidedEventInfo.TaintedEquals (ei1, ei2)
#endif
| _ -> false
@@ -2321,7 +2321,7 @@ type EventInfo =
match ei with
| ILEvent(_, x1) -> hash x1.RawMetadata.Name
| FSEvent(_, pi, vref1, vref2) -> hash ( pi.ComputeHashCode(), vref1.LogicalName, vref2.LogicalName)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_,ei,_) -> ProvidedEventInfo.TaintedGetHashCode(ei)
#endif
diff --git a/src/fsharp/symbols/SymbolHelpers.fs b/src/fsharp/symbols/SymbolHelpers.fs
index ffb3f013b..e95870cb9 100644
--- a/src/fsharp/symbols/SymbolHelpers.fs
+++ b/src/fsharp/symbols/SymbolHelpers.fs
@@ -341,14 +341,14 @@ module internal SymbolHelpers =
let rangeOfPropInfo preferFlag (pinfo:PropInfo) =
match pinfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp(_, pi, _) -> ComputeDefinitionLocationOfProvidedItem pi
#endif
| _ -> pinfo.ArbitraryValRef |> Option.map (rangeOfValRef preferFlag)
let rangeOfMethInfo (g:TcGlobals) preferFlag (minfo:MethInfo) =
match minfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth(_, mi, _, _) -> ComputeDefinitionLocationOfProvidedItem mi
#endif
| DefaultStructCtor(_, AppTy g (tcref, _)) -> Some(rangeOfEntityRef preferFlag tcref)
@@ -356,7 +356,7 @@ module internal SymbolHelpers =
let rangeOfEventInfo preferFlag (einfo:EventInfo) =
match einfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent (_, ei, _) -> ComputeDefinitionLocationOfProvidedItem ei
#endif
| _ -> einfo.ArbitraryValRef |> Option.map (rangeOfValRef preferFlag)
@@ -402,7 +402,7 @@ module internal SymbolHelpers =
// Provided type definitions do not have a useful F# CCU for the purposes of goto-definition.
let computeCcuOfTyconRef (tcref:TyconRef) =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if tcref.IsProvided then None else
#endif
ccuOfTyconRef tcref
@@ -561,7 +561,7 @@ module internal SymbolHelpers =
Some (ccuFileName, "M:"+actualTypeName+"."+normalizedName+genArity+XmlDocArgsEnc g (formalTypars, fmtps) args)
| DefaultStructCtor _ -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> None
#endif
@@ -577,7 +577,7 @@ module internal SymbolHelpers =
let GetXmlDocSigOfProp infoReader m pinfo =
match pinfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp _ -> None // No signature is possible. If an xml comment existed it would have been returned by PropInfo.XmlDoc in infos.fs
#endif
| FSProp (g, typ, _, _) as fspinfo ->
@@ -782,7 +782,7 @@ module internal SymbolHelpers =
protectAssemblyExploration 1027 (fun () ->
match item with
| ItemWhereTypIsPreferred ty ->
- if isAppTy g ty then hash (tcrefOfAppTy g ty).Stamp
+ if isAppTy g ty then hash (tcrefOfAppTy g ty).LogicalName
else 1010
| Item.ILField(ILFieldInfo(_, fld)) ->
System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode fld // hash on the object identity of the AbstractIL metadata blob for the field
@@ -795,12 +795,12 @@ module internal SymbolHelpers =
| Item.CtorGroup(name, meths) -> name.GetHashCode() + (meths |> List.fold (fun st a -> st + a.ComputeHashCode()) 0)
| (Item.Value vref | Item.CustomBuilder (_, vref)) -> hash vref.LogicalName
| Item.ActivePatternCase(APElemRef(_apinfo, vref, idx)) -> hash (vref.LogicalName, idx)
- | Item.ExnCase(tcref) -> hash tcref.Stamp
+ | Item.ExnCase(tcref) -> hash tcref.LogicalName
| Item.UnionCase(UnionCaseInfo(_, UCRef(tcref, n)), _) -> hash(tcref.Stamp, n)
| Item.RecdField(RecdFieldInfo(_, RFRef(tcref, n))) -> hash(tcref.Stamp, n)
| Item.Event evt -> evt.ComputeHashCode()
| Item.Property(_name, pis) -> hash (pis |> List.map (fun pi -> pi.ComputeHashCode()))
- | Item.UnqualifiedType(tcref :: _) -> hash tcref.Stamp
+ | Item.UnqualifiedType(tcref :: _) -> hash tcref.LogicalName
| _ -> failwith "unreachable") }
let CompletionItemDisplayPartialEquality g =
@@ -1230,7 +1230,7 @@ module internal SymbolHelpers =
| _ ->
FSharpStructuredToolTipElement.None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Determine if an item is a provided type
let (|ItemIsProvidedType|_|) g item =
@@ -1306,7 +1306,7 @@ module internal SymbolHelpers =
sprintf "%s.%s%s" typeString minfo.RawMetadata.Name paramString |> Some
| DefaultStructCtor _ -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _ -> None
#endif
@@ -1337,7 +1337,7 @@ module internal SymbolHelpers =
match finfo with
| ILFieldInfo(tinfo, fdef) ->
(tinfo.TyconRef |> ticksAndArgCountTextOfTyconRef)+"."+fdef.Name |> Some
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedField _ -> None
#endif
| Item.Types(_, ((AppTy g (tcref, _)) :: _))
@@ -1363,7 +1363,7 @@ module internal SymbolHelpers =
// namespaces from type providers need to be handled separately because they don't have compiled representation
// otherwise we'll fail at tast.fs
match modref.Deref.TypeReprInfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedNamespaceExtensionPoint _ ->
modref.CompilationPathOpt
|> Option.bind (fun path ->
@@ -1391,7 +1391,7 @@ module internal SymbolHelpers =
let tcref = tinfo.TyconRef
(tcref |> ticksAndArgCountTextOfTyconRef)+"."+pdef.Name |> Some
| FSProp _ -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedProp _ -> None
#endif
| Item.Property(_, []) -> None // Pathological case of the above
@@ -1410,7 +1410,7 @@ module internal SymbolHelpers =
| Parent tcref -> (tcref |> ticksAndArgCountTextOfTyconRef)+"."+vref.PropertyName|> Some
| ParentNone -> None
| None -> None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedEvent _ -> None
#endif
| Item.CtorGroup(_, minfos) ->
@@ -1426,7 +1426,7 @@ module internal SymbolHelpers =
| (DefaultStructCtor (g, typ) :: _) ->
let tcref = tcrefOfAppTy g typ
(ticksAndArgCountTextOfTyconRef tcref) + ".#ctor" |> Some
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedMeth _::_ -> None
#endif
| Item.CustomOperation (_, _, Some minfo) -> getKeywordForMethInfo minfo
@@ -1466,7 +1466,7 @@ module internal SymbolHelpers =
| Item.Property(_, pinfos) ->
let pinfo = List.head pinfos
if pinfo.IsIndexer then [item] else []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ItemIsWithStaticArguments m g _ -> [item] // we pretend that provided-types-with-static-args are method-like in order to get ParamInfo for them
#endif
| Item.CustomOperation(_name, _helpText, _minfo) -> [item]
diff --git a/src/fsharp/symbols/SymbolHelpers.fsi b/src/fsharp/symbols/SymbolHelpers.fsi
index 216fecacb..1d1762a7f 100755
--- a/src/fsharp/symbols/SymbolHelpers.fsi
+++ b/src/fsharp/symbols/SymbolHelpers.fsi
@@ -212,7 +212,7 @@ module internal SymbolHelpers =
val IsAttribute : InfoReader -> Item -> bool
val IsExplicitlySuppressed : TcGlobals -> Item -> bool
val FlattenItems : TcGlobals -> range -> Item -> Item list
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
val (|ItemIsProvidedType|_|) : TcGlobals -> Item -> TyconRef option
val (|ItemIsWithStaticArguments|_|): range -> TcGlobals -> Item -> Tainted[] option
val (|ItemIsProvidedTypeWithStaticArguments|_|): range -> TcGlobals -> Item -> Tainted[] option
diff --git a/src/fsharp/symbols/SymbolPatterns.fs b/src/fsharp/symbols/SymbolPatterns.fs
index aa4be5a32..8ae4b90bf 100644
--- a/src/fsharp/symbols/SymbolPatterns.fs
+++ b/src/fsharp/symbols/SymbolPatterns.fs
@@ -89,7 +89,7 @@ module Symbol =
if e.IsEnum || e.IsValueType || hasAttribute e.Attributes then Some()
else None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let (|Class|_|) (original: FSharpEntity, abbreviated: FSharpEntity, _) =
if abbreviated.IsClass
&& (not abbreviated.IsStaticInstantiation || original.IsFSharpAbbreviation) then Some()
@@ -114,7 +114,7 @@ module Symbol =
|| (e.IsFSharp && e.IsOpaque && not e.IsFSharpModule && not e.IsNamespace) then Some()
else None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let (|ProvidedType|_|) (e: FSharpEntity) =
if (e.IsProvided || e.IsProvidedAndErased || e.IsProvidedAndGenerated) && e.CompiledName = e.DisplayName then
Some()
@@ -126,7 +126,7 @@ module Symbol =
let (|FSharpModule|_|) (entity: FSharpEntity) = if entity.IsFSharpModule then Some() else None
let (|Namespace|_|) (entity: FSharpEntity) = if entity.IsNamespace then Some() else None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let (|ProvidedAndErasedType|_|) (entity: FSharpEntity) = if entity.IsProvidedAndErased then Some() else None
#endif
let (|Enum|_|) (entity: FSharpEntity) = if entity.IsEnum then Some() else None
diff --git a/src/fsharp/symbols/SymbolPatterns.fsi b/src/fsharp/symbols/SymbolPatterns.fsi
index e2c00c80e..4499e3098 100644
--- a/src/fsharp/symbols/SymbolPatterns.fsi
+++ b/src/fsharp/symbols/SymbolPatterns.fsi
@@ -31,14 +31,14 @@ module internal Symbol =
val (|Interface|_|) : FSharpEntity -> unit option
val (|AbstractClass|_|) : FSharpEntity -> unit option
val (|FSharpType|_|) : FSharpEntity -> unit option
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
val (|ProvidedType|_|) : FSharpEntity -> unit option
#endif
val (|ByRef|_|) : FSharpEntity -> unit option
val (|Array|_|) : FSharpEntity -> unit option
val (|FSharpModule|_|) : FSharpEntity -> unit option
val (|Namespace|_|) : FSharpEntity -> unit option
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
val (|ProvidedAndErasedType|_|) : FSharpEntity -> unit option
#endif
val (|Enum|_|) : FSharpEntity -> unit option
diff --git a/src/fsharp/symbols/Symbols.fs b/src/fsharp/symbols/Symbols.fs
index dd6c04451..c97b62e9d 100644
--- a/src/fsharp/symbols/Symbols.fs
+++ b/src/fsharp/symbols/Symbols.fs
@@ -128,7 +128,7 @@ module Impl =
/// Convert an IL type definition accessibility into an F# accessibility
let getApproxFSharpAccessibilityOfEntity (entity: EntityRef) =
match metadataOfTycon entity.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata _info ->
// This is an approximation - for generative type providers some type definitions can be private.
taccessPublic
@@ -230,7 +230,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
inherit FSharpSymbol(cenv,
(fun () ->
checkEntityIsResolved(entity);
- if entity.IsModule then Item.ModuleOrNamespaces [entity]
+ if entity.IsModuleOrNamespace then Item.ModuleOrNamespaces [entity]
else Item.UnqualifiedType [entity]),
(fun _this thisCcu2 ad ->
checkForCrossProjectAccessibility (thisCcu2, ad) (cenv.thisCcu, getApproxFSharpAccessibilityOfEntity entity))
@@ -288,7 +288,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member x.QualifiedName =
checkIsResolved()
let fail() = invalidOp (sprintf "the type '%s' does not have a qualified name" x.LogicalName)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if entity.IsTypeAbbrev || entity.IsProvidedErasedTycon || entity.IsNamespace then fail()
#else
if entity.IsTypeAbbrev || entity.IsNamespace then fail()
@@ -305,7 +305,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member x.TryFullName =
if isUnresolved() then None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
elif entity.IsTypeAbbrev || entity.IsProvidedErasedTycon then None
#else
elif entity.IsTypeAbbrev then None
@@ -346,7 +346,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member __.ArrayRank =
checkIsResolved()
rankOfArrayTyconRef cenv.g entity
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member __.IsProvided =
isResolved() &&
entity.IsProvided
@@ -366,7 +366,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member __.IsClass =
isResolved() &&
match metadataOfTycon entity.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsClass
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Class)
@@ -387,7 +387,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member __.IsDelegate =
isResolved() &&
match metadataOfTycon entity.Deref with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| ProvidedTypeMetadata info -> info.IsDelegate ()
#endif
| ILTypeMetadata (TILObjectReprData(_, _, td)) -> (td.tdKind = ILTypeDefKind.Delegate)
@@ -530,7 +530,7 @@ and FSharpEntity(cenv:cenv, entity:EntityRef) =
member x.StaticParameters =
match entity.TypeReprInfo with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint info ->
let m = x.DeclarationLocation
let typeBeforeArguments = info.ProvidedType
@@ -1796,6 +1796,7 @@ and FSharpMemberOrFunctionOrValue(cenv, d:FSharpMemberOrValData, item) =
member x.IsConstructor =
match d with
| C _ -> true
+ | V v -> v.IsConstructor
| _ -> false
member x.Data = d
@@ -2055,7 +2056,7 @@ and FSharpAttribute(cenv: cenv, attrib: AttribInfo) =
override __.ToString() =
if entityIsUnresolved attrib.TyconRef then "attribute ???" else "attribute " + attrib.TyconRef.CompiledName + "(...)"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
and FSharpStaticParameter(cenv, sp: Tainted< ExtensionTyping.ProvidedParameterInfo >, m) =
inherit FSharpSymbol(cenv,
(fun () ->
@@ -2178,7 +2179,7 @@ and FSharpAssembly internal (cenv, ccu: CcuThunk) =
member __.CodeLocation = ccu.SourceCodeDirectory
member __.FileName = ccu.FileName
member __.SimpleName = ccu.AssemblyName
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
member __.IsProviderGenerated = ccu.IsProviderGenerated
#endif
member __.Contents = FSharpAssemblySignature(cenv, ccu)
diff --git a/src/fsharp/symbols/Symbols.fsi b/src/fsharp/symbols/Symbols.fsi
index e01c3d994..2cfd8a2f4 100644
--- a/src/fsharp/symbols/Symbols.fsi
+++ b/src/fsharp/symbols/Symbols.fsi
@@ -124,7 +124,7 @@ and [] internal FSharpAssembly =
/// The simple name for the assembly
member SimpleName : string
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Indicates if the assembly was generated by a type provider and is due for static linking
member IsProviderGenerated : bool
#endif
@@ -208,7 +208,7 @@ and [] internal FSharpEntity =
/// Get the rank of an array type
member ArrayRank : int
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Indicates if the entity is a 'fake' symbol related to a static instantiation of a type provider
member IsStaticInstantiation : bool
@@ -226,7 +226,7 @@ and [] internal FSharpEntity =
/// Get the generic parameters, possibly including unit-of-measure parameters
member GenericParameters: IList
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get the static parameters for a provided type
member StaticParameters: IList
#endif
@@ -543,7 +543,7 @@ and [] internal FSharpGenericParameter =
member Constraints: IList
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// A subtype of FSharpSymbol that represents a static parameter to an F# type provider
#if COMPILER_PUBLIC_API
and [] FSharpStaticParameter =
diff --git a/src/fsharp/tainted.fs b/src/fsharp/tainted.fs
index 74ee18364..5d43f4639 100644
--- a/src/fsharp/tainted.fs
+++ b/src/fsharp/tainted.fs
@@ -2,7 +2,7 @@
namespace Microsoft.FSharp.Compiler
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open System
open Microsoft.FSharp.Compiler.Range
diff --git a/src/fsharp/tainted.fsi b/src/fsharp/tainted.fsi
index aaec679bb..228efbf60 100644
--- a/src/fsharp/tainted.fsi
+++ b/src/fsharp/tainted.fsi
@@ -2,7 +2,7 @@
namespace Microsoft.FSharp.Compiler
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open System
diff --git a/src/fsharp/tast.fs b/src/fsharp/tast.fs
index 26a4c1178..8e5ba69dc 100755
--- a/src/fsharp/tast.fs
+++ b/src/fsharp/tast.fs
@@ -26,7 +26,7 @@ open Microsoft.FSharp.Compiler.QuotationPickler
open Microsoft.FSharp.Core.Printf
open Microsoft.FSharp.Compiler.Rational
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
open Microsoft.FSharp.Compiler.ExtensionTyping
open Microsoft.FSharp.Core.CompilerServices
#endif
@@ -472,7 +472,7 @@ let getNameOfScopeRef sref =
| ILScopeRef.Assembly aref -> aref.Name
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
let ComputeDefinitionLocationOfProvidedItem (p : Tainted<#IProvidedCustomAttributeProvider>) =
let attrs = p.PUntaintNoFailure(fun x -> x.GetDefinitionLocationAttribute(p.TypeProvider.PUntaintNoFailure(id)))
match attrs with
@@ -590,7 +590,7 @@ type Entity =
/// The display name of the namespace, module or type, e.g. List instead of List`1, including static parameters if any
member x.DisplayNameWithStaticParameters = x.GetDisplayName(true, false)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member x.IsStaticInstantiationTycon =
x.IsProvidedErasedTycon &&
let _nm,args = PrettyNaming.demangleProvidedTypeName x.LogicalName
@@ -609,7 +609,7 @@ type Entity =
else
nm
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if x.IsProvidedErasedTycon then
let nm,args = PrettyNaming.demangleProvidedTypeName nm
if withStaticParameters && args.Length > 0 then
@@ -626,7 +626,7 @@ type Entity =
/// The code location where the module, namespace or type is defined.
member x.Range =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
| TProvidedTypeExtensionPoint info ->
match ComputeDefinitionLocationOfProvidedItem info.ProvidedType with
@@ -663,7 +663,7 @@ type Entity =
/// or comes from another F# assembly then it does not (because the documentation will get read from
/// an XML file).
member x.XmlDoc =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
| TProvidedTypeExtensionPoint info -> XmlDoc (info.ProvidedType.PUntaintNoFailure(fun st -> (st :> IProvidedCustomAttributeProvider).GetXmlDocAttributes(info.ProvidedType.TypeProvider.PUntaintNoFailure(id))))
| _ ->
@@ -738,7 +738,7 @@ type Entity =
/// Indicates if the entity is an F# module definition
member x.IsModule = x.IsModuleOrNamespace && (match x.ModuleOrNamespaceType.ModuleOrNamespaceKind with Namespace -> false | _ -> true)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Indicates if the entity is a provided type or namespace definition
member x.IsProvided =
@@ -769,7 +769,7 @@ type Entity =
/// Indicates if the entity is erased, either a measure definition, or an erased provided type definition
member x.IsErased =
x.IsMeasureableReprTycon
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
|| x.IsProvidedErasedTycon
#endif
@@ -957,7 +957,7 @@ type Entity =
/// Indicates if this is an enum type definition
member x.IsEnumTycon =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
| TProvidedTypeExtensionPoint info -> info.IsEnum
| TProvidedNamespaceExtensionPoint _ -> false
@@ -986,7 +986,7 @@ type Entity =
/// Indicates if this is a struct or enum type definition , i.e. a value type definition
member x.IsStructOrEnumTycon =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
| TProvidedTypeExtensionPoint info -> info.IsStructOrEnum
| TProvidedNamespaceExtensionPoint _ -> false
@@ -1044,7 +1044,7 @@ type Entity =
/// Gets the data indicating the compiled representation of a type or module in terms of Abstract IL data structures.
member x.CompiledRepresentation =
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
// We should never be computing this property for erased types
| TProvidedTypeExtensionPoint info when info.IsErased ->
@@ -1220,7 +1220,7 @@ and
/// Indicates the type is parameterized on a measure (e.g. float<_>) but erases to some other type (e.g. float)
| TMeasureableRepr of TType
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// TProvidedTypeExtensionPoint
///
/// Indicates the representation information for a provided type.
@@ -1247,7 +1247,7 @@ and
/// TILObjectReprData(scope, nesting, definition)
TILObjectReprData = TILObjectReprData of ILScopeRef * ILTypeDef list * ILTypeDef
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
and
[]
@@ -1596,7 +1596,7 @@ and
modulesByDemangledNameCache := None
allEntitiesByMangledNameCache := None
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Mutation used in hosting scenarios to hold the hosted types in this module or namespace
member mtyp.AddProvidedTypeEntity(entity:Entity) =
entities <- QueueList.appendOne entities entity
@@ -1734,7 +1734,7 @@ and Construct =
static member NewEmptyModuleOrNamespaceType mkind =
Construct.NewModuleOrNamespaceType mkind [] []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
static member NewProvidedTyconRepr(resolutionEnvironment,st:Tainted,importProvidedType,isSuppressRelocate,m) =
@@ -2666,13 +2666,13 @@ and NonLocalEntityRef =
let next = entity.ModuleOrNamespaceType.AllEntitiesByCompiledAndLogicalMangledNames.TryFind(path.[i])
match next with
| Some res -> NonLocalEntityRef.TryDerefEntityPath(ccu, path, (i+1), res)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| None -> NonLocalEntityRef.TryDerefEntityPathViaProvidedType(ccu, path, i, entity)
#else
| None -> VNone
#endif
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Try to find the entity corresponding to the given path, using type-providers to link the data
static member TryDerefEntityPathViaProvidedType(ccu: CcuThunk, path:string[], i:int, entity:Entity) =
// Errors during linking are not necessarily given good ranges. This has always been the case in F# 2.0, but also applies to
@@ -2998,7 +2998,7 @@ and
/// Get a blob of data indicating how this type is nested inside other namespaces, modules and types.
member x.CompilationPathOpt = x.Deref.CompilationPathOpt
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Indicates if the entity is a provided namespace fragment
member x.IsProvided = x.Deref.IsProvided
@@ -3596,7 +3596,7 @@ and
/// Indicates that this DLL was compiled using the F# compiler and has F# metadata
IsFSharp: bool
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Is the CCu an assembly injected by a type provider
IsProviderGenerated: bool
@@ -3687,7 +3687,7 @@ and CcuThunk =
/// Holds the filename for the DLL, if any
member ccu.FileName = ccu.Deref.FileName
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Is the CCu an EST injected assembly
member ccu.IsProviderGenerated = ccu.Deref.IsProviderGenerated
@@ -4672,7 +4672,7 @@ let tyconRefUsesLocalXmlDoc compilingFslib (x: TyconRef) =
match x with
| ERefLocal _ -> true
| ERefNonLocal _ ->
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match x.TypeReprInfo with
| TProvidedTypeExtensionPoint _ -> true
| _ ->
diff --git a/src/fsharp/test.snk b/src/fsharp/test.snk
deleted file mode 100644
index c16543bdc..000000000
Binary files a/src/fsharp/test.snk and /dev/null differ
diff --git a/src/fsharp/vs/IncrementalBuild.fs b/src/fsharp/vs/IncrementalBuild.fs
index 01bfd8d01..6145eabe3 100755
--- a/src/fsharp/vs/IncrementalBuild.fs
+++ b/src/fsharp/vs/IncrementalBuild.fs
@@ -4,8 +4,9 @@ namespace Microsoft.FSharp.Compiler
open System
-open System.IO
+open System.Collections.Concurrent
open System.Collections.Generic
+open System.IO
open System.Threading
open Microsoft.FSharp.Compiler
open Microsoft.FSharp.Compiler.NameResolution
@@ -1239,7 +1240,7 @@ type IncrementalBuilder(tcGlobals, frameworkTcImports, nonFrameworkAssemblyInput
cache.GetFileTimeStamp filename
// Deduplicate module names
- let moduleNamesDict = Dictionary>()
+ let moduleNamesDict = ConcurrentDictionary>()
/// This is a build task function that gets placed into the build rules as the computation for a VectorMap
///
@@ -1292,7 +1293,7 @@ type IncrementalBuilder(tcGlobals, frameworkTcImports, nonFrameworkAssemblyInput
disposeCleanupItem()
let! tcImports = TcImports.BuildNonFrameworkTcImports(ctok, tcConfigP, tcGlobals, frameworkTcImports, nonFrameworkResolutions, unresolvedReferences)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
tcImports.GetCcusExcludingBase() |> Seq.iter (fun ccu ->
// When a CCU reports an invalidation, merge them together and just report a
// general "imports invalidated". This triggers a rebuild.
@@ -1555,7 +1556,7 @@ type IncrementalBuilder(tcGlobals, frameworkTcImports, nonFrameworkAssemblyInput
member __.ImportedCcusInvalidated = importsInvalidated.Publish
member __.AllDependenciesDeprecated = allDependencies
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
member __.ThereAreLiveTypeProviders =
let liveTPs =
match cleanupItem with
diff --git a/src/fsharp/vs/IncrementalBuild.fsi b/src/fsharp/vs/IncrementalBuild.fsi
index e29f3408c..e664cadc7 100755
--- a/src/fsharp/vs/IncrementalBuild.fsi
+++ b/src/fsharp/vs/IncrementalBuild.fsi
@@ -100,7 +100,7 @@ type internal IncrementalBuilder =
/// The list of files the build depends on
member AllDependenciesDeprecated : string[]
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Whether there are any 'live' type providers that may need a refresh when a project is Cleaned
member ThereAreLiveTypeProviders : bool
#endif
diff --git a/src/fsharp/vs/ServiceAssemblyContent.fs b/src/fsharp/vs/ServiceAssemblyContent.fs
index 38a29545c..8f0363e38 100644
--- a/src/fsharp/vs/ServiceAssemblyContent.fs
+++ b/src/fsharp/vs/ServiceAssemblyContent.fs
@@ -119,16 +119,18 @@ type AssemblyContentType = Public | Full
type Parent =
{ Namespace: Idents option
- ThisRequiresQualifiedAccess: Idents option
- TopRequiresQualifiedAccess: Idents option
+ ThisRequiresQualifiedAccess: (* isForMemberOrValue *) bool -> Idents option
+ TopRequiresQualifiedAccess: (* isForMemberOrValue *) bool -> Idents option
AutoOpen: Idents option
- WithModuleSuffix: Idents option }
+ WithModuleSuffix: Idents option
+ IsModule: bool }
static member Empty =
{ Namespace = None
- ThisRequiresQualifiedAccess = None
- TopRequiresQualifiedAccess = None
+ ThisRequiresQualifiedAccess = fun _ -> None
+ TopRequiresQualifiedAccess = fun _ -> None
AutoOpen = None
- WithModuleSuffix = None }
+ WithModuleSuffix = None
+ IsModule = true }
static member RewriteParentIdents (parentIdents: Idents option) (idents: Idents) =
match parentIdents with
| Some p when p.Length <= idents.Length ->
@@ -190,8 +192,8 @@ module AssemblyContentProvider =
{ FullName = fullName
CleanedIdents = cleanIdents
Namespace = ns
- NearestRequireQualifiedAccessParent = parent.ThisRequiresQualifiedAccess |> Option.map parent.FixParentModuleSuffix
- TopRequireQualifiedAccessParent = parent.TopRequiresQualifiedAccess |> Option.map parent.FixParentModuleSuffix
+ NearestRequireQualifiedAccessParent = parent.ThisRequiresQualifiedAccess false |> Option.map parent.FixParentModuleSuffix
+ TopRequireQualifiedAccessParent = parent.TopRequiresQualifiedAccess false |> Option.map parent.FixParentModuleSuffix
AutoOpenParent = parent.AutoOpen |> Option.map parent.FixParentModuleSuffix
Symbol = entity
Kind = fun lookupType ->
@@ -210,13 +212,14 @@ module AssemblyContentProvider =
let private traverseMemberFunctionAndValues ns (parent: Parent) (membersFunctionsAndValues: seq) =
membersFunctionsAndValues
+ |> Seq.filter (fun x -> not x.IsInstanceMember && not x.IsPropertyGetterMethod && not x.IsPropertySetterMethod)
|> Seq.collect (fun func ->
let processIdents fullName idents =
{ FullName = fullName
CleanedIdents = parent.FixParentModuleSuffix idents
Namespace = ns
- NearestRequireQualifiedAccessParent = parent.ThisRequiresQualifiedAccess |> Option.map parent.FixParentModuleSuffix
- TopRequireQualifiedAccessParent = parent.TopRequiresQualifiedAccess |> Option.map parent.FixParentModuleSuffix
+ NearestRequireQualifiedAccessParent = parent.ThisRequiresQualifiedAccess true |> Option.map parent.FixParentModuleSuffix
+ TopRequireQualifiedAccessParent = parent.TopRequiresQualifiedAccess true |> Option.map parent.FixParentModuleSuffix
AutoOpenParent = parent.AutoOpen |> Option.map parent.FixParentModuleSuffix
Symbol = func
Kind = fun _ -> EntityKind.FunctionOrValue func.IsActivePattern }
@@ -241,7 +244,7 @@ module AssemblyContentProvider =
let rec private traverseEntity contentType (parent: Parent) (entity: FSharpEntity) =
seq {
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if not entity.IsProvided then
#endif
match contentType, entity.Accessibility.IsPublic with
@@ -253,14 +256,14 @@ module AssemblyContentProvider =
| Some x -> yield x
| None -> ()
- let thisRequiresQualifierAccess =
- if entity.IsFSharp && Symbol.hasAttribute entity.Attributes then
- parent.FormatEntityFullName entity |> Option.map snd
- else None
+ let rqa = parent.FormatEntityFullName entity |> Option.map snd
+ let rqaForType = if entity.IsFSharp && Symbol.hasAttribute entity.Attributes then rqa else None
+ let thisRequiresQualifierAccess (isForMethodOrValue: bool) = if isForMethodOrValue then rqa else rqaForType
let currentParent =
- { ThisRequiresQualifiedAccess = thisRequiresQualifierAccess |> Option.orElse parent.ThisRequiresQualifiedAccess
- TopRequiresQualifiedAccess = parent.TopRequiresQualifiedAccess |> Option.orElse thisRequiresQualifierAccess
+ { ThisRequiresQualifiedAccess = thisRequiresQualifierAccess >> Option.orElse (parent.ThisRequiresQualifiedAccess false)
+ TopRequiresQualifiedAccess = fun forMV -> (parent.TopRequiresQualifiedAccess false) |> Option.orElse (thisRequiresQualifierAccess forMV)
+
AutoOpen =
let isAutoOpen = entity.IsFSharpModule && Symbol.hasAttribute entity.Attributes
match isAutoOpen, parent.AutoOpen with
@@ -275,13 +278,14 @@ module AssemblyContentProvider =
if entity.IsFSharpModule && Symbol.hasModuleSuffixAttribute entity then
currentEntity |> Option.map (fun e -> e.CleanedIdents)
else parent.WithModuleSuffix
- Namespace = ns }
- if entity.IsFSharpModule then
- match entity.TryGetMembersFunctionsAndValues with
- | xs when xs.Count > 0 ->
- yield! traverseMemberFunctionAndValues ns currentParent xs
- | _ -> ()
+ Namespace = ns
+ IsModule = entity.IsFSharpModule }
+
+ match entity.TryGetMembersFunctionsAndValues with
+ | xs when xs.Count > 0 ->
+ yield! traverseMemberFunctionAndValues ns currentParent xs
+ | _ -> ()
for e in (try entity.NestedEntities :> _ seq with _ -> Seq.empty) do
yield! traverseEntity contentType currentParent e
@@ -317,7 +321,7 @@ module AssemblyContentProvider =
// on-demand. However a more compete review may be warranted.
use _ignoreAllDiagnostics = new ErrorScope()
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
match assemblies |> List.filter (fun x -> not x.IsProviderGenerated), fileName with
#else
match assemblies, fileName with
diff --git a/src/fsharp/vs/ServiceDeclarationLists.fs b/src/fsharp/vs/ServiceDeclarationLists.fs
index a36dc3ce6..1a9a90c83 100644
--- a/src/fsharp/vs/ServiceDeclarationLists.fs
+++ b/src/fsharp/vs/ServiceDeclarationLists.fs
@@ -176,7 +176,7 @@ module internal DescriptionListsImpl =
prettyTyparInst, parameters, prettyRetTyL, prettyConstraintsL
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
/// Get the set of static parameters associated with an item
let StaticParamsOfItem (infoReader:InfoReader) m denv item =
@@ -382,7 +382,7 @@ module internal DescriptionListsImpl =
| ILTypeDefKind.Delegate -> FSharpGlyph.Delegate
| TAsmRepr _ -> FSharpGlyph.Typedef
| TMeasureableRepr _-> FSharpGlyph.Typedef
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| TProvidedTypeExtensionPoint _-> FSharpGlyph.Typedef
| TProvidedNamespaceExtensionPoint _-> FSharpGlyph.Typedef
#endif
@@ -470,7 +470,7 @@ module internal DescriptionListsImpl =
| Item.Property(_,pinfos) ->
let pinfo = List.head pinfos
if pinfo.IsIndexer then [item] else []
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| SymbolHelpers.ItemIsWithStaticArguments m g _ ->
// we pretend that provided-types-with-static-args are method-like in order to get ParamInfo for them
[item]
@@ -796,7 +796,7 @@ type FSharpMethodGroup( name: string, unsortedMethods: FSharpMethodGroupItem[] )
let hasStaticParameters =
match flatItem with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| SymbolHelpers.ItemIsProvidedTypeWithStaticArguments m g _ -> false
#endif
| _ -> true
@@ -808,7 +808,7 @@ type FSharpMethodGroup( name: string, unsortedMethods: FSharpMethodGroupItem[] )
parameters = (prettyParams |> Array.ofList),
hasParameters = hasStaticParameters,
hasParamArrayArg = hasParamArrayArg,
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
staticParameters = StaticParamsOfItem infoReader m denv flatItem
#else
staticParameters = [| |]
diff --git a/src/fsharp/vs/ServiceParseTreeWalk.fs b/src/fsharp/vs/ServiceParseTreeWalk.fs
index 992570be6..9dddedb62 100755
--- a/src/fsharp/vs/ServiceParseTreeWalk.fs
+++ b/src/fsharp/vs/ServiceParseTreeWalk.fs
@@ -90,9 +90,15 @@ module internal AstTraversal =
/// VisitLetOrUse allows overriding behavior when visiting module or local let or use bindings
abstract VisitLetOrUse : SynBinding list * range -> 'T option
default this.VisitLetOrUse (_, _) = None
-
+ /// VisitType allows overriding behavior when visiting simple pats
abstract VisitSimplePats : SynSimplePat list -> 'T option
default this.VisitSimplePats (_) = None
+ /// VisitPat allows overriding behavior when visiting patterns
+ abstract VisitPat : (SynPat -> 'T option) * SynPat -> 'T option
+ default this.VisitPat (defaultTraverse, pat) = defaultTraverse pat
+ /// VisitType allows overriding behavior when visiting type hints (x: ..., etc.)
+ abstract VisitType : (SynType -> 'T option) * SynType -> 'T option
+ default this.VisitType (defaultTraverse, ty) = defaultTraverse ty
let dive node range project =
range,(fun() -> project node)
@@ -189,12 +195,12 @@ module internal AstTraversal =
dive synExpr2 synExpr2.Range traverseSynExpr]
|> pick expr
| SynExpr.Const(_synConst, _range) -> None
- | SynExpr.Typed(synExpr, _synType, _range) -> traverseSynExpr synExpr
+ | SynExpr.Typed(synExpr, synType, _range) -> [ traverseSynExpr synExpr; traverseSynType synType ] |> List.tryPick id
| SynExpr.Tuple(synExprList, _, _range)
| SynExpr.StructTuple(synExprList, _, _range) -> synExprList |> List.map (fun x -> dive x x.Range traverseSynExpr) |> pick expr
| SynExpr.ArrayOrList(_, synExprList, _range) -> synExprList |> List.map (fun x -> dive x x.Range traverseSynExpr) |> pick expr
| SynExpr.Record(inheritOpt,copyOpt,fields, _range) ->
- [
+ [
let diveIntoSeparator offsideColumn scPosOpt copyOpt =
match scPosOpt with
| Some scPos ->
@@ -448,6 +454,50 @@ module internal AstTraversal =
visitor.VisitExpr(path, traverseSynExpr path, defaultTraverse, expr)
+ and traversePat (pat: SynPat) =
+ let defaultTraverse p =
+ match p with
+ | SynPat.Paren (p, _) -> traversePat p
+ | SynPat.Or (p1, p2, _) -> [ p1; p2] |> List.tryPick traversePat
+ | SynPat.Ands (ps, _)
+ | SynPat.Tuple (ps, _)
+ | SynPat.StructTuple (ps, _)
+ | SynPat.ArrayOrList (_, ps, _) -> ps |> List.tryPick traversePat
+ | SynPat.Attrib (p, _, _) -> traversePat p
+ | SynPat.LongIdent(_, _, _, args, _, _) ->
+ match args with
+ | SynConstructorArgs.Pats ps -> ps |> List.tryPick traversePat
+ | SynConstructorArgs.NamePatPairs (ps, _) ->
+ ps |> List.map snd |> List.tryPick traversePat
+ | SynPat.Typed (p, ty, _) ->
+ [ traversePat p; traverseSynType ty ] |> List.tryPick id
+ | _ -> None
+
+ visitor.VisitPat (defaultTraverse, pat)
+
+ and traverseSynType (ty: SynType) =
+ let defaultTraverse ty =
+ match ty with
+ | SynType.App (typeName, _, typeArgs, _, _, _, _)
+ | SynType.LongIdentApp (typeName, _, _, typeArgs, _, _, _) ->
+ [ yield typeName
+ yield! typeArgs ]
+ |> List.tryPick traverseSynType
+ | SynType.Fun (ty1, ty2, _) -> [ty1; ty2] |> List.tryPick traverseSynType
+ | SynType.MeasurePower (ty, _, _)
+ | SynType.HashConstraint (ty, _)
+ | SynType.WithGlobalConstraints (ty, _, _)
+ | SynType.Array (_, ty, _) -> traverseSynType ty
+ | SynType.StaticConstantNamed (ty1, ty2, _)
+ | SynType.MeasureDivide (ty1, ty2, _) -> [ty1; ty2] |> List.tryPick traverseSynType
+ | SynType.Tuple (tys, _)
+ | SynType.StructTuple (tys, _) -> tys |> List.map snd |> List.tryPick traverseSynType
+ | SynType.StaticConstantExpr (expr, _) -> traverseSynExpr [] expr
+ | SynType.Anon _ -> None
+ | _ -> None
+
+ visitor.VisitType (defaultTraverse, ty)
+
and normalizeMembersToDealWithPeculiaritiesOfGettersAndSetters path traverseInherit (synMemberDefns:SynMemberDefns) =
synMemberDefns
// property getters are setters are two members that can have the same range, so do some somersaults to deal with this
@@ -566,8 +616,10 @@ module internal AstTraversal =
let defaultTraverse b =
let path = TraverseStep.Binding b :: path
match b with
- | (SynBinding.Binding(_synAccessOption, _synBindingKind, _, _, _synAttributes, _preXmlDoc, _synValData, _synPat, _synBindingReturnInfoOption, synExpr, _range, _sequencePointInfoForBinding)) ->
- traverseSynExpr path synExpr
+ | (SynBinding.Binding(_synAccessOption, _synBindingKind, _, _, _synAttributes, _preXmlDoc, _synValData, synPat, _synBindingReturnInfoOption, synExpr, _range, _sequencePointInfoForBinding)) ->
+ [ traversePat synPat
+ traverseSynExpr path synExpr ]
+ |> List.tryPick id
visitor.VisitBinding(defaultTraverse,b)
match parseTree with
diff --git a/src/fsharp/vs/ServiceStructure.fs b/src/fsharp/vs/ServiceStructure.fs
index 0009b3d9a..ffe2461d9 100644
--- a/src/fsharp/vs/ServiceStructure.fs
+++ b/src/fsharp/vs/ServiceStructure.fs
@@ -228,8 +228,7 @@ module Structure =
| SynExpr.DotIndexedGet (e,_,_,_)
| SynExpr.DotIndexedSet (e,_,_,_,_,_) -> parseExpr e
| SynExpr.New (_,_,expr,r) ->
- let collapse = Range.endToEnd expr.Range r
- rcheck Scope.New Collapse.Below r collapse
+ rcheck Scope.New Collapse.Below r expr.Range
parseExpr expr
| SynExpr.YieldOrReturn (_,e,r) ->
rcheck Scope.YieldOrReturn Collapse.Below r r
@@ -545,7 +544,9 @@ module Structure =
| [], [] -> List.rev res
| [], _ -> List.rev (currentBulk::res)
| r :: rest, [] -> loop rest res [r]
- | r :: rest, last :: _ when r.StartLine = last.EndLine + 1 ->
+ | r :: rest, last :: _
+ when r.StartLine = last.EndLine + 1 ||
+ sourceLines.[last.EndLine..r.StartLine - 2] |> Array.forall System.String.IsNullOrWhiteSpace ->
loop rest res (r::currentBulk)
| r :: rest, _ -> loop rest (currentBulk::res) [r]
loop input [] []
diff --git a/src/fsharp/vs/ServiceStructure.fsi b/src/fsharp/vs/ServiceStructure.fsi
index 4e4fc9dde..4c85cd978 100644
--- a/src/fsharp/vs/ServiceStructure.fsi
+++ b/src/fsharp/vs/ServiceStructure.fsi
@@ -7,7 +7,11 @@ open System.Collections.Generic
open Microsoft.FSharp.Compiler
open Microsoft.FSharp.Compiler.Range
+#if COMPILER_PUBLIC_API
+module Structure =
+#else
module internal Structure =
+#endif
/// Collapse indicates the way a range/snapshot should be collapsed. `Same` is for a scope inside
/// some kind of scope delimiter, e.g. `[| ... |]`, `[ ... ]`, `{ ... }`, etc. `Below` is for expressions
/// following a binding or the right hand side of a pattern, e.g. `let x = ...`
diff --git a/src/fsharp/vs/ServiceUntypedParse.fs b/src/fsharp/vs/ServiceUntypedParse.fs
index c5e30bf3d..dff684fe5 100755
--- a/src/fsharp/vs/ServiceUntypedParse.fs
+++ b/src/fsharp/vs/ServiceUntypedParse.fs
@@ -79,6 +79,8 @@ type CompletionContext =
| ParameterList of pos * HashSet
| AttributeApplication
| OpenDeclaration
+ /// completing pattern type (e.g. foo (x: |))
+ | PatternType
//----------------------------------------------------------------------------
// FSharpParseFileResults
@@ -1272,6 +1274,12 @@ module UntypedParseImpl =
else
None
| _ -> defaultTraverse decl
+
+ member __.VisitType(defaultTraverse, ty) =
+ match ty with
+ | SynType.LongIdent _ when rangeContainsPos ty.Range pos ->
+ Some CompletionContext.PatternType
+ | _ -> defaultTraverse ty
}
AstTraversal.Traverse(pos, pt, walker)
diff --git a/src/fsharp/vs/ServiceUntypedParse.fsi b/src/fsharp/vs/ServiceUntypedParse.fsi
index 9a2c8379d..62485fdef 100755
--- a/src/fsharp/vs/ServiceUntypedParse.fsi
+++ b/src/fsharp/vs/ServiceUntypedParse.fsi
@@ -104,6 +104,8 @@ type internal CompletionContext =
| ParameterList of pos * HashSet
| AttributeApplication
| OpenDeclaration
+ /// completing pattern type (e.g. foo (x: |))
+ | PatternType
#if COMPILER_PUBLIC_API
type ModuleKind = { IsAutoOpen: bool; HasModuleSuffix: bool }
diff --git a/src/fsharp/vs/service.fs b/src/fsharp/vs/service.fs
index a49e0cf0c..f40cc61dc 100644
--- a/src/fsharp/vs/service.fs
+++ b/src/fsharp/vs/service.fs
@@ -870,10 +870,32 @@ type TypeCheckInfo
|> Option.map (fun (items, denv, m) ->
items |> List.filter (fun x -> match x.Item with Item.ModuleOrNamespaces _ -> true | _ -> false), denv, m)
+ // Completion at '(x: ...)"
+ | Some (CompletionContext.PatternType) ->
+ GetDeclaredItems (parseResultsOpt, lineStr, origLongIdentOpt, colAtEndOfNamesAndResidue, residueOpt, lastDotPos, line, loc, filterCtors, resolveOverloads, hasTextChangedSinceLastTypecheck, false, getAllSymbols)
+ |> Option.map (fun (items, denv, m) ->
+ items
+ |> List.filter (fun cItem ->
+ match cItem.Item with
+ | Item.ModuleOrNamespaces _
+ | Item.Types _
+ | Item.UnqualifiedType _
+ | Item.ExnCase _ -> true
+ | _ -> false), denv, m)
+
// Other completions
| cc ->
- let isInRangeOperator = (match cc with Some (CompletionContext.RangeOperator) -> true | _ -> false)
- GetDeclaredItems (parseResultsOpt, lineStr, origLongIdentOpt, colAtEndOfNamesAndResidue, residueOpt, lastDotPos, line, loc, filterCtors,resolveOverloads, hasTextChangedSinceLastTypecheck, isInRangeOperator, getAllSymbols)
+ match residueOpt |> Option.bind Seq.tryHead with
+ | Some ''' ->
+ // The last token in
+ // let x = 'E
+ // is Ident with text "'E", however it's either unfinished char literal or generic parameter.
+ // We should not provide any completion in the former case, and we don't provide it for the latter one for now
+ // because providing generic parameters list is context aware, which we don't have here (yet).
+ None
+ | _ ->
+ let isInRangeOperator = (match cc with Some (CompletionContext.RangeOperator) -> true | _ -> false)
+ GetDeclaredItems (parseResultsOpt, lineStr, origLongIdentOpt, colAtEndOfNamesAndResidue, residueOpt, lastDotPos, line, loc, filterCtors,resolveOverloads, hasTextChangedSinceLastTypecheck, isInRangeOperator, getAllSymbols)
res |> Option.map (fun (items, denv, m) -> items, denv, completionContext, m)
@@ -1183,7 +1205,7 @@ type TypeCheckInfo
| None ->
let fail defaultReason =
match item.Item with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| SymbolHelpers.ItemIsProvidedType g (tcref) -> FSharpFindDeclResult.DeclNotFound (FSharpFindDeclFailureReason.ProvidedType(tcref.DisplayName))
| Item.CtorGroup(name, ProvidedMeth(_)::_)
| Item.MethodGroup(name, ProvidedMeth(_)::_, _)
@@ -1448,7 +1470,7 @@ module internal Parser =
errorCount <- errorCount + 1
match exn with
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
| { Exception = (:? TypeProviderError as tpe) } -> tpe.Iter(fun e -> report { exn with Exception = e })
#endif
| e -> report e
diff --git a/src/root.traversal.targets b/src/root.traversal.targets
index 585ecbbc4..f0515163d 100644
--- a/src/root.traversal.targets
+++ b/src/root.traversal.targets
@@ -1,16 +1,21 @@
+
+
+ AssemblySearchPaths={HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}
+
+
-
-
+
+
-
-
+
+
-
+
diff --git a/src/update.cmd b/src/update.cmd
index 89ed51b26..87f79130a 100644
--- a/src/update.cmd
+++ b/src/update.cmd
@@ -8,7 +8,7 @@ if /i "%1" == "debug" goto :ok
if /i "%1" == "release" goto :ok
if /i "%1" == "signonly" goto :ok
-echo adding required strong name verification skipping, and NGening built binaries
+echo adding required strong name verification skipping and NGening built binaries
echo Usage:
echo update.cmd debug [-ngen]
echo update.cmd release [-ngen]
diff --git a/src/utils/EditDistance.fs b/src/utils/EditDistance.fs
index 3ab53e679..6beac0c40 100644
--- a/src/utils/EditDistance.fs
+++ b/src/utils/EditDistance.fs
@@ -3,11 +3,13 @@
/// Functions to compute the edit distance between two strings
module internal Internal.Utilities.EditDistance
-/// Given an offset and a radius from that offset,
-/// does mChar exist in that part of str?
-let inline existsInWin (mChar: char) (str: string) offset rad =
- let startAt = max 0 (offset - rad)
- let endAt = min (offset + rad) (String.length str - 1)
+open System
+open System.Collections.Generic
+
+/// Given an offset and a radius from that offset, does mChar exist in that part of str?
+let inline existsInWin (mChar: char) (str: string) (offset: int) (rad: int) =
+ let startAt = Math.Max(0, offset - rad)
+ let endAt = Math.Min(offset + rad, str.Length - 1)
if endAt - startAt < 0 then false
else
let rec exists index =
@@ -15,61 +17,47 @@ let inline existsInWin (mChar: char) (str: string) offset rad =
elif index = endAt then false
else exists (index + 1)
exists startAt
-
-/// The jaro distance between s1 and s2
-let jaro s1 s2 =
- // The radius is half of the lesser
- // of the two string lengths rounded up.
+
+let jaro (s1: string) (s2: string) =
+ // The radius is half of the lesser of the two string lengths rounded up.
let matchRadius =
- let minLen =
- min (String.length s1) (String.length s2) in
- minLen / 2 + minLen % 2
-
+ let minLen = Math.Min(s1.Length, s2.Length)
+ minLen / 2 + minLen % 2
+
// An inner function which recursively finds the number
// of matched characters within the radius.
let commonChars (chars1: string) (chars2: string) =
- let rec inner i result =
- match i with
- | -1 -> result
- | _ -> if existsInWin chars1.[i] chars2 i matchRadius
- then inner (i - 1) (chars1.[i] :: result)
- else inner (i - 1) result
- inner (chars1.Length - 1) []
-
+ let result = ResizeArray(chars1.Length)
+ for i = 0 to chars1.Length - 1 do
+ let c = chars1.[i]
+ if existsInWin c chars2 i matchRadius then
+ result.Add c
+ result
+
// The sets of common characters and their lengths as floats
let c1 = commonChars s1 s2
let c2 = commonChars s2 s1
- let c1length = float (List.length c1)
- let c2length = float (List.length c2)
-
- // The number of transpositions within
- // the sets of common characters.
- let transpositions =
- let rec inner cl1 cl2 result =
- match cl1, cl2 with
- | [], _ | _, [] -> result
- | c1h :: c1t, c2h :: c2t ->
- if c1h <> c2h
- then inner c1t c2t (result + 1.0)
- else inner c1t c2t result
- let mismatches = inner c1 c2 0.0
+ let c1length = float c1.Count
+ let c2length = float c2.Count
+
+ // The number of transpositions within the sets of common characters.
+ let transpositions =
+ let mutable mismatches = 0.0
+ for i = 0 to (Math.Min(c1.Count, c2.Count)) - 1 do
+ if c1.[i] <> c2.[i] then
+ mismatches <- mismatches + 1.0
+
// If one common string is longer than the other
// each additional char counts as half a transposition
(mismatches + abs (c1length - c2length)) / 2.0
-
- let s1length = float (String.length s1)
- let s2length = float (String.length s2)
- let tLength = max c1length c2length
-
- // The jaro distance as given by
- // 1/3 ( m2/|s1| + m1/|s2| + (mc-t)/mc )
- let result = (c1length / s1length +
- c2length / s2length +
- (tLength - transpositions) / tLength)
- / 3.0
-
+
+ let tLength = Math.Max(c1length, c2length)
+
+ // The jaro distance as given by 1/3 ( m2/|s1| + m1/|s2| + (mc-t)/mc )
+ let result = (c1length / float s1.Length + c2length / float s2.Length + (tLength - transpositions) / tLength) / 3.0
+
// This is for cases where |s1|, |s2| or m are zero
- if System.Double.IsNaN result then 0.0 else result
+ if Double.IsNaN result then 0.0 else result
/// Calculates the Jaro-Winkler edit distance between two strings.
/// The edit distance is a metric that allows to measure the amount of similarity between two strings.
diff --git a/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj b/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj
index 0efd720bf..1c52cbf48 100644
--- a/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj
+++ b/tests/fsharp/FSharp.Tests.FSharpSuite.fsproj
@@ -37,12 +37,21 @@
+
+
+ $(FSharpSourcesRoot)\..\packages\System.Collections.Immutable.$(SystemCollectionsImmutableVersion)\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+ True
+
+
+ $(FSharpSourcesRoot)\..\packages\System.Reflection.Metadata.1.4.2\lib\portable-net45+win8\System.Reflection.Metadata.dll
+ True
+ ..\..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dllTrue
diff --git a/tests/fsharp/app.config b/tests/fsharp/app.config
new file mode 100644
index 000000000..bd1c9c33d
--- /dev/null
+++ b/tests/fsharp/app.config
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tests/fsharp/core/signedtests/test-sha1-delay-attributes.bsl b/tests/fsharp/core/signedtests/test-sha1-delay-attributes.bsl
deleted file mode 100644
index 8e2f27b61..000000000
--- a/tests/fsharp/core/signedtests/test-sha1-delay-attributes.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha1-delay-attributes.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha1-delay-cl.bsl b/tests/fsharp/core/signedtests/test-sha1-delay-cl.bsl
deleted file mode 100644
index 3274baa6b..000000000
--- a/tests/fsharp/core/signedtests/test-sha1-delay-cl.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha1-delay-cl.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha1-full-attributes.bsl b/tests/fsharp/core/signedtests/test-sha1-full-attributes.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha1-full-attributes.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha1-full-cl.bsl b/tests/fsharp/core/signedtests/test-sha1-full-cl.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha1-full-cl.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha1024-delay-attributes.bsl b/tests/fsharp/core/signedtests/test-sha1024-delay-attributes.bsl
deleted file mode 100644
index 27f1e41f6..000000000
--- a/tests/fsharp/core/signedtests/test-sha1024-delay-attributes.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha1024-delay-attributes.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha1024-delay-cl.bsl b/tests/fsharp/core/signedtests/test-sha1024-delay-cl.bsl
deleted file mode 100644
index 92eac8caa..000000000
--- a/tests/fsharp/core/signedtests/test-sha1024-delay-cl.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha1024-delay-cl.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha1024-full-attributes.bsl b/tests/fsharp/core/signedtests/test-sha1024-full-attributes.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha1024-full-attributes.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha1024-full-cl.bsl b/tests/fsharp/core/signedtests/test-sha1024-full-cl.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha1024-full-cl.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha1024-public-cl.bsl b/tests/fsharp/core/signedtests/test-sha1024-public-cl.bsl
deleted file mode 100644
index 71f422b51..000000000
--- a/tests/fsharp/core/signedtests/test-sha1024-public-cl.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-Failed to verify assembly -- Strong name validation failed.
diff --git a/tests/fsharp/core/signedtests/test-sha256-delay-attributes.bsl b/tests/fsharp/core/signedtests/test-sha256-delay-attributes.bsl
deleted file mode 100644
index 3b25e77f9..000000000
--- a/tests/fsharp/core/signedtests/test-sha256-delay-attributes.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha256-delay-attributes.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha256-delay-cl.bsl b/tests/fsharp/core/signedtests/test-sha256-delay-cl.bsl
deleted file mode 100644
index cd7693184..000000000
--- a/tests/fsharp/core/signedtests/test-sha256-delay-cl.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha256-delay-cl.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha256-full-attributes.bsl b/tests/fsharp/core/signedtests/test-sha256-full-attributes.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha256-full-attributes.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha256-full-cl.bsl b/tests/fsharp/core/signedtests/test-sha256-full-cl.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha256-full-cl.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha512-delay-attributes.bsl b/tests/fsharp/core/signedtests/test-sha512-delay-attributes.bsl
deleted file mode 100644
index 1aef8fa38..000000000
--- a/tests/fsharp/core/signedtests/test-sha512-delay-attributes.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha512-delay-attributes.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha512-delay-cl.bsl b/tests/fsharp/core/signedtests/test-sha512-delay-cl.bsl
deleted file mode 100644
index 5e6f97958..000000000
--- a/tests/fsharp/core/signedtests/test-sha512-delay-cl.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-sha512-delay-cl.exe is a delay-signed or test-signed assembly
diff --git a/tests/fsharp/core/signedtests/test-sha512-full-attributes.bsl b/tests/fsharp/core/signedtests/test-sha512-full-attributes.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha512-full-attributes.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-sha512-full-cl.bsl b/tests/fsharp/core/signedtests/test-sha512-full-cl.bsl
deleted file mode 100644
index cb14d8045..000000000
--- a/tests/fsharp/core/signedtests/test-sha512-full-cl.bsl
+++ /dev/null
@@ -1,3 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
diff --git a/tests/fsharp/core/signedtests/test-unsigned.bsl b/tests/fsharp/core/signedtests/test-unsigned.bsl
deleted file mode 100644
index 374becaca..000000000
--- a/tests/fsharp/core/signedtests/test-unsigned.bsl
+++ /dev/null
@@ -1,4 +0,0 @@
-sn -q stops all output except error messages
-if the output is a valid file no output is produced.
-delay-signed and unsigned produce error messages.
-test-unsigned.exe does not represent a strongly named assembly
diff --git a/tests/fsharp/packages.config b/tests/fsharp/packages.config
index 3b0ea1fe3..4715cb922 100644
--- a/tests/fsharp/packages.config
+++ b/tests/fsharp/packages.config
@@ -1,4 +1,11 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/tests/fsharp/test-framework.fs b/tests/fsharp/test-framework.fs
index 6b9a795ca..48d4d2834 100644
--- a/tests/fsharp/test-framework.fs
+++ b/tests/fsharp/test-framework.fs
@@ -105,8 +105,6 @@ module Commands =
type TestConfig =
{ EnvironmentVariables : Map
- CORDIR : string
- CORSDK : string
CSC : string
csc_flags : string
BUILD_CONFIG : string
@@ -118,8 +116,6 @@ type TestConfig =
FSI_FOR_SCRIPTS : string
fsi_flags : string
ILDASM : string
- SN : string
- NGEN : string
PEVERIFY : string
Directory: string
DotNetExe: string
@@ -134,33 +130,6 @@ module WindowsPlatform =
[| "PROCESSOR_ARCHITECTURE" |] |> Seq.tryPick (fun s -> find s) |> function None -> "" | Some x -> x
value = "AMD64"
- let clrPaths envVars =
-
- let windir =
- match envVars |> Map.tryFind "windir" with
- | Some x -> x
- | None -> failwithf "environment variable '%s' required " "WINDIR"
-
- let mutable CORDIR =
- match Directory.EnumerateDirectories (windir ++ "Microsoft.NET" ++ "Framework", "v4.0.?????") |> List.ofSeq |> List.rev with
- | x :: _ -> x
- | [] -> failwith "couldn't determine CORDIR"
-
- // == Use the same runtime as our architecture
- // == ASSUMPTION: This could be a good or bad thing.
- if Is64BitOperatingSystem envVars then
- CORDIR <- CORDIR.Replace("Framework", "Framework64")
-
- let CORSDK =
- let find s = envVars |> Map.tryFind s
- [| "WINSDKNETFXTOOLS"; "WindowsSDK_ExecutablePath_x64"; "WindowsSDK_ExecutablePath_x86" |]
- |> Seq.tryPick find
- |> function
- | None -> @"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\"
- | Some x -> x
-
- CORDIR, CORSDK
-
type FSLibPaths =
{ FSCOREDLLPATH : string }
@@ -169,30 +138,32 @@ let requireFile nm =
let config configurationName envVars =
- let SCRIPT_ROOT = __SOURCE_DIRECTORY__
+ let SCRIPT_ROOT = __SOURCE_DIRECTORY__
+ let packagesDir = SCRIPT_ROOT ++ ".." ++ ".." ++ "packages"
let FSCBinPath = SCRIPT_ROOT ++ ".." ++ ".." ++ configurationName ++ "net40" ++ "bin"
let csc_flags = "/nologo"
let fsc_flags = "-r:System.Core.dll --nowarn:20 --define:COMPILED"
let fsi_flags = "-r:System.Core.dll --nowarn:20 --define:INTERACTIVE --maxerrors:1 --abortonerror"
- let CORDIR, CORSDK = WindowsPlatform.clrPaths envVars
let Is64BitOperatingSystem = WindowsPlatform.Is64BitOperatingSystem envVars
- let CSC = requireFile (CORDIR ++ "csc.exe")
- let NGEN = requireFile (CORDIR ++ "ngen.exe")
- let ILDASM = requireFile (CORSDK ++ "ildasm.exe")
- let SN = requireFile (CORSDK ++ "sn.exe")
- let PEVERIFY = requireFile (CORSDK ++ "peverify.exe")
+ let architectureMoniker = if Is64BitOperatingSystem then "x64" else "x86"
+ let CSC = requireFile (packagesDir ++ "Microsoft.Net.Compilers.2.4.0" ++ "tools" ++ "csc.exe")
+ let ILDASM = requireFile (packagesDir ++ ("runtime.win-" + architectureMoniker + ".Microsoft.NETCore.ILDAsm.2.0.3") ++ "runtimes" ++ ("win-" + architectureMoniker) ++ "native" ++ "ildasm.exe")
+ let coreclrdll = requireFile (packagesDir ++ ("runtime.win-" + architectureMoniker + ".Microsoft.NETCore.Runtime.CoreCLR.2.0.3") ++ "runtimes" ++ ("win-" + architectureMoniker) ++ "native" ++ "coreclr.dll")
+ let PEVERIFY = requireFile (SCRIPT_ROOT ++ ".." ++ "fsharpqa" ++ "testenv" ++ "src" ++ "PEVerify" ++ "bin" ++ configurationName ++ "net46" ++ "PEVerify.exe")
let FSI_FOR_SCRIPTS =
match envVars |> Map.tryFind "_fsiexe" with
| Some fsiexe when (not (String.IsNullOrWhiteSpace fsiexe)) -> requireFile (SCRIPT_ROOT ++ ".." ++ ".." ++ (fsiexe.Trim([| '\"' |])))
| _ ->
// build.cmd sets that var, if it is not set, we are probably called directly from visual studio or the nunit console runner.
- let packagesDir = SCRIPT_ROOT ++ ".." ++ ".." ++ @"packages"
let fsharpCompilerTools = Directory.GetDirectories(packagesDir, "FSharp.Compiler.Tools.*")
match fsharpCompilerTools with
| [||] -> failwithf "Could not find any 'FSharp.Compiler.Tools' inside '%s'" packagesDir
| [| dir |] -> Path.Combine(dir, "tools", "fsi.exe")
| _ -> failwithf "Found more than one 'FSharp.Compiler.Tools' inside '%s', please clean up." packagesDir
- let dotNetExe = SCRIPT_ROOT ++ ".." ++ ".." ++ "Tools" ++ "dotnetcli" ++ "dotnet.exe"
+ let toolsDir = SCRIPT_ROOT ++ ".." ++ ".." ++ "Tools"
+ let dotNetExe = toolsDir ++ "dotnetcli" ++ "dotnet.exe"
+ // ildasm requires coreclr.dll to run which has already been restored to the packages directory
+ File.Copy(coreclrdll, Path.GetDirectoryName(ILDASM) ++ "coreclr.dll", overwrite=true)
#if !FSHARP_SUITE_DRIVES_CORECLR_TESTS
let FSI = requireFile (FSCBinPath ++ "fsi.exe")
@@ -212,13 +183,9 @@ let config configurationName envVars =
| false -> "win7-x86"
{ EnvironmentVariables = envVars
- CORDIR = CORDIR |> Commands.pathAddBackslash
- CORSDK = CORSDK |> Commands.pathAddBackslash
FSCBinPath = FSCBinPath |> Commands.pathAddBackslash
FSCOREDLLPATH = FSCOREDLLPATH
ILDASM = ILDASM
- SN = SN
- NGEN = NGEN
PEVERIFY = PEVERIFY
CSC = CSC
BUILD_CONFIG = configurationName
@@ -236,8 +203,6 @@ let logConfig (cfg: TestConfig) =
log "---------------------------------------------------------------"
log "Executables"
log ""
- log "CORDIR =%s" cfg.CORDIR
- log "CORSDK =%s" cfg.CORSDK
log "CSC =%s" cfg.CSC
log "BUILD_CONFIG =%s" cfg.BUILD_CONFIG
log "csc_flags =%s" cfg.csc_flags
@@ -248,7 +213,6 @@ let logConfig (cfg: TestConfig) =
log "FSI =%s" cfg.FSI
log "fsi_flags =%s" cfg.fsi_flags
log "ILDASM =%s" cfg.ILDASM
- log "NGEN =%s" cfg.NGEN
log "PEVERIFY =%s" cfg.PEVERIFY
log "---------------------------------------------------------------"
@@ -452,7 +416,6 @@ let fscAppendErrExpectFail cfg errPath arg = Printf.ksprintf (Commands.fsc cfg.D
let csc cfg arg = Printf.ksprintf (Commands.csc (exec cfg) cfg.CSC) arg
let ildasm cfg arg = Printf.ksprintf (Commands.ildasm (exec cfg) cfg.ILDASM) arg
let peverify cfg = Commands.peverify (exec cfg) cfg.PEVERIFY "/nologo"
-let sn cfg outfile arg = execAppendOutIgnoreExitCode cfg cfg.Directory outfile cfg.SN arg
let peverifyWithArgs cfg args = Commands.peverify (exec cfg) cfg.PEVERIFY args
let fsi cfg = Printf.ksprintf (Commands.fsi (exec cfg) cfg.FSI)
let fsi_script cfg = Printf.ksprintf (Commands.fsi (exec cfg) cfg.FSI_FOR_SCRIPTS)
diff --git a/tests/fsharp/tests.fs b/tests/fsharp/tests.fs
index 81f282abd..4a4d35de5 100644
--- a/tests/fsharp/tests.fs
+++ b/tests/fsharp/tests.fs
@@ -11,6 +11,7 @@ module ``FSharp-Tests-Core``
open System
open System.IO
open System.Reflection
+open System.Reflection.PortableExecutable
open NUnit.Framework
open TestFramework
open Scripting
@@ -568,84 +569,88 @@ module CoreTests =
let ``printing-5`` () =
printing "--quiet" "z.output.test.quiet.stdout.txt" "z.output.test.quiet.stdout.bsl" "z.output.test.quiet.stderr.txt" "z.output.test.quiet.stderr.bsl"
+ type SigningType =
+ | DelaySigned
+ | PublicSigned
+ | NotSigned
- let signedtest(args,bslfile) =
+ let signedtest(programId:string, args:string, expectedSigning:SigningType) =
let cfg = testConfig "core/signedtests"
- let cfg = { cfg with fsc_flags=cfg.fsc_flags + " " + args }
+ let newFlags = cfg.fsc_flags + " " + args
- let outfile = Path.ChangeExtension(bslfile,"sn.out")
- let exefile = Path.ChangeExtension(bslfile,"exe")
- do File.WriteAllLines(getfullpath cfg outfile,
- ["sn -q stops all output except error messages "
- "if the output is a valid file no output is produced. "
- "delay-signed and unsigned produce error messages. "])
+ let exefile = programId + ".exe"
+ fsc cfg "%s -o:%s" newFlags exefile ["test.fs"]
- fsc cfg "%s -o:%s" cfg.fsc_flags exefile ["test.fs"]
- sn cfg outfile ("-q -vf "+exefile)
- let diffs = fsdiff cfg outfile bslfile
+ let assemblyPath = Path.Combine(cfg.Directory, exefile)
+ let assemblyName = AssemblyName.GetAssemblyName(assemblyPath)
+ let publicKeyToken = assemblyName.GetPublicKeyToken()
+ let isPublicKeyTokenPresent = not (Array.isEmpty publicKeyToken)
+ use exeStream = new FileStream(assemblyPath, FileMode.Open)
+ let peHeader = PEHeaders(exeStream)
+ let isSigned = peHeader.CorHeader.Flags.HasFlag(CorFlags.StrongNameSigned)
+ let actualSigning =
+ match isSigned, isPublicKeyTokenPresent with
+ | true, true-> SigningType.PublicSigned
+ | true, false -> failwith "unreachable"
+ | false, true -> SigningType.DelaySigned
+ | false, false -> SigningType.NotSigned
- match diffs with
- | "" -> ()
- | _ -> Assert.Fail (sprintf "'%s' and '%s' differ; %A" outfile bslfile diffs)
+ Assert.AreEqual(expectedSigning, actualSigning)
[]
- let ``signedtest-1`` () = signedtest("","test-unsigned.bsl")
+ let ``signedtest-1`` () = signedtest("test-unsigned", "", SigningType.NotSigned)
[]
- let ``signedtest-2`` () = signedtest("--keyfile:sha1full.snk", "test-sha1-full-cl.bsl")
+ let ``signedtest-2`` () = signedtest("test-sha1-full-cl", "--keyfile:sha1full.snk", SigningType.PublicSigned)
[]
- let ``signedtest-3`` () = signedtest("--keyfile:sha256full.snk", "test-sha256-full-cl.bsl")
+ let ``signedtest-3`` () = signedtest("test-sha256-full-cl", "--keyfile:sha256full.snk", SigningType.PublicSigned)
[]
- let ``signedtest-4`` () = signedtest("--keyfile:sha512full.snk", "test-sha512-full-cl.bsl")
+ let ``signedtest-4`` () = signedtest("test-sha512-full-cl", "--keyfile:sha512full.snk", SigningType.PublicSigned)
[]
- let ``signedtest-5`` () = signedtest("--keyfile:sha1024full.snk", "test-sha1024-full-cl.bsl")
+ let ``signedtest-5`` () = signedtest("test-sha1024-full-cl", "--keyfile:sha1024full.snk", SigningType.PublicSigned)
[]
- let ``signedtest-6`` () = signedtest("--keyfile:sha1delay.snk --delaysign", "test-sha1-delay-cl.bsl")
+ let ``signedtest-6`` () = signedtest("test-sha1-delay-cl", "--keyfile:sha1delay.snk --delaysign", SigningType.DelaySigned)
[]
- let ``signedtest-7`` () = signedtest("--keyfile:sha256delay.snk --delaysign", "test-sha256-delay-cl.bsl")
+ let ``signedtest-7`` () = signedtest("test-sha256-delay-cl", "--keyfile:sha256delay.snk --delaysign", SigningType.DelaySigned)
[]
- let ``signedtest-8`` () = signedtest("--keyfile:sha512delay.snk --delaysign", "test-sha512-delay-cl.bsl")
+ let ``signedtest-8`` () = signedtest("test-sha512-delay-cl", "--keyfile:sha512delay.snk --delaysign", SigningType.DelaySigned)
[]
- let ``signedtest-9`` () = signedtest("--keyfile:sha1024delay.snk --delaysign", "test-sha1024-delay-cl.bsl")
+ let ``signedtest-9`` () = signedtest("test-sha1024-delay-cl", "--keyfile:sha1024delay.snk --delaysign", SigningType.DelaySigned)
// Test SHA1 key full signed Attributes
[]
- let ``signedtest-10`` () = signedtest("--define:SHA1","test-sha1-full-attributes.bsl")
+ let ``signedtest-10`` () = signedtest("test-sha1-full-attributes", "--define:SHA1", SigningType.PublicSigned)
// Test SHA1 key delayl signed Attributes
[]
- let ``signedtest-11`` () = signedtest("--keyfile:sha1delay.snk --define:SHA1 --define:DELAY", "test-sha1-delay-attributes.bsl")
+ let ``signedtest-11`` () = signedtest("test-sha1-delay-attributes", "--keyfile:sha1delay.snk --define:SHA1 --define:DELAY", SigningType.DelaySigned)
[]
- let ``signedtest-12`` () = signedtest("--define:SHA256", "test-sha256-full-attributes.bsl")
+ let ``signedtest-12`` () = signedtest("test-sha256-full-attributes", "--define:SHA256", SigningType.PublicSigned)
// Test SHA 256 bit key delay signed Attributes
[]
- let ``signedtest-13`` () = signedtest("--define:SHA256 --define:DELAY", "test-sha256-delay-attributes.bsl")
+ let ``signedtest-13`` () = signedtest("test-sha256-delay-attributes", "--define:SHA256 --define:DELAY", SigningType.DelaySigned)
// Test SHA 512 bit key fully signed Attributes
[]
- let ``signedtest-14`` () = signedtest("--define:SHA512", "test-sha512-full-attributes.bsl")
+ let ``signedtest-14`` () = signedtest("test-sha512-full-attributes", "--define:SHA512", SigningType.PublicSigned)
// Test SHA 512 bit key delay signed Attributes
[]
- let ``signedtest-15`` () = signedtest("--define:SHA512 --define:DELAY", "test-sha512-delay-attributes.bsl")
+ let ``signedtest-15`` () = signedtest("test-sha512-delay-attributes", "--define:SHA512 --define:DELAY", SigningType.DelaySigned)
// Test SHA 1024 bit key fully signed Attributes
[]
- let ``signedtest-16`` () = signedtest("--define:SHA1024", "test-sha1024-full-attributes.bsl")
-
- // Test dumpbin with SHA 1024 bit key public signed CL
- []
- let ``signedtest-17`` () = signedtest("--keyfile:sha1024delay.snk --publicsign", "test-sha1024-public-cl.bsl")
+ let ``signedtest-16`` () = signedtest("test-sha1024-full-attributes", "--define:SHA1024", SigningType.PublicSigned)
#endif
#if !FSHARP_SUITE_DRIVES_CORECLR_TESTS
@@ -1616,9 +1621,9 @@ module OptimizationTests =
fsc cfg "%s --optimize -o:test--optimize.exe -g -r:lib--optimize.dll -r:lib3--optimize.dll" cfg.fsc_flags ["test.fs "]
- ildasm cfg "/nobar /out=test.il" "test.exe"
+ ildasm cfg "/out=test.il" "test.exe"
- ildasm cfg "/nobar /out=test--optimize.il" "test--optimize.exe"
+ ildasm cfg "/out=test--optimize.il" "test--optimize.exe"
let ``test--optimize.il`` =
File.ReadLines (getfullpath cfg "test--optimize.il")
@@ -1641,7 +1646,7 @@ module OptimizationTests =
let stats () =
let cfg = testConfig "optimize/stats"
- ildasm cfg "/nobar /out=FSharp.Core.il" cfg.FSCOREDLLPATH
+ ildasm cfg "/out=FSharp.Core.il" cfg.FSCOREDLLPATH
let fscore = File.ReadLines(getfullpath cfg "FSharp.Core.il") |> Seq.toList
diff --git a/tests/fsharp/typecheck/sigs/neg01.bsl b/tests/fsharp/typecheck/sigs/neg01.bsl
index c9c6d3a4a..e2a7c0565 100644
--- a/tests/fsharp/typecheck/sigs/neg01.bsl
+++ b/tests/fsharp/typecheck/sigs/neg01.bsl
@@ -5,8 +5,8 @@ neg01a.fs(22,8,23,7): typecheck error FS0913: Types cannot contain nested type d
neg01b.fs(2,13,2,14): typecheck error FS0039: The value, constructor, namespace or type 'X' is not defined. Maybe you want one of the following:
+ z
+
A
B
-
- z
diff --git a/tests/fsharp/typecheck/sigs/neg14.bsl b/tests/fsharp/typecheck/sigs/neg14.bsl
index 1b4a4c976..f10030ee5 100644
--- a/tests/fsharp/typecheck/sigs/neg14.bsl
+++ b/tests/fsharp/typecheck/sigs/neg14.bsl
@@ -3,8 +3,8 @@ neg14a.fs(9,6,9,33): typecheck error FS0343: The type 'missingInterfaceInSignatu
neg14b.fs(2,13,2,14): typecheck error FS0039: The value, constructor, namespace or type 'X' is not defined. Maybe you want one of the following:
+ z
+
A
B
-
- z
diff --git a/tests/fsharpqa/Source/CodeGen/Structure/DoNotInlineX.fs b/tests/fsharpqa/Source/CodeGen/Structure/DoNotInlineX.fs
index 058daf815..6c4a6447e 100644
--- a/tests/fsharpqa/Source/CodeGen/Structure/DoNotInlineX.fs
+++ b/tests/fsharpqa/Source/CodeGen/Structure/DoNotInlineX.fs
@@ -4,6 +4,8 @@ open System
open System.Diagnostics
open System.IO
+let longtime = int(System.TimeSpan.FromSeconds(30.0).TotalMilliseconds) // longtime is 30 seconds
+
let programFiles =
let pf86 = Environment.GetEnvironmentVariable("ProgramFiles(x86)")
if String.IsNullOrEmpty(pf86) then Environment.GetEnvironmentVariable("ProgramFiles") else pf86
@@ -26,7 +28,7 @@ let start (p1 : string) = Process.Start(p1)
let CompileFile file args =
let p = Process.Start(fsc, file + " " + args)
- while not (p.HasExited) do ()
+ p.WaitForExit()
[]
let main (args : string[]) =
@@ -40,13 +42,13 @@ let main (args : string[]) =
printfn "Compiled DerivedType with %A" derivedFlag
let r1 = start "DerivedType.exe"
- while not r1.HasExited do ()
+ r1.WaitForExit(longtime)
printfn "Ran DerivedType.exe with result: %A" r1.ExitCode
CompileFile "BaseType.fs" "-a"
printfn "Compiled BaseType without %A" baseFlag
let r2 = start "DerivedType.exe"
- while not r2.HasExited do ()
+ r2.WaitForExit(longtime)
printfn "Ran DerivedType.exe with result: %A" r2.ExitCode
if r1.ExitCode = expectedResult1 && r2.ExitCode = expectedResult2 then 0 else 1
diff --git a/tests/fsharpqa/Source/run.pl b/tests/fsharpqa/Source/run.pl
index f168f6415..c999def63 100644
--- a/tests/fsharpqa/Source/run.pl
+++ b/tests/fsharpqa/Source/run.pl
@@ -264,11 +264,14 @@ if($ENV{REDUCED_RUNTIME} ne "1"){
# check/set PEVerify
my $PEVERIFY = $ENV{PEVERIFY};
unless(defined($PEVERIFY)) {
- # Only use peverify if it is in the path
- foreach $_ (split /;/, $ENV{PATH}) {
- $PEVERIFY = "peverify.exe" if(-e "$_\\peverify.exe");
+ my $scriptPath = dirname(__FILE__);
+ $PEVERIFY = "$scriptPath\\..\\testenv\\src\\PEVerify\\bin\\Release\\net46\\PEVerify.exe";
+ if (-e $PEVERIFY) {
+ $ENV{PEVERIFY} = $PEVERIFY;
+ }
+ else {
+ $ENV{PEVERIFY} = "$scriptPath\\..\\testenv\\src\\PEVerify\\bin\\Debug\\net46\\PEVerify.exe";
}
- $ENV{PEVERIFY} = $PEVERIFY;
}
# Use $ENV{PEVER} if it is defined
diff --git a/tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj b/tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj
index b102ee15a..c03e0df50 100644
--- a/tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj
+++ b/tests/fsharpqa/testenv/src/HostedCompilerServer/HostedCompilerServer.fsproj
@@ -49,6 +49,10 @@
{2E4D67B4-522D-4CF7-97E4-BA940F0B18F3}FSharp.Compiler.Private
+
+ $(FSharpSourcesRoot)\..\packages\System.ValueTuple.4.3.1\lib\netstandard1.0\System.ValueTuple.dll
+ true
+
diff --git a/tests/fsharpqa/testenv/src/PEVerify/CLRHelpers.cs b/tests/fsharpqa/testenv/src/PEVerify/CLRHelpers.cs
new file mode 100644
index 000000000..be1d8346e
--- /dev/null
+++ b/tests/fsharpqa/testenv/src/PEVerify/CLRHelpers.cs
@@ -0,0 +1,344 @@
+// Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+// ported from https://github.com/dotnet/roslyn/blob/aaee215045c03c4f4b38a66b56d35261ee7f0ddc/src/Test/Utilities/Portable/Platform/Desktop/CLRHelpers.cs
+
+using System;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Reflection;
+using System.Runtime.InteropServices;
+using System.Text;
+using PEVerify;
+using Roslyn.Test.Utilities.Desktop.ComTypes;
+
+namespace Roslyn.Test.Utilities.Desktop
+{
+ public static class CLRHelpers
+ {
+ private static readonly Guid s_clsIdClrRuntimeHost = new Guid("90F1A06E-7712-4762-86B5-7A5EBA6BDB02");
+ private static readonly Guid s_clsIdCorMetaDataDispenser = new Guid("E5CB7A31-7512-11d2-89CE-0080C792E5D8");
+
+ public static event ResolveEventHandler ReflectionOnlyAssemblyResolve;
+
+ static CLRHelpers()
+ {
+ // Work around CLR bug:
+ // PE Verifier adds a handler to ReflectionOnlyAssemblyResolve event in AppDomain.EnableResolveAssembliesForIntrospection
+ // (called from ValidateWorker in Validator.cpp) in which it directly calls Assembly.ReflectionOnlyLoad.
+ // If that happens before we get a chance to resolve the assembly the resolution fails.
+ //
+ // The handlers are invoked in the order they were added until one of them returns non-null assembly.
+ // Therefore once we call Validate we can't add any more handlers -- they would all follow the CLR one, which fails.
+ //
+ // As A workaround we add a single forwarding handler before any calls to Validate and then subscribe all of our true handlers
+ // to this event.
+ AppDomain.CurrentDomain.ReflectionOnlyAssemblyResolve += ReflectionOnlyAssemblyResolveHandler;
+ }
+
+ private static Assembly ReflectionOnlyAssemblyResolveHandler(object sender, ResolveEventArgs args)
+ {
+ var handler = ReflectionOnlyAssemblyResolve;
+ if (handler != null)
+ {
+ return handler(sender, args);
+ }
+
+ return null;
+ }
+
+ public static object GetRuntimeInterfaceAsObject(Guid clsid, Guid riid)
+ {
+ // This API isn't available on Mono hence we must use reflection to access it.
+ Debug.Assert(!MonoHelpers.IsRunningOnMono());
+
+ var getRuntimeInterfaceAsObject = typeof(RuntimeEnvironment).GetMethod("GetRuntimeInterfaceAsObject", BindingFlags.Public | BindingFlags.Static);
+ return getRuntimeInterfaceAsObject.Invoke(null, new object[] { clsid, riid });
+ }
+
+ ///
+ /// Verifies the specified image. Subscribe to to provide a loader for dependent assemblies.
+ ///
+ public static string[] PeVerify(byte[] peImage, bool metadataOnly)
+ {
+ // fileName must be null, otherwise AssemblyResolve events won't fire
+ return PeVerify(peImage, AppDomain.CurrentDomain.Id, assemblyPath: null, metadataOnly: metadataOnly);
+ }
+
+ ///
+ /// Verifies the specified file. All dependencies must be on disk next to the file.
+ ///
+ public static string[] PeVerify(string filePath, bool metadataOnly)
+ {
+ return PeVerify(File.ReadAllBytes(filePath), AppDomain.CurrentDomain.Id, filePath, metadataOnly: metadataOnly);
+ }
+
+ private static readonly object s_guard = new object();
+
+ private static string[] PeVerify(byte[] peImage, int domainId, string assemblyPath, bool metadataOnly)
+ {
+ if (MonoHelpers.IsRunningOnMono())
+ {
+ // PEverify is currently unsupported on Mono hence return an empty
+ // set of messages
+ return new string[0];
+ }
+
+ lock (s_guard)
+ {
+ GCHandle pinned = GCHandle.Alloc(peImage, GCHandleType.Pinned);
+ try
+ {
+ IntPtr buffer = pinned.AddrOfPinnedObject();
+
+ ICLRValidator validator = (ICLRValidator)GetRuntimeInterfaceAsObject(s_clsIdClrRuntimeHost, typeof(ICLRRuntimeHost).GUID);
+ ValidationErrorHandler errorHandler = new ValidationErrorHandler(validator);
+
+ IMetaDataDispenser dispenser = (IMetaDataDispenser)GetRuntimeInterfaceAsObject(s_clsIdCorMetaDataDispenser, typeof(IMetaDataDispenser).GUID);
+
+ // the buffer needs to be pinned during validation
+ Guid riid = typeof(IMetaDataImport).GUID;
+ object metaDataImport = null;
+ if (assemblyPath != null)
+ {
+ dispenser.OpenScope(assemblyPath, CorOpenFlags.ofRead, ref riid, out metaDataImport);
+ }
+ else
+ {
+ dispenser.OpenScopeOnMemory(buffer, (uint)peImage.Length, CorOpenFlags.ofRead, ref riid, out metaDataImport);
+ }
+
+ IMetaDataValidate metaDataValidate = (IMetaDataValidate)metaDataImport;
+ metaDataValidate.ValidatorInit(CorValidatorModuleType.ValidatorModuleTypePE, errorHandler);
+ metaDataValidate.ValidateMetaData();
+
+ if (!metadataOnly)
+ {
+ validator.Validate(errorHandler, (uint)domainId, ValidatorFlags.VALIDATOR_EXTRA_VERBOSE,
+ ulMaxError: 10, token: 0, fileName: assemblyPath, pe: buffer, ulSize: (uint)peImage.Length);
+ }
+
+ return errorHandler.GetOutput();
+ }
+ finally
+ {
+ pinned.Free();
+ }
+ }
+ }
+
+ private class ValidationErrorHandler : IVEHandler
+ {
+ private readonly ICLRValidator _validator;
+ private readonly List _output;
+ private const int MessageLength = 256;
+
+ public ValidationErrorHandler(ICLRValidator validator)
+ {
+ _validator = validator;
+ _output = new List();
+ }
+
+ public void SetReporterFtn(long lFnPtr)
+ {
+ throw new NotImplementedException();
+ }
+
+ public void VEHandler(int VECode, tag_VerError Context, Array psa)
+ {
+ StringBuilder sb = new StringBuilder(MessageLength);
+ string message = null;
+
+ if (Context.Flags == (uint)ValidatorFlags.VALIDATOR_CHECK_PEFORMAT_ONLY)
+ {
+ GetErrorResourceString(VECode, sb);
+ string formatString = ReplaceFormatItems(sb.ToString(), "%08x", ":x8");
+ formatString = ReplaceFormatItems(formatString, "%d", "");
+ if (psa == null)
+ {
+ psa = new object[0];
+ }
+
+ message = string.Format(formatString, (object[])psa);
+ }
+ else
+ {
+ _validator.FormatEventInfo(VECode, Context, sb, (uint)MessageLength - 1, psa);
+ message = sb.ToString();
+ }
+
+ // retail version of peverify.exe filters out CLS warnings...
+ if (!message.Contains("[CLS]"))
+ {
+ _output.Add(message);
+ }
+ }
+
+ public string[] GetOutput()
+ {
+ return _output.ToArray();
+ }
+
+ private static readonly string s_resourceFilePath = Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "mscorrc.dll");
+ private const uint LOAD_LIBRARY_AS_DATAFILE = 0x00000002;
+ private static readonly IntPtr s_hMod = LoadLibraryEx(s_resourceFilePath, IntPtr.Zero, LOAD_LIBRARY_AS_DATAFILE);
+
+ private static void GetErrorResourceString(int code, StringBuilder message)
+ {
+ LoadString(s_hMod, (uint)(code & 0x0000FFFF), message, MessageLength - 1);
+ }
+
+ [DllImport("kernel32.dll", SetLastError = true)]
+ private static extern IntPtr LoadLibraryEx(string lpFileName, IntPtr hFile, uint dwFlags);
+
+ [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
+ private static extern int LoadString(IntPtr hInstance, uint uID, StringBuilder lpBuffer, int nBufferMax);
+
+ private static string ReplaceFormatItems(string input, string oldFormat, string newFormat)
+ {
+ // not foolproof/efficient, but easy to write/understand...
+ var parts = input.Replace(oldFormat, "|").Split('|');
+
+ var formatString = new StringBuilder();
+ for (int i = 0; i < parts.Length; i++)
+ {
+ formatString.Append(parts[i]);
+ if (i < (parts.Length - 1))
+ {
+ formatString.Append('{');
+ formatString.Append(i);
+ formatString.Append(newFormat);
+ formatString.Append('}');
+ }
+ }
+
+ return formatString.ToString();
+ }
+ }
+ }
+
+ namespace ComTypes
+ {
+ [ComImport, CoClass(typeof(object)), Guid("90F1A06C-7712-4762-86B5-7A5EBA6BDB02"), TypeIdentifier]
+ public interface CLRRuntimeHost : ICLRRuntimeHost
+ {
+ }
+
+ [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("90F1A06C-7712-4762-86B5-7A5EBA6BDB02"), TypeIdentifier]
+ public interface ICLRRuntimeHost
+ {
+ }
+
+ [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("63DF8730-DC81-4062-84A2-1FF943F59FDD"), TypeIdentifier]
+ public interface ICLRValidator
+ {
+ void Validate(
+ [In, MarshalAs(UnmanagedType.Interface)] IVEHandler veh,
+ [In] uint ulAppDomainId,
+ [In] ValidatorFlags ulFlags,
+ [In] uint ulMaxError,
+ [In] uint token,
+ [In, MarshalAs(UnmanagedType.LPWStr)] string fileName,
+ [In] IntPtr pe,
+ [In] uint ulSize);
+
+ void FormatEventInfo(
+ [In, MarshalAs(UnmanagedType.Error)] int hVECode,
+ [In] tag_VerError Context,
+ [In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder msg,
+ [In] uint ulMaxLength,
+ [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] Array psa);
+ }
+
+ [ComImport, Guid("856CA1B2-7DAB-11D3-ACEC-00C04F86C309"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), TypeIdentifier]
+ public interface IVEHandler
+ {
+ void VEHandler([In, MarshalAs(UnmanagedType.Error)] int VECode, [In] tag_VerError Context, [In, MarshalAs(UnmanagedType.SafeArray, SafeArraySubType = VarEnum.VT_VARIANT)] Array psa);
+ void SetReporterFtn([In] long lFnPtr);
+ }
+
+ [ComImport, Guid("809C652E-7396-11D2-9771-00A0C9B4D50C"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), TypeIdentifier]
+ public interface IMetaDataDispenser
+ {
+ void DefineScope(
+ [In] ref Guid rclsid,
+ [In] uint dwCreateFlags,
+ [In] ref Guid riid,
+ [Out, MarshalAs(UnmanagedType.IUnknown)] out object ppIUnk);
+
+ void OpenScope(
+ [In, MarshalAs(UnmanagedType.LPWStr)] string szScope,
+ [In] CorOpenFlags dwOpenFlags,
+ [In] ref Guid riid,
+ [Out, MarshalAs(UnmanagedType.IUnknown)] out object ppIUnk);
+
+ void OpenScopeOnMemory(
+ [In] IntPtr pData,
+ [In] uint cbData,
+ [In] CorOpenFlags dwOpenFlags,
+ [In] ref Guid riid,
+ [Out, MarshalAs(UnmanagedType.IUnknown)] out object ppIUnk);
+ }
+
+ [ComImport, Guid("7DAC8207-D3AE-4c75-9B67-92801A497D44"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), TypeIdentifier]
+ public interface IMetaDataImport
+ {
+ }
+
+ [ComImport, Guid("4709C9C6-81FF-11D3-9FC7-00C04F79A0A3"), InterfaceType(ComInterfaceType.InterfaceIsIUnknown), TypeIdentifier]
+ public interface IMetaDataValidate
+ {
+ void ValidatorInit([In] CorValidatorModuleType dwModuleType, [In, MarshalAs(UnmanagedType.IUnknown)] object pUnk);
+ void ValidateMetaData();
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 4), TypeIdentifier("5477469e-83b1-11d2-8b49-00a0c9b7c9c4", "mscoree.tag_VerError")]
+ public struct tag_VerError
+ {
+ public uint Flags;
+ public uint opcode;
+ public uint uOffset;
+ public uint Token;
+ public uint item1_flags;
+ public IntPtr item1_data;
+ public uint item2_flags;
+ public IntPtr item2_data;
+ }
+
+ public enum ValidatorFlags : uint
+ {
+ VALIDATOR_EXTRA_VERBOSE = 0x00000001,
+ VALIDATOR_SHOW_SOURCE_LINES = 0x00000002,
+ VALIDATOR_CHECK_ILONLY = 0x00000004,
+ VALIDATOR_CHECK_PEFORMAT_ONLY = 0x00000008,
+ VALIDATOR_NOCHECK_PEFORMAT = 0x00000010
+ };
+
+ public enum CorValidatorModuleType : uint
+ {
+ ValidatorModuleTypeInvalid = 0x00000000,
+ ValidatorModuleTypeMin = 0x00000001,
+ ValidatorModuleTypePE = 0x00000001,
+ ValidatorModuleTypeObj = 0x00000002,
+ ValidatorModuleTypeEnc = 0x00000003,
+ ValidatorModuleTypeIncr = 0x00000004,
+ ValidatorModuleTypeMax = 0x00000004
+ };
+
+ public enum CorOpenFlags : uint
+ {
+ ofRead = 0x00000000,
+ ofWrite = 0x00000001,
+ ofReadWriteMask = 0x00000001,
+ ofCopyMemory = 0x00000002,
+ ofCacheImage = 0x00000004,
+ ofManifestMetadata = 0x00000008,
+ ofReadOnly = 0x00000010,
+ ofTakeOwnership = 0x00000020,
+ ofNoTypeLib = 0x00000080,
+ ofReserved1 = 0x00000100,
+ ofReserved2 = 0x00000200,
+ ofReserved = 0xffffff40,
+ };
+ }
+}
diff --git a/tests/fsharpqa/testenv/src/PEVerify/MonoHelpers.cs b/tests/fsharpqa/testenv/src/PEVerify/MonoHelpers.cs
new file mode 100644
index 000000000..385dcacc5
--- /dev/null
+++ b/tests/fsharpqa/testenv/src/PEVerify/MonoHelpers.cs
@@ -0,0 +1,14 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+using System;
+
+namespace PEVerify
+{
+ public class MonoHelpers
+ {
+ public static bool IsRunningOnMono()
+ {
+ return Type.GetType("Mono.Runtime") != null;
+ }
+ }
+}
diff --git a/tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj b/tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj
new file mode 100644
index 000000000..3af2b4d23
--- /dev/null
+++ b/tests/fsharpqa/testenv/src/PEVerify/PEVerify.csproj
@@ -0,0 +1,8 @@
+
+
+
+ Exe
+ net46
+
+
+
diff --git a/tests/fsharpqa/testenv/src/PEVerify/Program.cs b/tests/fsharpqa/testenv/src/PEVerify/Program.cs
new file mode 100644
index 000000000..ecc24afee
--- /dev/null
+++ b/tests/fsharpqa/testenv/src/PEVerify/Program.cs
@@ -0,0 +1,54 @@
+// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
+
+using System;
+using System.IO;
+using Roslyn.Test.Utilities.Desktop;
+
+namespace PEVerify
+{
+ class Program
+ {
+ static int Main(string[] args)
+ {
+ string assemblyPath = null;
+ bool metadataOnly = false;
+ foreach (var arg in args)
+ {
+ switch (arg.ToUpperInvariant())
+ {
+ case "/IL":
+ case "/NOLOGO":
+ case "/UNIQUE":
+ // ignore these options
+ break;
+ case "/MD":
+ metadataOnly = true;
+ break;
+ default:
+ if (assemblyPath != null)
+ {
+ Console.WriteLine("Assembly already specified or unknown option.");
+ return -1;
+ }
+
+ assemblyPath = arg;
+ break;
+ }
+ }
+
+ if (!Path.IsPathRooted(assemblyPath))
+ {
+ var workingDir = Directory.GetCurrentDirectory();
+ assemblyPath = Path.Combine(workingDir, assemblyPath);
+ }
+
+ var errors = CLRHelpers.PeVerify(assemblyPath, metadataOnly);
+ foreach (var error in errors)
+ {
+ Console.WriteLine(error);
+ }
+
+ return errors.Length;
+ }
+ }
+}
diff --git a/tests/service/CSharpProjectAnalysis.fs b/tests/service/CSharpProjectAnalysis.fs
index 7acf06c71..34f427435 100644
--- a/tests/service/CSharpProjectAnalysis.fs
+++ b/tests/service/CSharpProjectAnalysis.fs
@@ -111,8 +111,9 @@ let _ = CSharpOuterClass.InnerClass.StaticMember()
|> Async.RunSynchronously
|> Array.map (fun su -> su.Symbol.ToString())
|> shouldEqual
- [|"Tests"; "InnerEnum"; "CSharpOuterClass"; "field Case1"; "InnerClass";
- "CSharpOuterClass"; "member StaticMember"; "NestedEnumClass"|]
+ [|"FSharp"; "FSharp"; "Compiler"; "Service"; "Tests"; "InnerEnum";
+ "CSharpOuterClass"; "field Case1"; "InnerClass"; "CSharpOuterClass";
+ "member StaticMember"; "NestedEnumClass"|]
[]
let ``Ctor test`` () =
diff --git a/tests/service/Common.fs b/tests/service/Common.fs
index ef3049110..8b76fa107 100644
--- a/tests/service/Common.fs
+++ b/tests/service/Common.fs
@@ -236,7 +236,7 @@ let attribsOfSymbol (s:FSharpSymbol) =
if v.IsFSharpUnion then yield "union"
if v.IsInterface then yield "interface"
if v.IsMeasure then yield "measure"
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
if v.IsProvided then yield "provided"
if v.IsStaticInstantiation then yield "staticinst"
if v.IsProvidedAndErased then yield "erased"
diff --git a/tests/service/EditorTests.fs b/tests/service/EditorTests.fs
index 2e050abe3..5abd70b92 100644
--- a/tests/service/EditorTests.fs
+++ b/tests/service/EditorTests.fs
@@ -715,6 +715,37 @@ type Class1() =
("member .cctor", (10, 5, 10, 11))
("Test", (1, 0, 1, 0))|]
+[]
+let ``IsConstructor property should return true for constructors`` () =
+ let input =
+ """
+type T(x: int) =
+ new() = T(0)
+let x: T()
+"""
+ let file = "/home/user/Test.fsx"
+ let _, typeCheckResults = parseAndCheckScript(file, input)
+ typeCheckResults.GetAllUsesOfAllSymbolsInFile()
+ |> Async.RunSynchronously
+ |> Array.map (fun su ->
+ let r = su.RangeAlternate
+ let isConstructor =
+ match su.Symbol with
+ | :? FSharpMemberOrFunctionOrValue as f -> f.IsConstructor
+ | _ -> false
+ su.Symbol.ToString(), (r.StartLine, r.StartColumn, r.EndLine, r.EndColumn), isConstructor)
+ |> Array.distinct
+ |> shouldEqual
+ [|("T", (2, 5, 2, 6), false)
+ ("int", (2, 10, 2, 13), false)
+ ("val x", (2, 7, 2, 8), false)
+ ("member .ctor", (2, 5, 2, 6), true)
+ ("member .ctor", (3, 4, 3, 7), true)
+ ("member .ctor", (3, 12, 3, 13), true)
+ ("T", (4, 7, 4, 8), false)
+ ("val x", (4, 4, 4, 5), false)
+ ("Test", (1, 0, 1, 0), false)|]
+
//-------------------------------------------------------------------------------
diff --git a/tests/service/ExprTests.fs b/tests/service/ExprTests.fs
index ed366d2d1..bf955c5aa 100644
--- a/tests/service/ExprTests.fs
+++ b/tests/service/ExprTests.fs
@@ -528,7 +528,7 @@ let bool2 = false
let options = checker.GetProjectOptionsFromCommandLineArgs (projFileName, args)
//<@ let x = Some(3) in x.IsSome @>
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
[]
let ``Test Declarations project1`` () =
let wholeProjectResults = exprChecker.ParseAndCheckProject(Project1.options) |> Async.RunSynchronously
diff --git a/tests/service/FscTests.fs b/tests/service/FscTests.fs
index 97f1ee759..61c3a2900 100644
--- a/tests/service/FscTests.fs
+++ b/tests/service/FscTests.fs
@@ -47,35 +47,17 @@ type PEVerifier () =
if runsOnMono then
Some ("pedump", "--verify all")
else
- let rec tryFindFile (fileName : string) (dir : DirectoryInfo) =
- let file = Path.Combine(dir.FullName, fileName)
- if File.Exists file then Some file
- else
- dir.GetDirectories()
- |> Array.sortBy(fun d -> d.Name)
- |> Array.filter(fun d ->
- match d.Name with
- // skip old SDK directories
- | "v6.0" | "v6.0A" | "v7.0" | "v7.0A" | "v7.1" | "v7.1A" -> false
- | _ -> true)
- |> Array.rev // order by descending -- get latest version
- |> Array.tryPick (tryFindFile fileName)
-
- let tryGetSdkDir (progFiles : Environment.SpecialFolder) =
- let progFilesFolder = Environment.GetFolderPath(progFiles)
- let dI = DirectoryInfo(Path.Combine(progFilesFolder, "Microsoft SDKs", "Windows"))
- if dI.Exists then Some dI
- else None
-
- match Array.tryPick tryGetSdkDir [| Environment.SpecialFolder.ProgramFilesX86; Environment.SpecialFolder.ProgramFiles |] with
- | None -> None
- | Some sdkDir ->
- match tryFindFile "peverify.exe" sdkDir with
- | None -> None
- | Some pe -> Some (pe, "/UNIQUE /IL /NOLOGO")
+ let peverifyPath configuration =
+ Path.Combine(__SOURCE_DIRECTORY__, "..", "fsharpqa", "testenv", "src", "PEVerify", "bin", configuration, "net46", "PEVerify.exe")
+ let peverify =
+ if File.Exists(peverifyPath "Debug") then peverifyPath "Debug"
+ else peverifyPath "Release"
+ Some (peverify, "/UNIQUE /IL /NOLOGO")
#endif
static let execute (fileName : string, arguments : string) =
+ // Peverify may run quite a while some assemblies are pretty big. Make the timeout 3 minutes just in case.
+ let longtime = int (TimeSpan.FromMinutes(3.0).TotalMilliseconds)
printfn "executing '%s' with arguments %s" fileName arguments
let psi = new ProcessStartInfo(fileName, arguments)
psi.UseShellExecute <- false
@@ -87,7 +69,7 @@ type PEVerifier () =
use proc = Process.Start(psi)
let stdOut = proc.StandardOutput.ReadToEnd()
let stdErr = proc.StandardError.ReadToEnd()
- while not proc.HasExited do ()
+ proc.WaitForExit(longtime)
proc.ExitCode, stdOut, stdErr
member __.Verify(assemblyPath : string) =
diff --git a/tests/service/ProjectAnalysisTests.fs b/tests/service/ProjectAnalysisTests.fs
index 1a345c4a7..c1283e152 100644
--- a/tests/service/ProjectAnalysisTests.fs
+++ b/tests/service/ProjectAnalysisTests.fs
@@ -109,7 +109,7 @@ let ``Test project1 whole project errors`` () =
let ``Test Project1 should have protected FullName and TryFullName return same results`` () =
let wholeProjectResults = checker.ParseAndCheckProject(Project1.options) |> Async.RunSynchronously
let rec getFullNameComparisons (entity: FSharpEntity) =
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
seq { if not entity.IsProvided && entity.Accessibility.IsPublic then
#else
seq { if entity.Accessibility.IsPublic then
@@ -127,7 +127,7 @@ let ``Test Project1 should have protected FullName and TryFullName return same r
let ``Test project1 should not throw exceptions on entities from referenced assemblies`` () =
let wholeProjectResults = checker.ParseAndCheckProject(Project1.options) |> Async.RunSynchronously
let rec getAllBaseTypes (entity: FSharpEntity) =
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
seq { if not entity.IsProvided && entity.Accessibility.IsPublic then
#else
seq{
@@ -531,7 +531,7 @@ let ``Test project1 all uses of all symbols`` () =
set expected - set allUsesOfAllSymbols |> shouldEqual Set.empty
(set expected = set allUsesOfAllSymbols) |> shouldEqual true
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
[]
let ``Test file explicit parse symbols`` () =
@@ -3688,8 +3688,10 @@ let ``Test Project25 symbol uses of type-provided members`` () =
allUses |> shouldEqual
- [|("FSharp.Data", "file1", ((3, 5), (3, 16)), ["namespace"; "provided"]);
- ("Microsoft.FSharp.Data", "file1", ((3, 5), (3, 16)), ["namespace"]);
+ [|("Microsoft.FSharp", "file1", ((3, 5), (3, 11)), ["namespace"]);
+ ("FSharp", "file1", ((3, 5), (3, 11)), ["namespace"]);
+ ("Microsoft.FSharp.Data", "file1", ((3, 12), (3, 16)), ["namespace"]);
+ ("FSharp.Data", "file1", ((3, 12), (3, 16)), ["namespace"; "provided"]);
("FSharp.Data.XmlProvider", "file1", ((4, 15), (4, 26)),
["class"; "provided"; "erased"]);
("FSharp.Data.XmlProvider", "file1", ((4, 15), (4, 26)),
@@ -3950,7 +3952,7 @@ type Use() =
let fileNames = [fileName1]
let args = mkProjectCommandLineArgs (dllName, fileNames)
let options = checker.GetProjectOptionsFromCommandLineArgs (projFileName, args)
-#if EXTENSIONTYPING
+#if !NO_EXTENSIONTYPING
[]
let ``Test project28 all symbols in signature`` () =
let wholeProjectResults = checker.ParseAndCheckProject(Project28.options) |> Async.RunSynchronously
@@ -3960,7 +3962,7 @@ let ``Test project28 all symbols in signature`` () =
|> Seq.map (fun s ->
let typeName = s.GetType().Name
match s with
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
| :? FSharpEntity as fse -> typeName, fse.DisplayName, fse.XmlDocSig
#endif
| :? FSharpField as fsf -> typeName, fsf.DisplayName, fsf.XmlDocSig
@@ -3969,7 +3971,7 @@ let ``Test project28 all symbols in signature`` () =
| :? FSharpActivePatternCase as ap -> typeName, ap.DisplayName, ap.XmlDocSig
| :? FSharpGenericParameter as fsg -> typeName, fsg.DisplayName, ""
| :? FSharpParameter as fsp -> typeName, fsp.DisplayName, ""
- #if EXTENSIONTYPING
+ #if !NO_EXTENSIONTYPING
| :? FSharpStaticParameter as fss -> typeName, fss.DisplayName, ""
#endif
| _ -> typeName, s.DisplayName, "unknown")
diff --git a/tests/service/ProjectOptionsTests.fs b/tests/service/ProjectOptionsTests.fs
index 39ecd5124..1e995681f 100644
--- a/tests/service/ProjectOptionsTests.fs
+++ b/tests/service/ProjectOptionsTests.fs
@@ -485,13 +485,12 @@ let ``Test OtherOptions order for GetProjectOptionsFromScript`` () =
let scriptPath = __SOURCE_DIRECTORY__ + @"/data/ScriptProject/" + scriptName + ".fsx"
let scriptSource = File.ReadAllText scriptPath
let projOpts, _diagnostics = checker.GetProjectOptionsFromScript(scriptPath, scriptSource) |> Async.RunSynchronously
-
projOpts.OtherOptions
|> Array.map (fun s -> if s.StartsWith "--" then s else Path.GetFileNameWithoutExtension s)
|> Array.forall (fun s -> Set.contains s expected2)
|> shouldEqual true
- let otherArgs = [|"--noframework"; "--warn:3"; "System.Numerics"; "mscorlib"; "FSharp.Core"; "System"; "System.Xml"; "System.Runtime.Remoting"; "System.Runtime.Serialization.Formatters.Soap"; "System.Data"; "System.Drawing"; "System.Core"; "System.Runtime"; "System.Linq"; "System.Reflection"; "System.Linq.Expressions"; "System.Threading.Tasks"; "System.IO"; "System.Net.Requests"; "System.Collections"; "System.Runtime.Numerics"; "System.Threading"; "System.Web"; "System.Web.Services"; "System.Windows.Forms"; "FSharp.Compiler.Interactive.Settings"|] |> Set.ofArray
+ let otherArgs = [|"--noframework"; "--warn:3"; "System.Numerics"; "System.ValueTuple"; "mscorlib"; "FSharp.Core"; "System"; "System.Xml"; "System.Runtime.Remoting"; "System.Runtime.Serialization.Formatters.Soap"; "System.Data"; "System.Drawing"; "System.Core"; "System.Runtime"; "System.Linq"; "System.Reflection"; "System.Linq.Expressions"; "System.Threading.Tasks"; "System.IO"; "System.Net.Requests"; "System.Collections"; "System.Runtime.Numerics"; "System.Threading"; "System.Web"; "System.Web.Services"; "System.Windows.Forms"; "FSharp.Compiler.Interactive.Settings"|] |> Set.ofArray
test "Main1" otherArgs
test "Main2" otherArgs
diff --git a/tests/service/StructureTests.fs b/tests/service/StructureTests.fs
new file mode 100644
index 000000000..cbfc937a3
--- /dev/null
+++ b/tests/service/StructureTests.fs
@@ -0,0 +1,582 @@
+#if INTERACTIVE
+#r "../../Debug/fcs/net45/FSharp.Compiler.Service.dll" // note, run 'build fcs debug' to generate this, this DLL has a public API so can be used from F# Interactive
+#r "../../packages/NUnit.3.5.0/lib/net45/nunit.framework.dll"
+#load "FsUnit.fs"
+#load "Common.fs"
+#else
+module Tests.Service.StructureTests
+#endif
+
+open System.IO
+open NUnit.Framework
+open Microsoft.FSharp.Compiler.Range
+open Microsoft.FSharp.Compiler.SourceCodeServices
+open Microsoft.FSharp.Compiler.SourceCodeServices.Structure
+open FSharp.Compiler.Service.Tests.Common
+open System.Text
+
+let fileName = Path.Combine (__SOURCE_DIRECTORY__, __SOURCE_FILE__)
+type Line = int
+type Col = int
+type Range = Line * Col * Line * Col
+
+let (=>) (source: string) (expectedRanges: (Range * Range) list) =
+ let lines =
+ use reader = new StringReader(source)
+ [| let line = ref (reader.ReadLine())
+ while not (isNull !line) do
+ yield !line
+ line := reader.ReadLine()
+ if source.EndsWith "\n" then
+ // last trailing space not returned
+ // http://stackoverflow.com/questions/19365404/stringreader-omits-trailing-linebreak
+ yield "" |]
+
+ let formatList (xs: _ list) =
+ let sb = StringBuilder("[ ")
+ for r in xs do
+ sb.AppendLine (sprintf "%A" r) |> ignore
+ sprintf "%O ]" sb
+
+ let getRange (r: range) = (r.StartLine, r.StartColumn, r.EndLine, r.EndColumn)
+
+ let ast = parseSourceCode(fileName, source)
+
+ try
+ match ast with
+ | Some tree ->
+ let actual =
+ Structure.getOutliningRanges lines tree
+ |> Seq.filter (fun sr -> sr.Range.StartLine <> sr.Range.EndLine)
+ |> Seq.map (fun sr -> getRange sr.Range, getRange sr.CollapseRange)
+ |> Seq.sort
+ |> List.ofSeq
+ let expected = List.sort expectedRanges
+ if actual <> expected then
+ failwithf "Expected %s, but was %s" (formatList expected) (formatList actual)
+ | None -> failwithf "Expected there to be a parse tree for source:\n%s" source
+ with _ ->
+ printfn "AST:\n%+A" ast
+ reraise()
+
+[]
+let ``empty file``() = "" => [ (1, 0, 2, 0), (1, 0, 2, 0) ]
+
+[]
+let ``nested module``() =
+ """
+module MyModule =
+ ()
+"""
+ => [ (1, 0, 4, 0), (1, 0, 4, 0)
+ (2, 0, 3, 6), (2, 15, 3, 6) ]
+
+[]
+let ``module with multiline function``() =
+ """
+module MyModule =
+ let foo() =
+ foo()
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 13), (2, 15, 4, 13)
+ (3, 4, 4, 13), (3, 13, 4, 13)
+ (3, 8, 4, 13), (3, 13, 4, 13) ]
+
+[]
+let ``DU``() =
+ """
+type Color =
+ | Red
+ | Green
+ | Blue
+"""
+ => [ (1, 0, 6, 0), (1, 0, 6, 0)
+ (2, 5, 5, 10), (2, 11, 5, 10)
+ (3, 4, 5, 10), (3, 4, 5, 10) ]
+
+[]
+let ``DU with interface``() =
+ """
+type Color =
+ | Red
+ | Green
+ | Blue
+
+ interface IDisposable with
+ member __.Dispose() =
+ (docEventListener :> IDisposable).Dispose()
+"""
+ => [ (1, 0, 10, 0), (1, 0, 10, 0)
+ (2, 5, 9, 55), (2, 11, 9, 55)
+ (3, 4, 5, 10), (3, 4, 5, 10)
+ (7, 4, 9, 55), (7, 25, 9, 55)
+ (8, 15, 9, 55), (8, 27, 9, 55)
+ (8, 15, 9, 55), (8, 27, 9, 55) ]
+
+[]
+let ``record with interface``() =
+ """
+type Color =
+ { Red: int
+ Green: int
+ Blue: int
+ }
+
+ interface IDisposable with
+ member __.Dispose() =
+ (docEventListener :> IDisposable).Dispose()
+"""
+ =>
+ [ (1, 0, 11, 0), (1, 0, 11, 0)
+ (2, 5, 10, 55), (2, 11, 10, 55)
+ (3, 4, 4, 14), (3, 4, 4, 14)
+ (3, 6, 4, 13), (3, 6, 4, 13)
+ (8, 4, 10, 55), (8, 25, 10, 55)
+ (9, 15, 10, 55), (9, 27, 10, 55)
+ (9, 15, 10, 55), (9, 27, 10, 55) ]
+
+[]
+let ``type with a do block``() =
+ """
+type Color() = // 2
+ let foo() =
+ ()
+
+ do
+ foo()
+ () // 8
+"""
+ => [ (1, 0, 9, 0), (1, 0, 9, 0)
+ (2, 5, 8, 10), (2, 11, 8, 10)
+ (3, 8, 4, 10), (3, 13, 4, 10)
+ (6, 4, 8, 10), (6, 6, 8, 10) ]
+
+[]
+let ``complex outlining test``() =
+ """
+module MyModule = // 2
+ let foo() = ()
+ let bar() =
+ ()
+
+ type Color = // 7
+ { Red: int
+ Green: int
+ Blue: int
+ }
+
+ interface IDisposable with // 13
+ member __.Dispose() =
+ (docEventListener :> IDisposable).Dispose()
+
+ module MyInnerModule = // 17
+
+ type RecordColor = // 19
+ { Red: int
+ Green: int
+ Blue: int
+ }
+
+ interface IDisposable with // 25
+ member __.Dispose() =
+ (docEventListener :> IDisposable).Dispose()
+"""
+ => [ (1, 0, 28, 0), (1, 0, 28, 0)
+ (2, 0, 27, 63), (2, 15, 27, 63)
+ (4, 4, 5, 10), (4, 13, 5, 10)
+ (4, 8, 5, 10), (4, 13, 5, 10)
+ (7, 9, 15, 59), (7, 15, 15, 59)
+ (8, 8, 11, 9), (8, 8, 11, 9)
+ (13, 8, 15, 59), (13, 29, 15, 59)
+ (14, 19, 15, 59), (14, 31, 15, 59)
+ (14, 19, 15, 59), (14, 31, 15, 59)
+ (17, 4, 27, 63), (17, 24, 27, 63)
+ (19, 13, 27, 63), (19, 25, 27, 63)
+ (20, 12, 23, 13), (20, 12, 23, 13)
+ (25, 12, 27, 63), (25, 33, 27, 63)
+ (26, 23, 27, 63), (26, 35, 27, 63)
+ (26, 23, 27, 63), (26, 35, 27, 63) ]
+
+
+[]
+let ``open statements``() =
+ """
+open M
+open N
+
+module M =
+ let x = 1
+
+ open M
+ open N
+
+ module M =
+ open M
+
+ let x = 1
+
+ module M =
+ open M
+ open N
+ let x = 1
+
+open M
+open N
+open H
+
+open G
+open H
+"""
+ => [ (1, 0, 26, 6), (1, 0, 26, 6)
+ (2, 5, 3, 6), (2, 5, 3, 6)
+ (5, 0, 19, 17), (5, 8, 19, 17)
+ (8, 9, 9, 10), (8, 9, 9, 10)
+ (11, 4, 14, 17), (11, 12, 14, 17)
+ (16, 4, 19, 17), (16, 12, 19, 17)
+ (17, 13, 18, 14), (17, 13, 18, 14)
+ (21, 5, 26, 6), (21, 5, 26, 6) ]
+
+[]
+let ``hash directives``() =
+ """
+#r @"a"
+#r "b"
+
+#r "c"
+
+#r "d"
+#r "e"
+let x = 1
+
+#r "f"
+#r "g"
+#load "x"
+#r "y"
+
+#load "a"
+ "b"
+ "c"
+
+#load "a"
+ "b"
+ "c"
+#r "d"
+"""
+ => [ (1, 0, 23, 6), (1, 0, 23, 6)
+ (2, 3, 8, 6), (2, 3, 8, 6)
+ (11, 3, 23, 6), (11, 3, 23, 6) ]
+
+[]
+let ``nested let bindings``() =
+ """
+let f x = // 2
+ let g x = // 3
+ let h = // 4
+ () // 5
+ () // 6
+ x // 7
+"""
+ => [ (1, 0, 8, 0), (1, 0, 8, 0)
+ (2, 0, 7, 5), (2, 7, 7, 5)
+ (2, 4, 7, 5), (2, 7, 7, 5)
+ (3, 8, 6, 10), (3, 11, 6, 10)
+ (4, 12, 5, 14), (4, 13, 5, 14) ]
+
+[]
+let ``match``() =
+ """
+match None with // 2
+| Some _ -> // 3
+ () // 4
+| None -> // 5
+ match None with // 6
+ | Some _ -> () // 7
+ | None -> // 8
+ let x = () // 9
+ () // 10
+"""
+ => [ (1, 0, 11, 0), (1, 0, 11, 0)
+ (2, 0, 10, 10), (2, 15, 10, 10)
+ (6, 4, 10, 10), (5, 6, 10, 10)
+ (6, 4, 10, 10), (6, 19, 10, 10)
+ (9, 8, 10, 10), (8, 10, 10, 10) ]
+
+[]
+let ``computation expressions``() =
+ """
+seq { // 2
+ yield () // 3
+ let f x = // 4
+ () // 5
+ yield! seq { // 6
+ yield () } // 7
+} // 8
+"""
+ => [ (1, 0, 8, 1), (1, 0, 8, 1)
+ (2, 0, 8, 1), (2, 5, 8, 0)
+ (4, 8, 5, 10), (4, 11, 5, 10)
+ (6, 4, 7, 18), (6, 4, 7, 18)
+ (6, 11, 7, 18), (6, 16, 7, 17) ]
+
+[]
+let ``list``() =
+ """
+let _ =
+ [ 1; 2
+ 3 ]
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 9), (2, 5, 4, 9)
+ (2, 4, 4, 9), (2, 5, 4, 9)
+ (3, 4, 4, 9), (3, 5, 4, 8) ]
+
+[]
+let ``object expressions``() =
+ """
+let _ =
+ { new System.IDisposable with
+ member __.Dispose() = () }
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 34), (2, 5, 4, 34)
+ (2, 4, 4, 34), (2, 5, 4, 34)
+ (3, 4, 4, 34), (3, 28, 4, 34) ]
+
+[]
+let ``try - with``() =
+ """
+try // 2
+ let f x = // 3
+ () // 4
+with _ -> // 5
+ let f x = // 6
+ () // 7
+ () // 8
+"""
+ => [ (1, 0, 9, 0), (1, 0, 9, 0)
+ (2, 0, 5, 0), (2, 3, 5, 0)
+ (2, 0, 8, 6), (2, 3, 8, 6)
+ (3, 8, 4, 10), (3, 11, 4, 10)
+ (5, 0, 8, 6), (5, 4, 8, 6)
+ (6, 4, 8, 6), (5, 6, 8, 6)
+ (6, 8, 7, 10), (6, 11, 7, 10) ]
+
+[]
+let ``try - finally``() =
+ """
+try // 2
+ let f x = // 3
+ () // 4
+finally // 5
+ let f x = // 6
+ () // 7
+ () // 8
+"""
+ => [ (1, 0, 9, 0), (1, 0, 9, 0)
+ (2, 0, 8, 6), (2, 3, 8, 6)
+ (3, 8, 4, 10), (3, 11, 4, 10)
+ (5, 0, 8, 6), (5, 7, 8, 6)
+ (6, 8, 7, 10), (6, 11, 7, 10) ]
+
+[]
+let ``if - then - else``() =
+ """
+if true then
+ let f x =
+ ()
+ ()
+else
+ let f x =
+ ()
+ ()
+"""
+ => [ (1, 0, 10, 0), (1, 0, 10, 0)
+ (2, 0, 9, 6), (2, 7, 9, 6)
+ (2, 8, 5, 6), (2, 12, 5, 6)
+ (3, 8, 4, 10), (3, 11, 4, 10)
+ (7, 8, 8, 10), (7, 11, 8, 10) ]
+
+[]
+let ``code quotation``() =
+ """
+<@
+ "code"
+ @>
+"""
+ => [ (1, 0, 4, 10), (1, 0, 4, 10)
+ (2, 0, 4, 10), (2, 2, 4, 8) ]
+
+[]
+let ``raw code quotation``() =
+ """
+<@@
+ "code"
+ @@>
+"""
+ => [ (1, 0, 4, 11), (1, 0, 4, 11)
+ (2, 0, 4, 11), (2, 3, 4, 8) ]
+
+[]
+let ``match lambda aka function``() =
+ """
+function
+| 0 -> ()
+ ()
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 10), (2, 8, 4, 10)
+ (3, 8, 4, 10), (3, 3, 4, 10) ]
+
+[]
+let ``match guarded clause``() =
+ """
+let matchwith num =
+ match num with
+ | 0 -> ()
+ ()
+"""
+ => [ (1, 0, 6, 0), (1, 0, 6, 0)
+ (2, 0, 5, 13), (2, 17, 5, 13)
+ (2, 4, 5, 13), (2, 17, 5, 13)
+ (3, 4, 5, 13), (3, 18, 5, 13)
+ (4, 11, 5, 13), (4, 7, 5, 13) ]
+
+[]
+let ``for loop``() =
+ """
+for x = 100 downto 10 do
+ ()
+ ()
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 6), (2, 0, 4, 6) ]
+
+[]
+let ``for each``() =
+ """
+for x in 0 .. 100 ->
+ ()
+ ()
+"""
+ => [ (1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 14), (2, 0, 4, 14)
+ (2, 18, 4, 14), (2, 18, 4, 14) ]
+
+[]
+let ``tuple``() =
+ """
+( 20340
+, 322
+, 123123 )
+"""
+ => [ (1, 0, 4, 10), (1, 0, 4, 10)
+ (2, 2, 4, 8), (2, 2, 4, 8) ]
+
+[]
+let ``do!``() =
+ """
+do!
+ printfn "allo"
+ printfn "allo"
+"""
+ => [(1, 0, 5, 0), (1, 0, 5, 0)
+ (2, 0, 4, 18), (2, 3, 4, 18)]
+
+[]
+let ``cexpr yield yield!``() =
+ """
+cexpr{
+ yield!
+ cexpr{
+ yield
+
+ 10
+ }
+ }
+"""
+ => [(1, 0, 9, 5), (1, 0, 9, 5)
+ (2, 0, 9, 5), (2, 6, 9, 4)
+ (3, 4, 8, 17), (3, 4, 8, 17)
+ (4, 8, 8, 17), (4, 14, 8, 16)
+ (5, 20, 7, 26), (5, 20, 7, 26)]
+
+[]
+let ``XML doc comments``() =
+ """
+/// Line 1
+/// Line 2
+module M =
+ /// Line 3
+ /// Line 4
+ type T() =
+ /// Line 5
+ /// Line 6
+ /// Line 7
+ let f x = x
+ /// Single line comment
+ let f x = x
+"""
+ => [ (1, 0, 14, 0), (1, 0, 14, 0)
+ (2, 0, 3, 10), (2, 0, 3, 10)
+ (4, 0, 13, 15), (4, 8, 13, 15)
+ (5, 4, 6, 14), (5, 4, 6, 14)
+ (7, 9, 11, 19), (7, 11, 11, 19)
+ (8, 8, 10, 18), (8, 8, 10, 18) ]
+
+[]
+let ``regular comments``() =
+ """
+// Line 1
+// Line 2
+module M =
+ // Line 3
+ // Line 4
+ type T() =
+ // Line 5
+ // Line 6
+ // Line 7
+ let f x = x
+ // Single line comment
+ let f x = x
+"""
+ => [ (1, 0, 14, 0), (1, 0, 14, 0)
+ (2, 0, 3, 9), (2, 0, 3, 9)
+ (4, 0, 13, 15), (4, 8, 13, 15)
+ (5, 4, 6, 13), (5, 4, 6, 13)
+ (7, 9, 11, 19), (7, 11, 11, 19)
+ (8, 8, 10, 17), (8, 8, 10, 17) ]
+
+[]
+let ``XML doc and regular comments in one block``() =
+ """
+// Line 1
+// Line 2
+/// Line 3
+/// Line 4
+// Line 5
+/// Line 6
+/// Line 7
+/// Line 8
+/// Line 9
+"""
+ => [ (1, 0, 11, 0), (1, 0, 11, 0)
+ (2, 0, 3, 9), (2, 0, 3, 9)
+ (4, 0, 5, 10), (4, 0, 5, 10)
+ (7, 0, 10, 10), (7, 0, 10, 10) ]
+
+[]
+let ``constructor call``() =
+ """
+module M =
+ let s =
+ new System.String(
+ 'c',
+ 1)
+"""
+ => [ (1, 0, 7, 0), (1, 0, 7, 0)
+ (2, 0, 6, 14), (2, 8, 6, 14)
+ (3, 4, 6, 14), (3, 9, 6, 14)
+ (3, 8, 6, 14), (3, 9, 6, 14)
+ (4, 8, 6, 14), (4, 25, 6, 14)
+ (5, 12, 6, 13), (5, 12, 6, 13) ]
diff --git a/tests/service/data/CSharp_Analysis/CSharp_Analysis.csproj b/tests/service/data/CSharp_Analysis/CSharp_Analysis.csproj
index cfd59b04c..4f88e4a78 100644
--- a/tests/service/data/CSharp_Analysis/CSharp_Analysis.csproj
+++ b/tests/service/data/CSharp_Analysis/CSharp_Analysis.csproj
@@ -48,7 +48,7 @@
- ..\..\..\..\packages\NUnit\lib\nunit.framework.dll
+ ..\..\..\..\packages\NUnit.3.5.0\lib\net45\nunit.framework.dllTrueTrue
diff --git a/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj b/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj
index c103e8868..3c4dd3e74 100644
--- a/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj
+++ b/vsintegration/Utils/LanguageServiceProfiling/LanguageServiceProfiling.fsproj
@@ -71,6 +71,10 @@
FSharp.Compiler.PrivateTrue
-
+
+ $(FSharpSourcesRoot)\..\packages\System.ValueTuple.4.3.1\lib\netstandard1.0\System.ValueTuple.dll
+ true
+
+
\ No newline at end of file
diff --git a/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj b/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
index d005d4854..e01497c76 100644
--- a/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
+++ b/vsintegration/Vsix/VisualFSharpFull/VisualFSharpFull.csproj
@@ -57,6 +57,8 @@
csfalse
+
+ Program$(DevEnvDir)devenv.exe
diff --git a/vsintegration/Vsix/VisualFSharpOpenSource/VisualFSharpOpenSource.csproj b/vsintegration/Vsix/VisualFSharpOpenSource/VisualFSharpOpenSource.csproj
index 4235ac751..1845d75fa 100644
--- a/vsintegration/Vsix/VisualFSharpOpenSource/VisualFSharpOpenSource.csproj
+++ b/vsintegration/Vsix/VisualFSharpOpenSource/VisualFSharpOpenSource.csproj
@@ -45,8 +45,8 @@
PropertiesRoslynDevtrue
- False
- True
+ True
+ False{E6A45CDF-B408-420F-B475-74611BEFC52B}trueVisualFSharpOpenSource
@@ -56,6 +56,8 @@
15.4.1.0cs
+
+ Program$(DevEnvDir)devenv.exe
@@ -292,8 +294,8 @@
False$(FSharpSourcesRoot)\..\packages\Newtonsoft.Json.10.0.2\lib\net45\Newtonsoft.Json.dll
-
- $(FSharpSourcesRoot)\..\packages\System.Collections.Immutable.1.3.1\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
+
+ $(FSharpSourcesRoot)\..\packages\System.Collections.Immutable.$(SystemCollectionsImmutableVersion)\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
diff --git a/vsintegration/packages.config b/vsintegration/packages.config
index 4c4a2508b..0fdfec0de 100644
--- a/vsintegration/packages.config
+++ b/vsintegration/packages.config
@@ -5,6 +5,7 @@
+
@@ -23,6 +24,7 @@
+
@@ -60,7 +62,7 @@
-
+
diff --git a/vsintegration/readme.md b/vsintegration/readme.md
index 1ad76b039..4f929238b 100644
--- a/vsintegration/readme.md
+++ b/vsintegration/readme.md
@@ -1,49 +1,57 @@
-This folder contains projects and tests related to Visual Studio tooling and IDE independant language service
+This folder contains projects and tests related to Visual Studio tooling.
# src/FSharp.Editor
-main project for Visual F# tooling
+Top-level project for the Visual F# IDE tools. This project contains the following
+
+* Interfaces which implement Roslyn workspace APIs
+* Top-level interactions with the F# Compiler Service
+* Logic for handling data in the F# Compiler Service
+* Helpers for interacting with Roslyn APIs
+* Various utilities
+
+In general, if something is implemented here and the logic becomes rather lengthy, it may be a good idea to push that logic down into the F# Compiler Service so that other editors can benefit.
# src/FSharp.UIResources
-GUI controls and resources for Visual F# tooling
+GUI controls and resources for Visual F# tooling.
# src/FSharp.LanguageService
-legacy bits (before roslyn workspace)
+Legacy bindings to the F# Compiler Service. Most of the code paths here are dead, and exist mainly to allow our test suite to extensively test the F# Compiler Service.
# src/FSharp.LanguageService.Base
-legacy bits (before roslyn workspace)
+Legacy bits for a base-level, editor-agnostic language service. This code isn't used anywhere else, though.
# src/FSharp.ProjectSystem.Base
-to be documented
+Legacy bindings to the legacy (and unsupported) MPF project system type in Visual Studio. This code will eventually be deprecated.
# src/FSharp.ProjectSystem.FSharp
-to be documented
+Legacy project system to handle F# projects targeting the .NET Framework, with some code paths also handling .NET Core. The latter will eventually be factored out, as this code will eventually be deprecated.
# src/FSharp.ProjectSystem.PropertyPages
-GUI for F# project properties
+GUI for F# project properties.
# tests/Salsa
-Tooling for IDE unit tests
+Legacy tooling for IDE unit tests. Used extensively in tests, hence it still exists.
# tests/unittests
-IDE unit tests
+IDE unit tests. Some code paths go through bits which aren't ever executed when _using_ F# in Visual Studio, but they do extensively test the F# Compiler Service.
# utils/LanguageServiceProfiling
-A skeleton command line tool which exercises language service
+A skeleton command line tool which exercises the F# Compiler Service.
# ItemTemplates
-Visual Studio item templates for F# projects
+Visual Studio item templates for F# projects.
# ProjectTemplates
-Visual Studio project templates
\ No newline at end of file
+Visual Studio project templates for .NET Framework projects.
diff --git a/vsintegration/src/FSharp.Editor/Common/Constants.fs b/vsintegration/src/FSharp.Editor/Common/Constants.fs
index 9cb35cc2c..be4f0b37e 100644
--- a/vsintegration/src/FSharp.Editor/Common/Constants.fs
+++ b/vsintegration/src/FSharp.Editor/Common/Constants.fs
@@ -18,10 +18,6 @@ module internal FSharpConstants =
/// "BC6DD5A5-D4D6-4dab-A00D-A51242DBAF1B"
let languageServiceGuidString = "BC6DD5A5-D4D6-4dab-A00D-A51242DBAF1B"
- []
- /// "4EB7CCB7-4336-4FFD-B12B-396E9FD079A9"
- let editorFactoryGuidString = "4EB7CCB7-4336-4FFD-B12B-396E9FD079A9"
-
[]
/// "F#"
let FSharpLanguageName = "F#"
diff --git a/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj b/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
index 69f96f5b4..50481eb15 100644
--- a/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
+++ b/vsintegration/src/FSharp.Editor/FSharp.Editor.fsproj
@@ -202,7 +202,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.ComponentModelHost.15.0.26201-alpha\lib\net46\Microsoft.VisualStudio.ComponentModelHost.dll
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
diff --git a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs
index 4e7757eb5..a3f8bc4de 100644
--- a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs
+++ b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs
@@ -315,12 +315,6 @@ type
[, ".fsscript")>]
[, ".ml")>]
[, ".mli")>]
- []
- []
- []
- []
- []
- []
internal FSharpLanguageService(package : FSharpPackage) =
inherit AbstractLanguageService(package)
diff --git a/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj b/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
index bd8918464..25fc0ea84 100644
--- a/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
+++ b/vsintegration/src/FSharp.LanguageService.Base/FSharp.LanguageService.Base.csproj
@@ -39,6 +39,14 @@
truetrue
+
+
+ $(FSharpSourcesRoot)\..\loc\lcl\{Lang}\$(AssemblyName).dll.lcl
+ $(FSharpSourcesRoot)\..\loc\lci\$(AssemblyName).dll.lci
+ false
+ false
+
+
@@ -48,7 +56,9 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
-
+
+ $(FSharpSourcesRoot)\..\packages\Microsoft.MSXML.8.0.0-alpha\lib\net46\microsoft.msxml.dll
+
diff --git a/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj b/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
index 92df4db1f..794c90261 100644
--- a/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
+++ b/vsintegration/src/FSharp.LanguageService/FSharp.LanguageService.fsproj
@@ -94,7 +94,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Framework.dll
- $(FSharpSourcesRoot)\..\EnvDTE.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE.8.0.1\lib\net10\EnvDTE.dllTrue
@@ -110,7 +110,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/FSharpEditorFactory.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/FSharpEditorFactory.cs
index 920a8b4d6..3d938fa18 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/FSharpEditorFactory.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/FSharpEditorFactory.cs
@@ -16,12 +16,15 @@ using IOleServiceProvider = Microsoft.VisualStudio.OLE.Interop.IServiceProvider;
namespace Microsoft.VisualStudio.FSharp.ProjectSystem
{
+ // 64 represents a hex number. It needs to be greater than 37 so the TextMate editor will not be chosen as higher priority.
[Guid(Constants.FSharpEditorFactoryIdString)]
[ProvideEditorFactory(typeof(FSharpEditorFactory), 101, CommonPhysicalViewAttributes = (int)__VSPHYSICALVIEWATTRIBUTES.PVA_SupportsPreview)]
- [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fs", 32)]
- [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsi", 32)]
- [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsscript", 32)]
- [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsx", 32)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fs", 64)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsi", 64)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsscript", 64)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".fsx", 64)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".ml", 64)]
+ [ProvideEditorExtension(typeof(FSharpEditorFactory), ".mli", 64)]
public class FSharpEditorFactory : IVsEditorFactory
{
private Package _parentPackage;
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
index e6f28af66..cb21cf8f9 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectNode.cs
@@ -306,7 +306,8 @@ namespace Microsoft.VisualStudio.FSharp.ProjectSystem
IReferenceContainerProvider,
IVsProjectSpecialFiles,
IVsDesignTimeAssemblyResolution,
- IVsProjectUpgrade
+ IVsProjectUpgrade,
+ IVsSupportItemHandoff
{
///
/// This class stores mapping from ids -> objects. Uses as a replacement of EventSinkCollection (ESC)
@@ -5398,10 +5399,6 @@ namespace Microsoft.VisualStudio.FSharp.ProjectSystem
if (oldMkDoc == null || newMkDoc == null)
return VSConstants.E_INVALIDARG;
- // Fail if the document names passed are equal.
- if (oldMkDoc == newMkDoc)
- return VSConstants.E_INVALIDARG;
-
int hr = VSConstants.S_OK;
VSDOCUMENTPRIORITY[] priority = new VSDOCUMENTPRIORITY[1];
uint itemid = VSConstants.VSITEMID_NIL;
@@ -6614,6 +6611,16 @@ namespace Microsoft.VisualStudio.FSharp.ProjectSystem
}
return hierarchy;
}
+
+ public int HandoffItem(uint itemid, IVsProject3 pProjDest, string pszMkDocumentOld, string pszMkDocumentNew, IVsWindowFrame punkWindowFrame)
+ {
+ if (pProjDest == null)
+ {
+ return VSConstants.E_POINTER;
+ }
+
+ return pProjDest.TransferItem(pszMkDocumentOld, pszMkDocumentNew, punkWindowFrame);
+ }
}
internal enum AddItemContext
{
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectReferenceNode.cs b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectReferenceNode.cs
index eea153ed4..5223caa3f 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectReferenceNode.cs
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectReferenceNode.cs
@@ -145,22 +145,6 @@ namespace Microsoft.VisualStudio.FSharp.ProjectSystem
get { return this.referencedProjectName; }
}
- // This method throws FileNotFoundException if VC is not installed
- private static void CheckVCProjectMatchesPath(object prjObj, string goalPath, out bool isVCProject, out bool matches)
- {
- matches = false;
- var vcProject = prjObj as Microsoft.VisualStudio.VCProjectEngine.VCProject;
- isVCProject = vcProject != null;
- if (isVCProject)
- {
- var projectFilePath = vcProject.ProjectFile;
- if (NativeMethods.IsSamePath(projectFilePath, goalPath))
- {
- matches = true;
- }
- }
- }
-
private void InitReferencedProject(IVsSolution solution)
{
IVsHierarchy hier;
@@ -183,27 +167,6 @@ namespace Microsoft.VisualStudio.FSharp.ProjectSystem
return;
}
- // do things differently for C++
- try
- {
- bool isVCProject;
- bool itMatches;
- CheckVCProjectMatchesPath(prj.Object, this.referencedProjectFullPath, out isVCProject, out itMatches);
- if (itMatches)
- {
- this.referencedProject = prj;
- return;
- }
- if (isVCProject)
- {
- return;
- }
- }
- catch (System.IO.FileNotFoundException)
- {
- // ignore it - VC might not be installed
- }
-
// Get the full path of the current project.
EnvDTE.Property pathProperty = null;
try
diff --git a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
index 728616780..80e39d088 100644
--- a/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
+++ b/vsintegration/src/FSharp.ProjectSystem.Base/Project/ProjectSystem.Base.csproj
@@ -37,13 +37,6 @@
Microsoft.VisualStudio.FSharp.ProjectSystem
-
- true
- $(FSharpSourcesRoot)\fsharp\msft.pubkey
- STRONG_NAME_AND_DELAY_SIGN_FSHARP_COMPILER_WITH_MSFT_KEY;$(DefineConstants)
- true
- true
-
@@ -57,7 +50,6 @@
-
@@ -76,7 +68,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Conversion.Core.dll
- $(FSharpSourcesRoot)\..\EnvDTE.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE.8.0.1\lib\net10\EnvDTE.dllTrue
@@ -108,7 +100,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.ComponentModelHost.15.0.26201-alpha\lib\net46\Microsoft.VisualStudio.ComponentModelHost.dll
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
@@ -140,7 +132,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.11.0.61030\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Shell.Interop.12.0.12.0.30110\lib\Microsoft.VisualStudio.Shell.Interop.12.0.dllTrue
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/MenusAndCommands.vsct b/vsintegration/src/FSharp.ProjectSystem.FSharp/MenusAndCommands.vsct
index 4c8b154c9..5ec9f586d 100644
--- a/vsintegration/src/FSharp.ProjectSystem.FSharp/MenusAndCommands.vsct
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/MenusAndCommands.vsct
@@ -344,7 +344,6 @@
-
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/Project.fs b/vsintegration/src/FSharp.ProjectSystem.FSharp/Project.fs
index 1a4732cf1..9e91f0c05 100644
--- a/vsintegration/src/FSharp.ProjectSystem.FSharp/Project.fs
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/Project.fs
@@ -1290,8 +1290,7 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
let result = base.InvokeMsBuild(target, extraProperties)
result
- // Fulfill HostObject contract with Fsc task, and enable 'capture' of compiler flags for the project.
- member x.Compile(compile:System.Converter, flags:string[], sources:string[]) =
+ member x.CoreCompile(flags:string[], sources:string[]) =
// Note: This method may be called from non-UI thread! The Fsc task in FSharp.Build.dll invokes this method via reflection, and
// the Fsc task is typically created by MSBuild on a background thread. So be careful.
#if DEBUG
@@ -1306,11 +1305,26 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
if projectSite.State = ProjectSiteOptionLifetimeState.Opening then
// This is the first time, so set up interface for language service to talk to us
projectSite.Open(x.CreateRunningProjectSite())
+
+ // =====================================================================================================
+ // Todo: x.Compile(compile:System.Converter, flags:string[], sources:string[]) for VS2017.7
+ // Earlier buildtasks usesd System.Converter for cross platform we are moving to Func
+ // This is so that during the interim, earlier VS's will still load the OSS project
+ // =====================================================================================================
+ member x.Compile(compile:System.Converter, flags:string[], sources:string[]) =
+ x.CoreCompile(flags, sources)
if actuallyBuild then
compile.Invoke(0)
else
0
+ member x.Compile(compile:Func, flags:string[], sources:string[]) =
+ x.CoreCompile(flags, sources)
+ if actuallyBuild then
+ compile.Invoke()
+ else
+ 0
+
member __.CompilationSourceFiles = match sourcesAndFlags with None -> [| |] | Some (sources,_) -> sources
member __.CompilationOptions = match sourcesAndFlags with None -> [| |] | Some (_,flags) -> flags
member __.CompilationReferences = match normalizedRefs with None -> [| |] | Some refs -> refs
@@ -1579,7 +1593,7 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
// in the registry hive so that more editors can be added without changing this part of the
// code. FSharp only makes usage of one Editor Factory and therefore we will return
// that guid
- guidEditorType <- new Guid(FSharpConstants.editorFactoryGuidString)
+ guidEditorType <- new Guid(Constants.FSharpEditorFactoryIdString)
VSConstants.S_OK
interface IVsProjectSpecificEditorMap2 with
@@ -1593,7 +1607,7 @@ namespace rec Microsoft.VisualStudio.FSharp.ProjectSystem
// in the registry hive so that more editors can be added without changing this part of the
// code. FSharp only makes usage of one Editor Factory and therefore we will return
// that guid
- guidEditorType <- new Guid(FSharpConstants.editorFactoryGuidString)
+ guidEditorType <- new Guid(Constants.FSharpEditorFactoryIdString)
VSConstants.S_OK
member x.GetSpecificLanguageService(_mkDocument:string, guidLanguageService:byref ) =
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectResources.rc b/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectResources.rc
deleted file mode 100644
index c205f665b..000000000
--- a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectResources.rc
+++ /dev/null
@@ -1,12 +0,0 @@
-// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
-
-// Note that, regardless of what numbers are given here, the wix code (src\wix\script.fs) that references these uses 'IconIndex' starting at 0
-#define FS 100
-#define FSI 101
-#define FSX 102
-#define FSPROJ 103
-// Note that these are not always the same as the .bmp that appears in Solution Explorer, but we think these are best for 'windows folder' for now
-FS ICON "Resources\FSharpCodeFile_32.ico"
-FSI ICON "Resources\FSharpSignature.ico"
-FSX ICON "Resources\FSharpScript.ico"
-FSPROJ ICON "Resources\FSharpAboutBox.ico"
diff --git a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj b/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
index 6f690f9f7..707d80b07 100644
--- a/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
+++ b/vsintegration/src/FSharp.ProjectSystem.FSharp/ProjectSystem.fsproj
@@ -7,6 +7,8 @@
FSharp
+
+
$(VsSDKTools)Debug
@@ -21,7 +23,6 @@
v4.6$(OtherFlags) --warnon:1182 --subsystemversion:6.00false
- ProjectResources.rctruefalsefalse
@@ -39,15 +40,6 @@
-
- $(IntermediateOutputPath)\ProjectResources.rc.res
-
-
-
-
-
-
-
@@ -104,7 +96,7 @@
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.DebuggerVisualizers.12.0.4\lib\net20\Microsoft.VisualStudio.DebuggerVisualizers.dll
+ $(FSharpSourcesRoot)\..\packages\VSSDK.DebuggerVisualizers.12.0.4\lib\net20\Microsoft.VisualStudio.DebuggerVisualizers.dllTrue
@@ -112,7 +104,7 @@
True
- $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE80.dllTrue
@@ -124,7 +116,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
@@ -207,7 +199,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Shell.$(RoslynVSBinariesVersion).$(RoslynVSPackagesVersion)\lib\Microsoft.VisualStudio.Shell.$(RoslynVSBinariesVersion).dll
-
+ $(FSharpSourcesRoot)\..\packages\System.Collections.Immutable.$(SystemCollectionsImmutableVersion)\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dll
@@ -250,4 +242,6 @@
FSharp.Core
+
+
\ No newline at end of file
diff --git a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
index 2efeb1795..ae2765023 100644
--- a/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
+++ b/vsintegration/src/FSharp.ProjectSystem.PropertyPages/FSharp.PropertiesPages.vbproj
@@ -48,6 +48,14 @@
truetrue
+
+
+ $(FSharpSourcesRoot)\..\loc\lcl\{Lang}\$(AssemblyName).dll.lcl
+ $(FSharpSourcesRoot)\..\loc\lci\$(AssemblyName).dll.lci
+ false
+ false
+
+
@@ -103,11 +111,11 @@
True
- $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE80.dllTrue
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
diff --git a/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj b/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
index 5d2c97c04..a4173a6f8 100644
--- a/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
+++ b/vsintegration/src/FSharp.UIResources/FSharp.UIResources.csproj
@@ -30,6 +30,14 @@
truetrue
+
+
+ $(FSharpSourcesRoot)\..\loc\lcl\{Lang}\$(AssemblyName).dll.lcl
+ $(FSharpSourcesRoot)\..\loc\lci\$(AssemblyName).dll.lci
+ false
+ false
+
+
diff --git a/vsintegration/src/FSharp.VS.FSI/FSHarp.VS.FSI.fsproj b/vsintegration/src/FSharp.VS.FSI/FSHarp.VS.FSI.fsproj
index f24747d00..079cbe80b 100644
--- a/vsintegration/src/FSharp.VS.FSI/FSHarp.VS.FSI.fsproj
+++ b/vsintegration/src/FSharp.VS.FSI/FSHarp.VS.FSI.fsproj
@@ -95,7 +95,7 @@
- $(FSharpSourcesRoot)\..\EnvDTE.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE.8.0.1\lib\net10\EnvDTE.dllTrue
@@ -111,7 +111,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
@@ -166,7 +166,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.TextManager.Interop.10.0.30319\lib\Microsoft.VisualStudio.TextManager.Interop.10.0.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.TextManager.Interop.10.0.10.0.30319\lib\Microsoft.VisualStudio.TextManager.Interop.10.0.dllTrue
diff --git a/vsintegration/src/fsharp.tools.targets b/vsintegration/src/fsharp.tools.targets
index 7c636f699..6ef78a701 100644
--- a/vsintegration/src/fsharp.tools.targets
+++ b/vsintegration/src/fsharp.tools.targets
@@ -6,6 +6,8 @@
+
+
diff --git a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
index 057165e8b..2bd608e43 100644
--- a/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
+++ b/vsintegration/tests/Salsa/VisualFSharp.Salsa.fsproj
@@ -61,7 +61,7 @@
True
- $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE80.8.0.1\lib\net10\EnvDTE80.dllTrue
@@ -73,7 +73,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
@@ -127,7 +127,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Telemetry.15.0.777-rtm6FAA2C78\lib\net45\Microsoft.VisualStudio.Telemetry.dllTrue
-
+ $(FSharpSourcesRoot)\..\packages\VSSDK.VSHelp.7.0.4\lib\net20\Microsoft.VisualStudio.VSHelp.dllTrue
@@ -162,6 +162,10 @@
True$(NUnitLibDir)\nunit.framework.dll
+
+ $(FSharpSourcesRoot)\..\packages\System.ValueTuple.4.3.1\lib\netstandard1.0\System.ValueTuple.dll
+ true
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}FSharp.Core
diff --git a/vsintegration/tests/Salsa/salsa.fs b/vsintegration/tests/Salsa/salsa.fs
index 7ca1f8aed..e2f0c17ab 100644
--- a/vsintegration/tests/Salsa/salsa.fs
+++ b/vsintegration/tests/Salsa/salsa.fs
@@ -93,9 +93,10 @@ module internal Salsa =
| null ->
let project = GlobalEngine().LoadProject(projectFileName)
// Set global properties.
- SetGlobalProperty(project,"BuildingInsideVisualStudio", "true")
- SetGlobalProperty(project,"Configuration", configuration)
- SetGlobalProperty(project,"Platform", platform)
+ SetGlobalProperty(project, "AssemblySearchPaths", "{HintPathFromItem};{TargetFrameworkDirectory};{RawFileName}")
+ SetGlobalProperty(project, "BuildingInsideVisualStudio", "true")
+ SetGlobalProperty(project, "Configuration", configuration)
+ SetGlobalProperty(project, "Platform", platform)
let prjColl = project.ProjectCollection
let hostSvc = prjColl.HostServices
let theHostObject = HostCompile()
@@ -109,7 +110,7 @@ module internal Salsa =
| false, _ ->
project, false, Unchecked.defaultof<_> // this code path is hit when unit-testing the project system, which uses its own HostObject
with e->
- printfn "Failed in MSBuild GetProject getting '%s'.\n" projectFileName
+ printfn "Failed in MSBuild GetProject getting '%s'.\n" projectFileName
raise e
project, justCreated, theHostObject
diff --git a/vsintegration/tests/unittests/CompletionProviderTests.fs b/vsintegration/tests/unittests/CompletionProviderTests.fs
index e34ed22f0..1fdd57d90 100644
--- a/vsintegration/tests/unittests/CompletionProviderTests.fs
+++ b/vsintegration/tests/unittests/CompletionProviderTests.fs
@@ -49,6 +49,9 @@ let internal projectOptions = {
Stamp = None
}
+let formatCompletions(completions : string seq) =
+ "\n\t" + String.Join("\n\t", completions)
+
let VerifyCompletionList(fileContents: string, marker: string, expected: string list, unexpected: string list) =
let caretPosition = fileContents.IndexOf(marker) + marker.Length
let results =
@@ -57,11 +60,44 @@ let VerifyCompletionList(fileContents: string, marker: string, expected: string
|> Option.defaultValue (ResizeArray())
|> Seq.map(fun result -> result.DisplayText)
- for item in expected do
- Assert.IsTrue(results.Contains(item), sprintf "Completions should contain '%s'. Got '%s'." item (String.Join(", ", results)))
+ let expectedFound =
+ expected
+ |> Seq.filter results.Contains
- for item in unexpected do
- Assert.IsFalse(results.Contains(item), sprintf "Completions should not contain '%s'. Got '{%s}'" item (String.Join(", ", results)))
+ let expectedNotFound =
+ expected
+ |> Seq.filter (expectedFound.Contains >> not)
+
+ let unexpectedNotFound =
+ unexpected
+ |> Seq.filter (results.Contains >> not)
+
+ let unexpectedFound =
+ unexpected
+ |> Seq.filter (unexpectedNotFound.Contains >> not)
+
+ // If either of these are true, then the test fails.
+ let hasExpectedNotFound = not (Seq.isEmpty expectedNotFound)
+ let hasUnexpectedFound = not (Seq.isEmpty unexpectedFound)
+
+ if hasExpectedNotFound || hasUnexpectedFound then
+ let expectedNotFoundMsg =
+ if hasExpectedNotFound then
+ sprintf "\nExpected completions not found:%s\n" (formatCompletions expectedNotFound)
+ else
+ String.Empty
+
+ let unexpectedFoundMsg =
+ if hasUnexpectedFound then
+ sprintf "\nUnexpected completions found:%s\n" (formatCompletions unexpectedFound)
+ else
+ String.Empty
+
+ let completionsMsg = sprintf "\nin Completions:%s" (formatCompletions results)
+
+ let msg = sprintf "%s%s%s" expectedNotFoundMsg unexpectedFoundMsg completionsMsg
+
+ Assert.Fail(msg)
let VerifyCompletionListExactly(fileContents: string, marker: string, expected: string list) =
let caretPosition = fileContents.IndexOf(marker) + marker.Length
@@ -259,6 +295,52 @@ x.
"ToArray"; "ToString"; "TrimExcess"; "TrueForAll"]
VerifyCompletionListExactly(fileContents, "x.", expected)
+[]
+let ``Constructing a new class with object initializer syntax``() =
+ let fileContents = """
+type A() =
+ member val SettableProperty = 1 with get, set
+ member val AnotherSettableProperty = 1 with get, set
+ member val NonSettableProperty = 1
+
+let _ = new A(Setta
+"""
+
+ let expected = ["SettableProperty"; "AnotherSettableProperty"]
+ let notExpected = ["NonSettableProperty"]
+ VerifyCompletionList(fileContents, "(Setta", expected, notExpected)
+
+[]
+let ``Constructing a new class with object initializer syntax and verifying 'at' character doesn't exist.``() =
+ let fileContents = """
+type A() =
+ member val SettableProperty = 1 with get, set
+ member val AnotherSettableProperty = 1 with get, set
+ member val NonSettableProperty = 1
+
+let _ = new A(Setta
+"""
+
+ let expected = []
+ let notExpected = ["SettableProperty@"; "AnotherSettableProperty@"; "NonSettableProperty@"]
+ VerifyCompletionList(fileContents, "(Setta", expected, notExpected)
+
+[]
+let ``Constructing a new fully qualified class with object initializer syntax``() =
+ let fileContents = """
+module M =
+ type A() =
+ member val SettableProperty = 1 with get, set
+ member val AnotherSettableProperty = 1 with get, set
+ member val NonSettableProperty = 1
+
+let _ = new M.A(Setta
+"""
+
+ let expected = ["SettableProperty"; "AnotherSettableProperty"]
+ let notExpected = ["NonSettableProperty"]
+ VerifyCompletionList(fileContents, "(Setta", expected, notExpected)
+
[]
let ``Extension methods go after everything else, extension properties are treated as normal ones``() =
let fileContents = """
diff --git a/vsintegration/tests/unittests/Tests.Build.fs b/vsintegration/tests/unittests/Tests.Build.fs
index e5bbddc16..22faaef01 100644
--- a/vsintegration/tests/unittests/Tests.Build.fs
+++ b/vsintegration/tests/unittests/Tests.Build.fs
@@ -336,21 +336,6 @@ type Build() =
"--highentropyva-" + Environment.NewLine)
cmd
- []
- member public this.TestPlatform2() =
- let tool = new Microsoft.FSharp.Build.Fsc()
- tool.Platform <- "itanium"
- AssertEqual "itanium" tool.Platform
- let cmd = tool.InternalGenerateResponseFileCommands()
- printfn "cmd=\"%s\"" cmd
- AssertEqual ("--optimize+" + Environment.NewLine +
- "--platform:Itanium" + Environment.NewLine +
- "--warnaserror:76" + Environment.NewLine +
- "--fullpaths" + Environment.NewLine +
- "--flaterrors" + Environment.NewLine +
- "--highentropyva-" + Environment.NewLine)
- cmd
-
[]
member public this.TestPlatform3() =
let tool = new Microsoft.FSharp.Build.Fsc()
diff --git a/vsintegration/tests/unittests/Tests.LanguageService.Completion.fs b/vsintegration/tests/unittests/Tests.LanguageService.Completion.fs
index 88d22ecb2..6550016be 100644
--- a/vsintegration/tests/unittests/Tests.LanguageService.Completion.fs
+++ b/vsintegration/tests/unittests/Tests.LanguageService.Completion.fs
@@ -596,7 +596,6 @@ a.
AssertCtrlSpaceCompleteContains (typeDef3 @ ["new M.A((**))"]) "A((**)" ["SettableProperty"; "AnotherSettableProperty"] ["NonSettableProperty"]
AssertCtrlSpaceCompleteContains (typeDef3 @ ["new M.A(S = 1)"]) "A(S" ["SettableProperty"] ["NonSettableProperty"]
AssertCtrlSpaceCompleteContains (typeDef3 @ ["new M.A(S = 1)"]) "A(S = 1" [] ["NonSettableProperty"; "SettableProperty"] // neg test
- AssertCtrlSpaceCompleteContains (typeDef3 @ ["new M.A(S = 1,)"]) "A(S = 1," ["AnotherSettableProperty"] ["NonSettableProperty"]
let typeDef4 =
[
@@ -6064,7 +6063,7 @@ let rec f l =
let f (x:MyNamespace1.MyModule(*Maftervariable4*)) = 10
let y = int System.IO(*Maftervariable5*)""",
marker = "(*Maftervariable4*)",
- list = ["DuType";"Tag"])
+ list = ["DuType"])
[]
member this.``VariableIdentifier.SystemNamespace``() =
diff --git a/vsintegration/tests/unittests/Tests.ProjectSystem.Miscellaneous.fs b/vsintegration/tests/unittests/Tests.ProjectSystem.Miscellaneous.fs
index a90f9d286..361f6569b 100644
--- a/vsintegration/tests/unittests/Tests.ProjectSystem.Miscellaneous.fs
+++ b/vsintegration/tests/unittests/Tests.ProjectSystem.Miscellaneous.fs
@@ -630,41 +630,6 @@ type Miscellaneous() =
project.Close() |> ignore
)
-
-module Regression5312 =
- // Regression testing ICONS in project system dll
- open System
- open System.Drawing
- open System.Runtime.InteropServices
- []
- extern int32 ExtractIconEx(string szFileName, int nIconIndex,IntPtr[] phiconLarge, IntPtr[] phiconSmall,uint32 nIcons)
-
- []
- extern int DestroyIcon(IntPtr hIcon)
-
- let extractIcon (path:string) (large:bool) =
- let n = 10
- let hIconLarge = Array.create n IntPtr.Zero
- let hIconSmall = Array.create n IntPtr.Zero
- try
- let readIconCount = ExtractIconEx(path,0,hIconLarge,hIconSmall,uint32 n)
- if readIconCount > 0 then
- if large then
- Array.init readIconCount (fun i -> Icon.FromHandle(hIconLarge.[0]).Clone() :?> Icon)
- else
- Array.init readIconCount (fun i -> Icon.FromHandle(hIconSmall.[0]).Clone() :?> Icon)
- else
- [| |]
- finally
- hIconLarge |> Array.iter (fun ptr -> if ptr <> IntPtr.Zero then DestroyIcon ptr |> ignore)
- hIconSmall |> Array.iter (fun ptr -> if ptr <> IntPtr.Zero then DestroyIcon ptr |> ignore)
-
- /// Given path to FSharp.Project.FSharpProject.dll, check the icons are present.
- /// Throws of failure.
- let checkIcons nExpected (path:string) =
- let icons = extractIcon path true
- if icons.Length<>nExpected then failwithf "Expected %d icons in %s" nExpected path // "
-
[]
type Utilities() =
(*
@@ -745,13 +710,6 @@ type Utilities() =
[]
member public this.``PublicKeyToken.0a00000000000001``() = CheckPublicKeyToString([|0xauy;0uy;0uy;0uy;0uy;0uy;0uy;1uy|], "0a00000000000001")
- []
- member public this.``CheckIconsInProjectSystemDLL_Regression5312``() =
- let path = typeof.Assembly.Location
- Regression5312.checkIcons 4 path
- ()
-
-
[]
member public this.``Parse MSBuild property of type Int64`` () =
Assert.AreEqual(123L, ProjectNode.ParsePropertyValueToInt64("123"))
diff --git a/vsintegration/tests/unittests/UnusedOpensTests.fs b/vsintegration/tests/unittests/UnusedOpensTests.fs
index bb64f920f..f932ff261 100644
--- a/vsintegration/tests/unittests/UnusedOpensTests.fs
+++ b/vsintegration/tests/unittests/UnusedOpensTests.fs
@@ -371,6 +371,21 @@ let _ = func()
"""
=> []
+[]
+let ``auto open module with namespace``() =
+ """
+namespace Module1Namespace
+[]
+module Module1 =
+ module Module2 =
+ let x = 1
+namespace ConsumerNamespace
+open Module1Namespace
+module Module3 =
+ let y = Module2.x
+"""
+ => []
+
[]
let ``auto open module in the middle of hierarchy``() =
"""
@@ -723,3 +738,17 @@ module Test =
let xs = []
"""
=> [ 2, (5, 16) ]
+
+[]
+let ``a type from an auto open module is taken into account``() =
+ """
+module M1 =
+ []
+ module AutoOpened =
+ type T() = class end
+
+module M2 =
+ open M1
+ let _ = T()
+"""
+ => []
diff --git a/vsintegration/tests/unittests/VisualFSharp.Unittests.dll.config b/vsintegration/tests/unittests/VisualFSharp.Unittests.dll.config
index 7f55b7d12..7aae3905c 100644
--- a/vsintegration/tests/unittests/VisualFSharp.Unittests.dll.config
+++ b/vsintegration/tests/unittests/VisualFSharp.Unittests.dll.config
@@ -49,7 +49,7 @@
-
+
diff --git a/vsintegration/tests/unittests/VisualFSharp.Unittests.fsproj b/vsintegration/tests/unittests/VisualFSharp.Unittests.fsproj
index 177beb3bb..e590ef702 100644
--- a/vsintegration/tests/unittests/VisualFSharp.Unittests.fsproj
+++ b/vsintegration/tests/unittests/VisualFSharp.Unittests.fsproj
@@ -17,7 +17,6 @@
58;75x86v4.6
- EXTENSIONTYPING;$(DefineConstants)NO_PROJECTCRACKER;$(DefineConstants)
@@ -92,6 +91,9 @@
ProjectOptionsTests.fs
+
+ StructureTests.fs
+
ServiceAnalysis\UnusedOpensTests.fs
@@ -175,7 +177,7 @@
$(FSharpSourcesRoot)\..\packages\Microsoft.VisualFSharp.Msbuild.15.0.1.0.1\lib\net45\Microsoft.Build.Tasks.Core.dll
- $(FSharpSourcesRoot)\..\EnvDTE.8.0.1\lib\net10\EnvDTE.dll
+ $(FSharpSourcesRoot)\..\packages\EnvDTE.8.0.1\lib\net10\EnvDTE.dllTrue
@@ -191,7 +193,7 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interops.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.OLE.Interop.7.10.6070\lib\Microsoft.VisualStudio.OLE.Interop.dllTrue
@@ -287,9 +289,8 @@
True
- $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Telemetry.15.0.777-rtm6FAA2C78\lib\Microsoft.VisualStudio.Telemetry.dll
+ $(FSharpSourcesRoot)\..\packages\Microsoft.VisualStudio.Telemetry.15.0.777-rtm6FAA2C78\lib\net45\Microsoft.VisualStudio.Telemetry.dll
- True$(NUnitLibDir)\nunit.framework.dll
@@ -342,6 +343,10 @@
$(FSharpSourcesRoot)\..\packages\System.Collections.Immutable.$(SystemCollectionsImmutableVersion)\lib\portable-net45+win8+wp8+wpa81\System.Collections.Immutable.dllTrue
+
+ $(FSharpSourcesRoot)\..\packages\System.Threading.Tasks.Dataflow.4.5.24\lib\portable-net45+win8+wp8+wpa81\System.Threading.Tasks.Dataflow.dll
+ True
+ {DED3BBD7-53F4-428A-8C9F-27968E768605}FSharp.Core
@@ -361,7 +366,11 @@
FSharp.Compiler.PrivateTrue
-
+
+ $(FSharpSourcesRoot)\..\packages\System.ValueTuple.4.3.1\lib\netstandard1.0\System.ValueTuple.dll
+ true
+
+ VisualFSharp.Salsa{fbd4b354-dc6e-4032-8ec7-c81d8dfb1af7}True
diff --git a/vsintegration/update-vsintegration.cmd b/vsintegration/update-vsintegration.cmd
index 9dcb36f92..35dd80143 100644
--- a/vsintegration/update-vsintegration.cmd
+++ b/vsintegration/update-vsintegration.cmd
@@ -327,7 +327,7 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "yes" (
)
REG ADD "HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\F# !FSHARPVERSION! Core Assemblies (Open Source)" /ve /t REG_SZ /f /d "!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.!FSHARPVERSION!.0\
REG ADD "HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.50709\AssemblyFoldersEx\F# !FSHARPVERSION! Core Assemblies (Open Source)" /ve /t REG_SZ /f /d "!X86_PROGRAMFILES!\Reference Assemblies\Microsoft\FSharp\.NETFramework\v4.0\4.!FSHARPVERSION!.0\
-
+
rem Disable strong-name validation for F# binaries built from open source that are signed with the microsoft key
echo.
CALL :colorEcho 02 "[!ACTION!] Removing strong-name validation of F# binaries" & echo.
@@ -347,7 +347,7 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "yes" (
!SN32! -Vr FSharp.VS.FSI,b03f5f7f11d50a3a 1>NUL 2>NUL
!SN32! -Vr VisualFSharp.Unittests,b03f5f7f11d50a3a 1>NUL 2>NUL
!SN32! -Vr VisualFSharp.Salsa,b03f5f7f11d50a3a 1>NUL 2>NUL
-
+
REM Do this *in addition* to the above for x64 systems
if /i "!PROCESSOR_ARCHITECTURE!"=="AMD64" (
!SN64! -Vr FSharp.Core,b03f5f7f11d50a3a 1>NUL 2>NUL
@@ -367,7 +367,7 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "yes" (
!SN64! -Vr VisualFSharp.Unittests,b03f5f7f11d50a3a 1>NUL 2>NUL
!SN64! -Vr VisualFSharp.Salsa,b03f5f7f11d50a3a 1>NUL 2>NUL
)
-
+
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
echo.
@@ -399,7 +399,7 @@ if "%DEPLOY%" == "yes" if "!ISADMIN!" == "no" (
rem Re-enable certain settings when restoring, NGEN the original files again, requires admin rights
if "%ACTION%" == "restore" if "!ISADMIN!" == "yes" (
-
+
rem Re-enable strong-name validation for F# binaries that were previously installed
echo.
CALL :colorEcho 02 "[!ACTION!] Re-enabling strong-name validation of original F# binaries" & echo.
@@ -419,7 +419,7 @@ if "%ACTION%" == "restore" if "!ISADMIN!" == "yes" (
!SN32! -Vu FSharp.VS.FSI,b03f5f7f11d50a3a 2>NUL 1>NUL
!SN32! -Vu VisualFSharp.Unittests,b03f5f7f11d50a3a 2>NUL 1>NUL
!SN32! -Vu VisualFSharp.Salsa,b03f5f7f11d50a3a 2>NUL 1>NUL
-
+
REM Do this *in addition* to the above for x64 systems
if /i "!PROCESSOR_ARCHITECTURE!"=="AMD64" (
!SN64! -Vu FSharp.Core,b03f5f7f11d50a3a 2>NUL 1>NUL
@@ -439,7 +439,7 @@ if "%ACTION%" == "restore" if "!ISADMIN!" == "yes" (
!SN64! -Vu VisualFSharp.Unittests,b03f5f7f11d50a3a 2>NUL 1>NUL
!SN64! -Vu VisualFSharp.Salsa,b03f5f7f11d50a3a 2>NUL 1>NUL
)
-
+
rem NGen fsc, fsi, fsiAnyCpu, and FSharp.Build.dll
echo.