diff --git a/build/Build.NetCoreTesting.cs b/build/Build.NetCoreTesting.cs index ff8b5f457..c652aac15 100644 --- a/build/Build.NetCoreTesting.cs +++ b/build/Build.NetCoreTesting.cs @@ -13,7 +13,7 @@ partial class Build .Executes(() => { const string testFilter = - "TestCategory != Windows & TestCategory != fsharp & TestCategory != scriptcs & TestCategory != PlatformAgnostic & TestCategory != RunOnceOnWindowsAndLinux"; + "TestCategory != Windows & TestCategory != scriptcs & TestCategory != PlatformAgnostic & TestCategory != RunOnceOnWindowsAndLinux"; DotNetTasks.DotNetTest(settings => settings .SetProjectFile("Binaries/Calamari.Tests.dll") diff --git a/source/Calamari.AzureResourceGroup.Tests/AzureResourceGroupActionHandlerFixture.cs b/source/Calamari.AzureResourceGroup.Tests/AzureResourceGroupActionHandlerFixture.cs index 3a70c0535..4898c9ece 100644 --- a/source/Calamari.AzureResourceGroup.Tests/AzureResourceGroupActionHandlerFixture.cs +++ b/source/Calamari.AzureResourceGroup.Tests/AzureResourceGroupActionHandlerFixture.cs @@ -155,7 +155,6 @@ await CommandTestBuilder.CreateAsync() context.Variables.Add(KnownVariables.Package.EnabledFeatures, KnownVariables.Features.CustomScripts); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.Deploy, ScriptSyntax.PowerShell), psScript); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PreDeploy, ScriptSyntax.CSharp), "Console.WriteLine(\"Hello from C#\");"); - context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PostDeploy, ScriptSyntax.FSharp), "printfn \"Hello from F#\""); context.WithFilesToCopy(packagePath); diff --git a/source/Calamari.AzureResourceGroup.Tests/LegacyAzureResourceGroupActionHandlerFixture.cs b/source/Calamari.AzureResourceGroup.Tests/LegacyAzureResourceGroupActionHandlerFixture.cs index 86f287fc0..b6e298614 100644 --- a/source/Calamari.AzureResourceGroup.Tests/LegacyAzureResourceGroupActionHandlerFixture.cs +++ b/source/Calamari.AzureResourceGroup.Tests/LegacyAzureResourceGroupActionHandlerFixture.cs @@ -154,7 +154,6 @@ await CommandTestBuilder.CreateAsync() context.Variables.Add(KnownVariables.Package.EnabledFeatures, KnownVariables.Features.CustomScripts); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.Deploy, ScriptSyntax.PowerShell), psScript); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PreDeploy, ScriptSyntax.CSharp), "Console.WriteLine(\"Hello from C#\");"); - context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PostDeploy, ScriptSyntax.FSharp), "printfn \"Hello from F#\""); context.WithFilesToCopy(packagePath); diff --git a/source/Calamari.AzureServiceFabric.Tests/AzureServiceFabricPowerShellContextFixture.cs b/source/Calamari.AzureServiceFabric.Tests/AzureServiceFabricPowerShellContextFixture.cs index 329835255..c9345b7b6 100644 --- a/source/Calamari.AzureServiceFabric.Tests/AzureServiceFabricPowerShellContextFixture.cs +++ b/source/Calamari.AzureServiceFabric.Tests/AzureServiceFabricPowerShellContextFixture.cs @@ -13,7 +13,6 @@ public class AzureServiceFabricPowerShellContextFixture [Test] [TestCase("Endpoint", ScriptSyntax.PowerShell, true)] [TestCase("", ScriptSyntax.PowerShell, false)] - [TestCase("Endpoint", ScriptSyntax.FSharp, false)] public void ShouldBeEnabled(string connectionEndpoint, ScriptSyntax syntax, bool expected) { var variables = new CalamariVariables diff --git a/source/Calamari.AzureWebApp.Tests/DeployAzureWebCommandFixture.cs b/source/Calamari.AzureWebApp.Tests/DeployAzureWebCommandFixture.cs index 5fa26a329..d7ef0881b 100644 --- a/source/Calamari.AzureWebApp.Tests/DeployAzureWebCommandFixture.cs +++ b/source/Calamari.AzureWebApp.Tests/DeployAzureWebCommandFixture.cs @@ -379,13 +379,11 @@ await CommandTestBuilder.CreateAsync() context.Variables.Add(KnownVariables.Package.EnabledFeatures, KnownVariables.Features.CustomScripts); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.Deploy, ScriptSyntax.PowerShell), psScript); context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PreDeploy, ScriptSyntax.CSharp), "Console.WriteLine(\"Hello from C#\");"); - context.Variables.Add(KnownVariables.Action.CustomScripts.GetCustomScriptStage(DeploymentStages.PostDeploy, ScriptSyntax.FSharp), "printfn \"Hello from F#\""); context.WithFilesToCopy(tempPath.DirectoryPath); }) .WithAssert(result => { result.FullLog.Should().Contain("Hello from C#"); - result.FullLog.Should().Contain("Hello from F#"); }) .Execute(); diff --git a/source/Calamari.Common/Calamari.Common.csproj b/source/Calamari.Common/Calamari.Common.csproj index edf1258a6..6d44884b3 100644 --- a/source/Calamari.Common/Calamari.Common.csproj +++ b/source/Calamari.Common/Calamari.Common.csproj @@ -53,7 +53,6 @@ - diff --git a/source/Calamari.Common/FeatureToggles/FeatureToggle.cs b/source/Calamari.Common/FeatureToggles/FeatureToggle.cs index 587bb4f55..9f7d8c5da 100644 --- a/source/Calamari.Common/FeatureToggles/FeatureToggle.cs +++ b/source/Calamari.Common/FeatureToggles/FeatureToggle.cs @@ -10,7 +10,6 @@ public enum FeatureToggle { ModernAzureSdkFeatureToggle, OidcAccountsFeatureToggle, AsynchronousAzureZipDeployFeatureToggle, - FSharpDeprecationFeatureToggle, AzureRMDeprecationFeatureToggle, PreventHelmV2DeploymentsFeatureToggle, KubernetesLiveObjectStatusFeatureToggle, diff --git a/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsi b/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsi deleted file mode 100644 index 76ab8b5d7..000000000 --- a/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsi +++ /dev/null @@ -1,18 +0,0 @@ -module Octopus -val private encode : value:string -> string -val private decode : value:string -> string -val private writeServiceMessage : name:string -> content:string -> unit -val private getEnvironmentVariable : name:string -> string option -val private getCustomProxy : proxyHost:string -> System.Net.IWebProxy -val private getCustomCredentials : proxyUserName:string -> System.Net.NetworkCredential -val private decryptString : encrypted:string -> iv:string -> string -val private safelyLogEnvironmentVars : unit -> unit -val private safelyLogPathVars : unit -> unit -val private safelyLogProcessVars : unit -> unit -val private logEnvironmentInformation : unit -> unit -val tryFindVariable : name:string -> string option -val findVariable : name:string -> string -val findVariableOrDefault : defaultValue:string -> name:string -> string -val initializeProxy : unit -> unit -val setVariable : name:string -> value:string -> unit -val createArtifact : path:string -> fileName:string option -> unit \ No newline at end of file diff --git a/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsx b/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsx deleted file mode 100644 index fa36f8e23..000000000 --- a/source/Calamari.Common/Features/Scripting/FSharp/Bootstrap.fsx +++ /dev/null @@ -1,188 +0,0 @@ -module Octopus - -open System -open System.Collections.Generic -open System.Diagnostics -open System.IO -open System.Text -open System.Net -open System.Security.Cryptography -open System.Security.Principal - -let private encode (value:string) = System.Text.Encoding.UTF8.GetBytes(value) |> Convert.ToBase64String -let private decode (value:string) = Convert.FromBase64String(value) |> System.Text.Encoding.UTF8.GetString - -let private writeServiceMessage name content = printfn "##octopus[%s %s]" name content - -let private getEnvironmentVariable name = - let value = Environment.GetEnvironmentVariable name - if String.IsNullOrWhiteSpace value then None else Some value - -let private getCustomProxy proxyHost = - let proxyPort = match "TentacleProxyPort" |> getEnvironmentVariable with - | Some x -> Int32.Parse(x) - | None -> 0 - (new WebProxy((new UriBuilder("http", proxyHost, proxyPort)).Uri)) :> IWebProxy - -let private getCustomCredentials proxyUserName = - let proxyPassword = match "TentacleProxyPassword" |> getEnvironmentVariable with - | Some x -> x - | None -> raise (new System.Exception("Password for proxy is required")) - - new NetworkCredential(proxyUserName, proxyPassword) - -let private decryptString encrypted iv = - let key = fsi.CommandLineArgs.[fsi.CommandLineArgs.Length - 1] - use algorithm = new AesCryptoServiceProvider(Mode = CipherMode.CBC, Padding = PaddingMode.PKCS7, KeySize = 128, BlockSize = 128, Key = Convert.FromBase64String(key), IV = Convert.FromBase64String(iv)) - use decryptor = algorithm.CreateDecryptor() - use memoryStream = new MemoryStream(Convert.FromBase64String(encrypted)) - use cryptoStream = new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read) - use streamReader = new StreamReader(cryptoStream, Encoding.UTF8) - streamReader.ReadToEnd(); - -let tryFindVariable name = - match name |> encode with -(*{{VariableDeclarations}}*) - -let findVariable name = - match name |> tryFindVariable with - | Some x -> x - | None -> raise (System.Collections.Generic.KeyNotFoundException(name + " variable has not been found.")) - -let findVariableOrDefault defaultValue name = - match name |> tryFindVariable with - | Some x -> x - | None -> defaultValue - -let initializeProxy () = - let useDefaultProxy = match "TentacleUseDefaultProxy" |> getEnvironmentVariable with - | Some x -> Boolean.Parse(x) - | None -> true - - let proxyHost = "TentacleProxyHost" |> getEnvironmentVariable - let useCustomProxy = match proxyHost with - | Some x -> true - | None -> false - - let proxy = - match proxyHost with - | Some x -> getCustomProxy x - | None -> if useDefaultProxy then WebRequest.GetSystemWebProxy() else new WebProxy() :> IWebProxy - - let proxyUserName = getEnvironmentVariable "TentacleProxyUsername" - let credentials = match proxyUserName with - | Some x -> getCustomCredentials x - | None -> match proxyHost with - | Some x -> new NetworkCredential() - | None -> CredentialCache.DefaultNetworkCredentials - - if (useCustomProxy || useDefaultProxy) - then proxy.Credentials <- (credentials :> ICredentials) - - WebRequest.DefaultWebProxy <- proxy - -let failStep message = - match message with - | null -> Environment.Exit -1 - | m -> - let content = sprintf "message='%s'" (encode m) - writeServiceMessage "resultMessage" content - Environment.Exit -1 - - -let setVariable name value = - let encodedName = encode name - let encodedValue = encode value - let content = sprintf "name='%s' value='%s'" encodedName encodedValue - writeServiceMessage "setVariable" content - -let setSensitiveVariable name value = - let encodedName = encode name - let encodedValue = encode value - let content = sprintf "name='%s' value='%s' sensitive='%s'" encodedName encodedValue (encode "True") - writeServiceMessage "setVariable" content - -let createArtifact (path: String) fileName = - let plainFileName = match fileName with - | Some value -> value - | None -> System.IO.Path.GetFileName(path) - let encodedFileName = plainFileName |> encode - - let path = System.IO.Path.GetFullPath(path) - let encodedPath = path |> encode - - let encodedLength = (if System.IO.File.Exists(path) then (new System.IO.FileInfo(path)).Length else 0L) |> string |> encode - - let content = sprintf "path='%s' name='%s' length='%s'" encodedPath encodedFileName encodedLength - printfn "##octopus[stdout-verbose]" - printfn "Artifact %s will be collected from %s after this step completes" plainFileName path - printfn "##octopus[stdout-default]" - writeServiceMessage "createArtifact" content - -let updateProgress (percentage: int) message = - let encodedMessage = message |> encode - let encodedPercentage = percentage.ToString() |> encode - let content = sprintf "percentage='%s' message='%s'" encodedPercentage encodedMessage - writeServiceMessage "progress" content - -let writeVerbose message = - printfn "##octopus[stdout-verbose]" - printfn message - printfn "##octopus[stdout-default]" - -let writeHighlight message = - printfn "##octopus[stdout-highlight]" - printfn message - printfn "##octopus[stdout-default]" - -let writeWait message = - printfn "##octopus[stdout-wait]" - printfn message - printfn "##octopus[stdout-default]" - -let writeWarning message = - printfn "##octopus[stdout-warning]" - printfn message - printfn "##octopus[stdout-default]" - -let private safelyLogEnvironmentVars () = - try - printfn " OperatingSystem: %s" (Environment.OSVersion.ToString()) - printfn " OsBitVersion: %s" (if Environment.Is64BitOperatingSystem then "x64" else "x86") - printfn " Is64BitProcess: %s" (Environment.Is64BitProcess.ToString()) - printfn " CurrentUser: %s" (WindowsIdentity.GetCurrent().Name) - printfn " MachineName: %s" (Environment.MachineName) - printfn " ProcessorCount: %s" (Environment.ProcessorCount.ToString()) - with - | _ -> () - -let private safelyLogPathVars () = - try - printfn " CurrentDirectory: %s" (Directory.GetCurrentDirectory()) - printfn " TempDirectory: %s" (Path.GetTempPath()) - with - | _ -> () - -let private safelyLogProcessVars () = - try - let proc = Process.GetCurrentProcess() - printfn " HostProcess: %s (%d)" proc.ProcessName proc.Id - with - | _ -> () - -let private logEnvironmentInformation () = - try - let suppressEnvironmentLogging = findVariableOrDefault "False" "Octopus.Action.Script.SuppressEnvironmentLogging" - if suppressEnvironmentLogging = "True" then - () // bail out - else - printfn "##octopus[stdout-verbose]" - printfn "FSharp Environment Information:" - safelyLogEnvironmentVars() - safelyLogPathVars() - safelyLogProcessVars() - printfn "##octopus[stdout-default]" - with - | _ -> printfn "##octopus[stdout-default]" - -logEnvironmentInformation() diff --git a/source/Calamari.Common/Features/Scripting/FSharp/FSharpBootstrapper.cs b/source/Calamari.Common/Features/Scripting/FSharp/FSharpBootstrapper.cs deleted file mode 100644 index c16d67c4d..000000000 --- a/source/Calamari.Common/Features/Scripting/FSharp/FSharpBootstrapper.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using Calamari.Common.Commands; -using Calamari.Common.Features.Processes; -using Calamari.Common.Features.Scripts; -using Calamari.Common.Plumbing.Extensions; -using Calamari.Common.Plumbing.FileSystem; -using Calamari.Common.Plumbing.Logging; -using Calamari.Common.Plumbing.Variables; - -namespace Calamari.Common.Features.Scripting.FSharp -{ - public static class FSharpBootstrapper - { - static readonly string BootstrapScriptTemplate; - static readonly string SensitiveVariablePassword = AesEncryption.RandomString(16); - static readonly AesEncryption VariableEncryptor = new AesEncryption(SensitiveVariablePassword); - static readonly ICalamariFileSystem CalamariFileSystem = CalamariPhysicalFileSystem.GetPhysicalFileSystem(); - - static FSharpBootstrapper() - { - BootstrapScriptTemplate = EmbeddedResource.ReadEmbeddedText(typeof(FSharpBootstrapper).Namespace + ".Bootstrap.fsx"); - } - - public static string FindExecutable() - { - if (!ScriptingEnvironment.IsNet45OrNewer()) - throw new CommandException("FSharp scripts require requires .NET framework 4.5"); - - var myPath = typeof(FSharpExecutor).Assembly.Location; - var parent = Path.GetDirectoryName(myPath); - var executable = Path.GetFullPath(Path.Combine(parent, "FSharp", "fsi.exe")); - - if (File.Exists(executable)) - return executable; - - throw new CommandException(string.Format("fsi.exe was not found at '{0}'", executable)); - } - - public static string FormatCommandArguments(string bootstrapFile, string? scriptParameters) - { - var encryptionKey = Convert.ToBase64String(AesEncryption.GetEncryptionKey(SensitiveVariablePassword)); - var commandArguments = new StringBuilder(); - commandArguments.AppendFormat("\"{0}\" {1} \"{2}\"", bootstrapFile, scriptParameters, encryptionKey); - return commandArguments.ToString(); - } - - public static (string bootstrapFile, string[] temporaryFiles) PrepareBootstrapFile(string scriptFilePath, string configurationFile, string workingDirectory, IVariables variables) - { - var bootstrapFile = Path.Combine(workingDirectory, "Bootstrap." + Guid.NewGuid().ToString().Substring(10) + "." + Path.GetFileName(scriptFilePath)); - var scriptModulePaths = PrepareScriptModules(variables, workingDirectory).ToArray(); - - using (var file = new FileStream(bootstrapFile, FileMode.CreateNew, FileAccess.Write)) - using (var writer = new StreamWriter(file, Encoding.UTF8)) - { - writer.WriteLine("#load \"" + configurationFile.Replace("\\", "\\\\") + "\""); - writer.WriteLine("open Octopus"); - writer.WriteLine("Octopus.initializeProxy()"); - writer.WriteLine("#load \"" + scriptFilePath.Replace("\\", "\\\\") + "\""); - writer.Flush(); - } - - File.SetAttributes(bootstrapFile, FileAttributes.Hidden); - return (bootstrapFile, scriptModulePaths); - } - - static IEnumerable PrepareScriptModules(IVariables variables, string workingDirectory) - { - foreach (var variableName in variables.GetNames().Where(ScriptVariables.IsLibraryScriptModule)) - if (ScriptVariables.GetLibraryScriptModuleLanguage(variables, variableName) == ScriptSyntax.FSharp) - { - var libraryScriptModuleName = ScriptVariables.GetLibraryScriptModuleName(variableName); - var name = new string(libraryScriptModuleName.Where(char.IsLetterOrDigit).ToArray()); - var moduleFileName = $"{name}.fsx"; - var moduleFilePath = Path.Combine(workingDirectory, moduleFileName); - Log.VerboseFormat("Writing script module '{0}' as f# module {1}. Import this module via `#load \"{1}\"`.", libraryScriptModuleName, moduleFileName, name); - var contents = variables.Get(variableName); - if (contents == null) - throw new InvalidOperationException($"Value for variable {variableName} could not be found."); - CalamariFileSystem.OverwriteFile(moduleFilePath, contents, Encoding.UTF8); - yield return moduleFileName; - } - } - - public static string PrepareConfigurationFile(string workingDirectory, IVariables variables) - { - var configurationFile = Path.Combine(workingDirectory, "Configure." + Guid.NewGuid().ToString().Substring(10) + ".fsx"); - - var builder = new StringBuilder(BootstrapScriptTemplate); - builder.Replace("(*{{VariableDeclarations}}*)", WritePatternMatching(variables)); - - using (var file = new FileStream(configurationFile, FileMode.CreateNew, FileAccess.Write)) - using (var writer = new StreamWriter(file, Encoding.UTF8)) - { - writer.Write(builder.ToString()); - writer.Flush(); - } - - File.SetAttributes(configurationFile, FileAttributes.Hidden); - return configurationFile; - } - - static string WritePatternMatching(IVariables variables) - { - var builder = new StringBuilder(); - foreach (var variableName in variables.GetNames()) - { - var variableValue = variables.Get(variableName); - if (variableValue == null) - builder.AppendFormat(" | \"{0}\" -> Some null", EncodeValue(variableName)); - else - builder.AppendFormat(" | \"{0}\" -> {1} |> Some", - EncodeValue(variableName), - EncryptVariable(variableValue)); - - builder.Append(Environment.NewLine); - } - - builder.Append(" | _ -> None"); - - return builder.ToString(); - } - - static string EncodeValue(string value) - { - var bytes = Encoding.UTF8.GetBytes(value); - return Convert.ToBase64String(bytes); - } - - static string EncryptVariable(string value) - { - var encrypted = VariableEncryptor.Encrypt(value); - var rawEncrypted = AesEncryption.ExtractIV(encrypted, out var iv); - - return $@"decryptString ""{Convert.ToBase64String(rawEncrypted)}"" ""{Convert.ToBase64String(iv)}"""; - } - } -} \ No newline at end of file diff --git a/source/Calamari.Common/Features/Scripting/FSharp/FSharpExecutor.cs b/source/Calamari.Common/Features/Scripting/FSharp/FSharpExecutor.cs deleted file mode 100644 index 2750a6e76..000000000 --- a/source/Calamari.Common/Features/Scripting/FSharp/FSharpExecutor.cs +++ /dev/null @@ -1,51 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using Calamari.Common.Features.Processes; -using Calamari.Common.FeatureToggles; -using Calamari.Common.Plumbing.Logging; -using Calamari.Common.Plumbing.Variables; - -namespace Calamari.Common.Features.Scripting.FSharp -{ - public class FSharpExecutor : ScriptExecutor - { - readonly ILog log; - - public FSharpExecutor(ILog log) - { - this.log = log; - } - - protected override IEnumerable PrepareExecution(Script script, - IVariables variables, - Dictionary? environmentVars = null) - { - LogFSharpDeprecationWarning(variables); - - var workingDirectory = Path.GetDirectoryName(script.File); - var executable = FSharpBootstrapper.FindExecutable(); - var configurationFile = FSharpBootstrapper.PrepareConfigurationFile(workingDirectory, variables); - var (bootstrapFile, otherTemporaryFiles) = FSharpBootstrapper.PrepareBootstrapFile(script.File, configurationFile, workingDirectory, variables); - var arguments = FSharpBootstrapper.FormatCommandArguments(bootstrapFile, script.Parameters); - - yield return new ScriptExecution( - new CommandLineInvocation(executable, arguments) - { - WorkingDirectory = workingDirectory, - EnvironmentVars = environmentVars - }, - otherTemporaryFiles.Concat(new[] { bootstrapFile, configurationFile }) - ); - } - - void LogFSharpDeprecationWarning(IVariables variables) - { - if (FeatureToggle.FSharpDeprecationFeatureToggle.IsEnabled(variables)) - { - log.Warn($"Executing FSharp scripts will soon be deprecated. Please read our deprecation {log.FormatLink("https://oc.to/fsharp-deprecation", "blog post")} for more details."); - } - } - } -} \ No newline at end of file diff --git a/source/Calamari.Common/Features/Scripting/ScriptEngine.cs b/source/Calamari.Common/Features/Scripting/ScriptEngine.cs index b2f306b1c..922d86a51 100644 --- a/source/Calamari.Common/Features/Scripting/ScriptEngine.cs +++ b/source/Calamari.Common/Features/Scripting/ScriptEngine.cs @@ -4,7 +4,6 @@ using Calamari.Common.Features.Processes; using Calamari.Common.Features.Scripting.Bash; using Calamari.Common.Features.Scripting.DotnetScript; -using Calamari.Common.Features.Scripting.FSharp; using Calamari.Common.Features.Scripting.Python; using Calamari.Common.Features.Scripting.ScriptCS; using Calamari.Common.Features.Scripting.WindowsPowerShell; @@ -106,8 +105,6 @@ IScriptExecutor GetScriptExecutor(ScriptSyntax scriptSyntax, IVariables variable return runDotnetScript ? (IScriptExecutor) new DotnetScriptExecutor(commandLineRunner) : new ScriptCSScriptExecutor(); case ScriptSyntax.Bash: return new BashScriptExecutor(); - case ScriptSyntax.FSharp: - return new FSharpExecutor(log); case ScriptSyntax.Python: return new PythonScriptExecutor(); default: diff --git a/source/Calamari.Common/Features/Scripts/ScriptSyntax.cs b/source/Calamari.Common/Features/Scripts/ScriptSyntax.cs index 4fa4aa399..a6f1867f3 100644 --- a/source/Calamari.Common/Features/Scripts/ScriptSyntax.cs +++ b/source/Calamari.Common/Features/Scripts/ScriptSyntax.cs @@ -13,9 +13,6 @@ public enum ScriptSyntax [FileExtension("sh")] Bash, - [FileExtension("fsx")] - FSharp, - [FileExtension("py")] Python } diff --git a/source/Calamari.Common/Features/Scripts/ScriptSyntaxHelper.cs b/source/Calamari.Common/Features/Scripts/ScriptSyntaxHelper.cs index 15d66874f..d9b554319 100644 --- a/source/Calamari.Common/Features/Scripts/ScriptSyntaxHelper.cs +++ b/source/Calamari.Common/Features/Scripts/ScriptSyntaxHelper.cs @@ -11,7 +11,6 @@ public static class ScriptSyntaxHelper ScriptSyntax.Bash, ScriptSyntax.Python, ScriptSyntax.CSharp, - ScriptSyntax.FSharp, ScriptSyntax.PowerShell }; @@ -20,7 +19,6 @@ public static class ScriptSyntaxHelper ScriptSyntax.PowerShell, ScriptSyntax.Python, ScriptSyntax.CSharp, - ScriptSyntax.FSharp, ScriptSyntax.Bash }; diff --git a/source/Calamari.Scripting/Calamari.Scripting.csproj b/source/Calamari.Scripting/Calamari.Scripting.csproj index 76227de93..462a5fa08 100644 --- a/source/Calamari.Scripting/Calamari.Scripting.csproj +++ b/source/Calamari.Scripting/Calamari.Scripting.csproj @@ -16,7 +16,6 @@ all runtime; build; native; contentfiles; analyzers - @@ -28,15 +27,6 @@ - - FSharp - true - false - contentFiles/any/any/FSharp/ - true - false - PreserveNewest - DotnetScript true diff --git a/source/Calamari.Scripting/FSharp/FSharp.Build.dll b/source/Calamari.Scripting/FSharp/FSharp.Build.dll deleted file mode 100644 index 1f5c7b858..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Build.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Build.xml b/source/Calamari.Scripting/FSharp/FSharp.Build.xml deleted file mode 100644 index a158359cd..000000000 --- a/source/Calamari.Scripting/FSharp/FSharp.Build.xml +++ /dev/null @@ -1,42 +0,0 @@ - - -FSharp.Build - - - - ToolPath is unknown; specify the path to fsc.exe as the ToolPath property. - (Originally from C:\projects\fsharp\src\fsharp\FSharp.Build\FSBuild.txt:2) - - - - - 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). - - - - - 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). - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - Try to find the F# compiler location by looking at the "fsharpi" script installed by F# packages - - - - - The F# version reported in the banner - - - - - Convert string into Option string where null and String.Empty result in None - - - - diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.dll b/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.dll deleted file mode 100644 index b9dee5522..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.xml b/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.xml deleted file mode 100644 index 31fae842f..000000000 --- a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Interactive.Settings.xml +++ /dev/null @@ -1,125 +0,0 @@ - - -FSharp.Compiler.Interactive.Settings - - - - 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). - - - - - 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). - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - Schedule a restart for the event loop. - - - Run the event loop. - True if the event loop was restarted; false otherwise. - - - Request that the given operation be run synchronously on the event loop. - The result of the operation. - - - An event loop used by the currently executing F# Interactive session to execute code - in the context of a GUI or another event-based system. - - - When set to 'false', disables the display of properties of evaluated objects in the output of the interactive session. - - - When set to 'false', disables the display of sequences in the output of the interactive session. - - - When set to 'false', disables the display of declaration values in the output of the interactive session. - - - Get or set the print width of the interactive session. - - - Get or set the total print size of the interactive session. - - - Get or set the total print length of the interactive session. - - - Get or set the print depth of the interactive session. - - - Get or set the format provider used in the output of the interactive session. - - - Get or set the floating point format used in the output of the interactive session. - - - Gets or sets a the current event loop being used to process interactions. - - - The command line arguments after ignoring the arguments relevant to the interactive - environment and replacing the first argument with the name of the last script file, - if any. Thus 'fsi.exe test1.fs test2.fs -- hello goodbye' will give arguments - 'test2.fs', 'hello', 'goodbye'. This value will normally be different to those - returned by System.Environment.GetCommandLineArgs. - - - When set to 'false', disables the display of properties of evaluated objects in the output of the interactive session. - - - When set to 'false', disables the display of sequences in the output of the interactive session. - - - When set to 'false', disables the display of declaration values in the output of the interactive session. - - - Get or set the print width of the interactive session. - - - Get or set the total print size of the interactive session. - - - Get or set the total print length of the interactive session. - - - Get or set the print depth of the interactive session. - - - Get or set the format provider used in the output of the interactive session. - - - Get or set the floating point format used in the output of the interactive session. - - - Gets or sets a the current event loop being used to process interactions. - - - The command line arguments after ignoring the arguments relevant to the interactive - environment and replacing the first argument with the name of the last script file, - if any. Thus 'fsi.exe test1.fs test2.fs -- hello goodbye' will give arguments - 'test2.fs', 'hello', 'goodbye'. This value will normally be different to those - returned by System.Environment.GetCommandLineArgs. - - - Register a printer that controls the output of the interactive session. - - - Register a print transformer that controls the output of the interactive session. - - - Operations supported by the currently executing F# Interactive session. - - - Hooks (test use only, may change without notice). - - - The settings associated with the interactive session. - - - diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.dll b/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.dll deleted file mode 100644 index 1c10d0f28..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.xml b/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.xml deleted file mode 100644 index 21a98ba97..000000000 --- a/source/Calamari.Scripting/FSharp/FSharp.Compiler.Server.Shared.xml +++ /dev/null @@ -1,21 +0,0 @@ - - -FSharp.Compiler.Server.Shared - - - - 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). - - - - - 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). - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.dll b/source/Calamari.Scripting/FSharp/FSharp.Compiler.dll deleted file mode 100644 index 968a9525b..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Compiler.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Compiler.xml b/source/Calamari.Scripting/FSharp/FSharp.Compiler.xml deleted file mode 100644 index a8b056563..000000000 --- a/source/Calamari.Scripting/FSharp/FSharp.Compiler.xml +++ /dev/null @@ -1,20008 +0,0 @@ - - -FSharp.Compiler - - - - The value '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:964) - - - - - The union cases or fields of the type '%s' are not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:963) - - - - - The union case '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:965) - - - - - The value or constructor '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:6) - - - - - The value, namespace, type or module '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:7) - - - - - The value, constructor, namespace or type '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:5) - - - - - The type parameter '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:12) - - - - - The type '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:9) - - - - - The record label or namespace '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:10) - - - - - The record label '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:11) - - - - - The pattern discriminator '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:13) - - - - - The namespace or module '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:3) - - - - - The namespace '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:2) - - - - - The field, constructor or member '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:4) - - - - - The constructor, module or namespace '%s' is not defined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:8) - - - - - The type '%s' implements 'System.IComparable'. Consider also adding an explicit override for 'Object.Equals' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:172) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:173) - - - - - The signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:168) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:171) - - - - - The signature and implementation are not compatible because the declaration of the type parameter '%s' requires a constraint of the form %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:170) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:169) - - - - - The override for '%s' was ambiguous - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:188) - - - - - The override '%s' implements more than one abstract slot, e.g. '%s' and '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:191) - - - - - No implementations of '%s' had the correct number of arguments and type parameters. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:187) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:196) - - - - - No implementation was given for '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:195) - - - - - The interface '%s' is included in multiple explicitly implemented interface types. Add an explicit implementation of this interface. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:193) - - - - - A named argument has been assigned more than one value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:194) - - - - - More than one override implements '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:189) - - - - - The namespace or module attributes differ between signature and implementation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:185) - - - - - The method '%s' is sealed and cannot be overridden - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:190) - - - - - This method is over-constrained in its type parameters - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:186) - - - - - The member '%s' does not have the correct number of method type parameters. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:198) - - - - - The member '%s' does not have the correct number of arguments. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:197) - - - - - The member '%s' does not have the correct kinds of generic parameters. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:199) - - - - - The member '%s' cannot be used to implement '%s'. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:200) - - - - - Invalid value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:167) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:174) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:175) - - - - - The struct, record or union type '%s' has an explicit implementation of 'Object.Equals'. Consider implementing a matching override for 'Object.GetHashCode()' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:176) - - - - - Duplicate or redundant interface - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:192) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:162) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'unmanaged' constraint at or near this position - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1102) - - - - - Could not resolve the ambiguity inherent in the use of a 'printf'-style format string - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:164) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:163) - - - - - Could not resolve the ambiguity in the use of a generic construct with an 'enum' constraint at or near this position - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:165) - - - - - Could not resolve the ambiguity in the use of a generic construct with a 'delegate' constraint at or near this position - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:166) - - - - - The type '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:962) - - - - - union case - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:935) - - - - - type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:931) - - - - - property - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:940) - - - - - patvar - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:944) - - - - - and %d other overloads - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:934) - - - - - namespace/module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:947) - - - - - namespace - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:945) - - - - - module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:946) - - - - - inherits - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:932) - - - - - implements - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:933) - - - - - generated type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:951) - - - - - generated property - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:950) - - - - - Full name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:930) - - - - - also from %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:949) - - - - - from %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:948) - - - - - field - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:938) - - - - - extension - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:941) - - - - - event - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:939) - - - - - custom operation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:942) - - - - - Calls - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1277) - - - - - argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:943) - - - - - active recognizer - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:937) - - - - - active pattern result - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:936) - - - - - Unexpected Expr.TyChoose - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:975) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:976) - - - - - The 'VolatileField' attribute may only be used on 'let' bindings in classes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:679) - - - - - Volatile fields must be marked 'mutable' and cannot be thread-static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:734) - - - - - A declaration may only be given a value in a signature if the declaration has the [<Literal>] attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:732) - - - - - In sequence expressions, multiple results are generated using 'yield!' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:654) - - - - - Character range matches have been removed in F#. Consider using a 'when' pattern guard instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:588) - - - - - 'use' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1295) - - - - - The use of 'let! x = coll' in sequence expressions is not permitted. Use 'for x in coll' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:652) - - - - - This attribute cannot be used in this version of F# - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:706) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1298) - - - - - Arguments to query operators may require parentheses, e.g. 'where (x > y)' or 'groupBy (x.Length / 10)' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1306) - - - - - Unrecognized attribute target. Valid attribute targets are 'assembly', 'module', 'type', 'method', 'property', 'return', 'param', 'field', 'event', 'constructor'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:696) - - - - - The unnamed arguments do not form a prefix of the arguments of the method called - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:673) - - - - - Unknown union case - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:527) - - - - - Unit-of-measure cannot be used in type constructor application - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:564) - - - - - This union case takes one argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:582) - - - - - The union case named '%s' conflicts with the generated type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1123) - - - - - Union case/exception field '%s' cannot be used more than once. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1331) - - - - - This union case expects %d arguments in tupled form - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:583) - - - - - This union case does not take arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:581) - - - - - Union case/exception '%s' does not have field named '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1330) - - - - - Uninitialized 'val' fields must be mutable and marked with the '[<DefaultValue>]' attribute. Consider using a 'let' binding instead of a 'val' field. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:735) - - - - - Unexpected type arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:573) - - - - - Unexpected %s in type expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:567) - - - - - Unexpected / in type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:572) - - - - - Unexpected source-level property specification - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:538) - - - - - Unexpected source-level property specification in syntax tree - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:532) - - - - - Unexpected SynMeasure.Anon - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:488) - - - - - Unexpected expression at recursive inference point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:517) - - - - - Unexpected Const_uint16array - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:493) - - - - - Unexpected Const_bytearray - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:494) - - - - - Unexpected condition in imported assembly: failed to decode AttributeUsage attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:695) - - - - - Unexpected big rational constant - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:491) - - - - - The field '%s' has been given a value, but is not present in the type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:620) - - - - - Unable to parse format string '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:598) - - - - - Types cannot inherit from multiple concrete types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:784) - - - - - Types cannot contain nested type definitions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:764) - - - - - Struct types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:796) - - - - - Record types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:794) - - - - - Enum types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:798) - - - - - Delegate types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:797) - - - - - Discriminated union types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:793) - - - - - Assembly code types are always sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:795) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:821) - - - - - This type test or downcast will erase the provided type '%s' to the type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1216) - - - - - This type test or downcast will ignore the unit-of-measure '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1137) - - - - - This type test with a provided type '%s' is not allowed because this provided type will be erased to '%s' at runtime. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1218) - - - - - This type requires a definition - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:781) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:522) - - - - - Type parameter cannot be used as type constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:568) - - - - - This type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:521) - - - - - This value, type or method expects %d type parameter(s) but was given %d - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:544) - - - - - type or module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:766) - - - - - The type '%s' is not an interface type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:742) - - - - - This type is not an interface type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:759) - - - - - This type is not a record type. Values of class and struct types must be created using calls to object constructors. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:647) - - - - - This type is not a record type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:648) - - - - - This type is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:694) - - - - - This type has no nested types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:566) - - - - - This type has no accessible object constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:657) - - - - - type, exception or module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:765) - - - - - Type definitions may only have one 'inherit' specification and it must be the first declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:814) - - - - - 'let' and 'do' bindings must come before member and interface definitions in type definitions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:815) - - - - - This type definition involves an immediate cyclic reference through a struct field or inheritance relation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:810) - - - - - This type definition involves an immediate cyclic reference through an abbreviation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:809) - - - - - This downcast will erase the provided type '%s' to the type '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1217) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:551) - - - - - Type abbreviations cannot have members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:749) - - - - - Type abbreviations cannot have interface declarations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:757) - - - - - Type abbreviations cannot have augmentations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:819) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:782) - - - - - 'try/with' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1299) - - - - - 'try'/'with' cannot be used within sequence expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:653) - - - - - 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 - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:733) - - - - - This member, function or value declaration may not be declared 'inline' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1304) - - - - - This type definition may not have the 'CLIMutable' attribute. Only record types may have this attribute. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1285) - - - - - Invalid provided field. Provided fields of erased provided types must be literals. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1316) - - - - - The syntax 'expr.id' may only be used with record labels, properties and fields - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:668) - - - - - Syntax error - unexpected '?' symbol - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:590) - - - - - '%s' may only be used to construct object types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:618) - - - - - The struct, record or union type '%s' has the 'StructuralEquality' attribute but the component type '%s' does not satisfy the 'equality' constraint - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1080) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1079) - - - - - The struct, record or union type '%s' has the 'StructuralComparison' attribute but the component type '%s' does not satisfy the 'comparison' constraint - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1074) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1073) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1081) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:753) - - - - - Structs cannot contain 'do' bindings because the default constructor for structs would not execute these bindings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:752) - - - - - Structs, interfaces, enums and delegates cannot inherit from other types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:783) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:725) - - - - - Structs may only bind a 'this' parameter at member declarations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:516) - - - - - Struct types cannot contain abstract members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:803) - - - - - 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:736) - - - - - Static optimization conditionals are only for use within the F# library - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:674) - - - - - This static member should not have a 'this' parameter. Consider using the notation 'member Member(args) = ...'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:535) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:754) - - - - - Interfaces cannot contain definitions of static initializers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:720) - - - - - A static initializer requires an argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:533) - - - - - A static field was used where an instance field is expected - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:484) - - - - - A simple method name is required here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:627) - - - - - In sequence expressions, results are generated using 'yield' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:490) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1329) - - - - - Return values cannot have names - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:496) - - - - - Return types of union cases must be identical to the type being defined, up to abbreviations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:740) - - - - - 'return' and 'return!' may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1297) - - - - - 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 - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:811) - - - - - This is not a variable, constant, active recognizer or literal - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:586) - - - - - This control construct may only be used if the computation expression builder defines a '%s' method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:565) - - - - - Only active patterns returning exactly one result may accept arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:578) - - - - - 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:789) - - - - - Recursive bindings that include member specifications can only occur as a direct augmentation of a type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:727) - - - - - Records, union, abbreviations and struct types cannot have the 'AllowNullLiteral' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:785) - - - - - This record contains fields from inconsistent types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:514) - - - - - A property cannot have explicit type parameters. Consider using a method instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:529) - - - - - This property or field was not found on this custom attribute type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:701) - - - - - Property '%s' is static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:665) - - - - - Property '%s' is not static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:662) - - - - - Property '%s' is not readable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:663) - - - - - Property '%s' cannot be set - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:666) - - - - - This property cannot be set - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:700) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:628) - - - - - A parameter with attributes must also be given a name, e.g. '[<Attribute>] Name : Type' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:495) - - - - - The parameter '%s' 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1098) - - - - - You must explicitly declare either all or no type parameters when overriding a generic abstract method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:524) - - - - - Accessibility modifiers are not permitted on overrides or interface implementations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:792) - - - - - This override takes a different number of arguments to the corresponding abstract member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:712) - - - - - One or more of the overloads of this method has curried arguments. Consider redesigning these members to take arguments in tupled form. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:672) - - - - - Optional arguments cannot be used in custom attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:699) - - - - - Optional arguments are only permitted on type members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:574) - - - - - Optional arguments must come at the end of the argument list, after any non-optional arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1116) - - - - - '%s' must be followed by 'in'. Usage: %s. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1323) - - - - - Incorrect syntax for '%s'. Usage: %s. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1249) - - - - - The operator '%s' does not accept the use of 'into' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1283) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:747) - - - - - Only types representing units-of-measure may be given the 'Measure' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:791) - - - - - Only structs and classes without primary constructors may be given the 'StructLayout' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:788) - - - - - Only simple variable patterns can be bound in 'let rec' constructs - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:728) - - - - - Only simple bindings of the form 'id = expr' can be used in construction expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:634) - - - - - Only record fields and simple 'let' bindings may be marked mutable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:729) - - - - - Only functions may be marked 'inline' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:688) - - - - - Only classes may be given the 'AbstractClass' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:790) - - - - - Objects must be initialized by an object construction expression that calls an inherited object constructor and assigns a value to each field - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:635) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:609) - - - - - Only overrides of abstract and virtual members may be specified in object expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:623) - - - - - This form of object expression is not used in F#. Use 'member this.MemberName ... = ...' to define member implementations in object expressions. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:539) - - - - - Calls to object constructors on type parameters cannot be given arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:611) - - - - - Interfaces cannot contain definitions of object constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:721) - - - - - An object constructor requires an argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:534) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:645) - - - - - Object construction expressions may only be used to implement constructors in class types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:633) - - - - - This numeric literal requires that a module '%s' defining functions FromZero, FromOne, FromInt32, FromInt64 and FromString be in scope - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:641) - - - - - This is not a valid name for an enumeration case - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:602) - - - - - This code is not sufficiently generic. The type variable %s could not be generalized because it would escape its scope. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:528) - - - - - Not an exception - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:774) - - - - - Non-zero constants cannot have generic units. For generic zero, write 0.0<_>. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:489) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1099) - - - - - This 'let' definition may not be used in a query. Only simple value definitions may be used in queries. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1300) - - - - - This value is not a literal and cannot be used in a pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:547) - - - - - 'while' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1293) - - - - - 'try/finally' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1294) - - - - - No abstract property was found that corresponds to this override - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:715) - - - - - No abstract or interface member was found that corresponds to this override - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:711) - - - - - Interface implementations cannot be given on construction expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:632) - - - - - In queries, use the form 'for x in n .. m do ...' for ranging over integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1292) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1078) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1077) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1076) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1075) - - - - - No arguments may be given when constructing a record value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:631) - - - - - The member '%s' does not correspond to any abstract or virtual method available to override or implement - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:624) - - - - - 'new' may only be used with object constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:639) - - - - - 'new' must be used with a named type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:629) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:719) - - - - - This new member hides the abstract member '%s'. Rename the member or use 'override' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:718) - - - - - 'new' cannot be used on interface types. Consider using an object expression '{ new ... with ... }' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:615) - - - - - Namespaces cannot contain values. Consider using a module to hold your value declarations. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:498) - - - - - Namespaces cannot contain extension members except in the same file and namespace where the type is defined. Consider using a module to hold declarations of extension members. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:499) - - - - - '%s' may only be used with named types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:613) - - - - - Named arguments cannot be given to member trait calls - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:601) - - - - - The named argument '%s' did not match any argument or mutable property - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:671) - - - - - Name '%s' not bound in pattern context - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:575) - - - - - Named arguments must appear after all other arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:549) - - - - - Mutable function values should be written 'let mutable f = (fun args -> ...)' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:687) - - - - - Mutable values cannot have generic parameters - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:686) - - - - - Mutable values cannot be marked 'inline' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:685) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:501) - - - - - Multiple visibility attributes have been specified for this identifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:500) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:746) - - - - - The path '%s' is a namespace. A module abbreviation may not abbreviate a namespace. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:820) - - - - - A custom query operation for '%s' is required but not specified - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1230) - - - - - Method overrides and interface implementations are not permitted here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:710) - - - - - Method '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:485) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:812) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:822) - - - - - Interfaces cannot contain definitions of member overrides - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:722) - - - - - Extension members cannot provide operator overloads. Consider defining the operator as part of the type definition instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1119) - - - - - This member is not permitted in an interface implementation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:762) - - - - - MemberKind.PropertyGetSet only expected in parse trees - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:497) - - - - - This member is not sufficiently generic - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:730) - - - - - A member and a local class binding both have the name '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:756) - - - - - Measure definitions cannot have type parameters - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:780) - - - - - Measure declarations may have only static members: constructors are not available - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:755) - - - - - Measure declarations may have only static members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:751) - - - - - 'match' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1320) - - - - - This lookup cannot be used here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:664) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:748) - - - - - Literal values cannot have generic parameters - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:692) - - - - - A literal value cannot be marked 'mutable' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:690) - - - - - A literal value cannot be marked 'inline' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:691) - - - - - A declaration may only be the [<Literal>] attribute if a constant value is also given, e.g. 'val x : int = 1' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:731) - - - - - This list expression exceeds the maximum size for list literals. Use an array for larger literals and call Array.ToList. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:599) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:818) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:518) - - - - - The kind of the type specified by its attributes does not match the kind implied by its definition - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:779) - - - - - In queries, '%s' must use a simple pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1229) - - - - - Invalid use of a type name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:656) - - - - - Invalid use of an interface type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:660) - - - - - Invalid use of a delegate constructor. Use the syntax 'new Type(args)' or just 'Type(args)'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:661) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1097) - - - - - 'use' bindings must be of the form 'use <var> = <expr>' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:708) - - - - - 'use!' bindings must be of the form 'use! <var> = <expr>' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1132) - - - - - Units-of-measure cannot be used as prefix arguments to a type. Rewrite as postfix arguments in angle brackets. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:563) - - - - - Units-of-measure supported only on float, float32, decimal and signed integer types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:492) - - - - - Literal enumerations must have type int, uint, int16, uint16, int64, uint64, byte, sbyte or char - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:807) - - - - - Invalid type extension - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:777) - - - - - Type arguments cannot be specified here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:577) - - - - - The number of type arguments did not match: '%d' given, '%d' expected. This may be related to a previously reported error. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1223) - - - - - Invalid signature for set member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:717) - - - - - Invalid record, sequence or computation expression. Sequence expressions should be of the form 'seq { ... }' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:596) - - - - - Invalid join relation in '%s'. Expected 'expr <op> expr', where <op> is =, =?, ?= or ?=?. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1276) - - - - - Invalid record construction - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:642) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:558) - - - - - This is not a valid pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:587) - - - - - Invalid optional assignment to a property or field - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:676) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:506) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:507) - - - - - The '%s' operator should not normally be redefined. Consider using a different operator name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:508) - - - - - Invalid object, sequence or record expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:595) - - - - - Invalid object expression. Objects without overrides or interfaces should use the expression form 'new Type(args)' without braces. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:594) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:553) - - - - - 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:576) - - - - - 'new' constraints must take one argument of type 'unit' and return the constructed type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:557) - - - - - Invalid namespace, module, type or union case name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:738) - - - - - Invalid module name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:776) - - - - - This recursive binding uses an invalid mixture of recursive forms - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:552) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:502) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:503) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:505) - - - - - Invalid member name. Members may not have name '.ctor' or '.cctor' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1221) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:504) - - - - - Invalid inline specification - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:707) - - - - - Invalid indexer expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:608) - - - - - The '%s' operator cannot be redefined. Consider using a different operator name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:509) - - - - - Internal error. Invalid index into active pattern array - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:580) - - - - - This is not a valid value for an enumeration literal - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:741) - - - - - An 'enum' constraint must be of the form 'enum<type>' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:556) - - - - - Delegate specifications must be of the form 'typ -> typ' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:805) - - - - - Invalid declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:540) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:555) - - - - - Invalid constraint - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:554) - - - - - This is not a valid constant expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:693) - - - - - Invalid assignment - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:655) - - - - - Invalid argument to parameterized pattern label - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:579) - - - - - This is not a valid name for an active pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:683) - - - - - A use of 'into' must be followed by the remainder of the computation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1282) - - - - - Interfaces inherited by other interfaces should be declared using 'inherit ...' instead of 'interface ...' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1108) - - - - - Interface types cannot be sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:804) - - - - - Interface types and delegate types cannot contain fields - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:799) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:531) - - - - - The inherited type is not an object model type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:644) - - - - - A inheritance declaration is not permitted here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:745) - - - - - This 'inherit' declaration specifies the inherited type but no arguments. Consider supplying arguments, e.g. 'inherit BaseType(args)'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:816) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:817) - - - - - 'inherit' cannot be used on interface types. Consider implementing the interface by using 'interface ... with ... end' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:614) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1222) - - - - - Implicit product of measures following / - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:487) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralEquatable' explicitly. Apply the 'CustomEquality' attribute to the type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:767) - - - - - The struct, record or union type '%s' implements the interface 'System.IStructuralComparable' explicitly. Apply the 'CustomComparison' attribute to the type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:513) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:768) - - - - - The struct, record or union type '%s' implements the interface 'System.IComparable' explicitly. You must apply the 'CustomComparison' attribute to the type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:511) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:512) - - - - - Illegal syntax in type expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:569) - - - - - This is not valid literal expression. The [<Literal>] attribute will be ignored. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1335) - - - - - Illegal pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:589) - - - - - Explicit type declarations for constructors must be of the form 'ty1 * ... * tyN -> resTy'. Parentheses may be required around 'resTy' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:739) - - - - - A literal value cannot be given the [<ThreadStatic>] or [<ContextStatic>] attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:689) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1239) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:617) - - - - - Generic types cannot be given the 'StructLayout' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:787) - - - - - A generic type parameter has been used in a way that constrains it to always be '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:520) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1327) - - - - - The generic function '%s' must be given explicit type argument(s) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:542) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:550) - - - - - The corresponding formal argument is not optional - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:675) - - - - - The field labels and expected type of this record expression or pattern do not uniquely determine a corresponding record type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:525) - - - - - A field/val declaration is not permitted here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:744) - - - - - This field requires a name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:737) - - - - - No assignment given for field '%s' of type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:621) - - - - - This field is not a literal and cannot be used in a pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:585) - - - - - Named field '%s' is used more than once. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1332) - - - - - Named field '%s' conflicts with autogenerated name for anonymous field. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1333) - - - - - This field is readonly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:548) - - - - - Field '%s' is not static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:584) - - - - - This field is not mutable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:603) - - - - - The field '%s' appears twice in this record expression or pattern - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:526) - - - - - All record, union and struct types in FSharp.Core.dll must be explicitly labelled with 'StructuralComparison' or 'NoComparison' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1072) - - - - - Extraneous fields have been given values - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:622) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:597) - - - - - This expression form may only be used in sequence and computation expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:593) - - - - - The expression form { expr with ... } may only be used with record types. To build object types use { new Type(...) with ... } - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:643) - - - - - The expression form 'expr then expr' may only be used as part of an explicit object constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:600) - - - - - Expected %d expressions, got %d - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:591) - - - - - TcExprUndelayed: delayed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:592) - - - - - Explicit type specifications cannot be used for exception constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:769) - - - - - Explicit type parameters may only be used on module or member bindings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:523) - - - - - An explicit static initializer should use the syntax 'static new(args) = expr' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:536) - - - - - An explicit object constructor should use the syntax 'new(args) = expr' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:537) - - - - - Expected unit-of-measure, not type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:562) - - - - - Expected unit-of-measure parameter, not type parameter. Explicit unit-of-measure parameters must be marked with the [<Measure>] attribute. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:559) - - - - - Expected type parameter, not unit-of-measure parameter - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:560) - - - - - Expected type, not unit-of-measure - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:561) - - - - - Expected an interface type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:636) - - - - - Expected module or namespace parent %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:510) - - - - - Exception abbreviations should not have argument lists - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:770) - - - - - Exception abbreviations must refer to existing exceptions or F# types deriving from System.Exception - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:772) - - - - - Event '%s' is static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:669) - - - - - Event '%s' is not static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:670) - - - - - Enumerations cannot have members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:750) - - - - - Enumerations cannot have interface declarations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:758) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1134) - - - - - The 'EntryPointAttribute' attribute may only be used on function definitions in modules - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:684) - - - - - '{ }' 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 C:\projects\fsharp\src\fsharp\FSComp.txt:646) - - - - - Copy-and-update record expressions must include at least one field. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1325) - - - - - Duplicate specification of an interface - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:743) - - - - - The method or function '%s' should not be given explicit type argument(s) because it does not declare its type parameters explicitly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:543) - - - - - 'do!' cannot be used within sequence expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:651) - - - - - DLLImport stubs cannot be inlined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:515) - - - - - DLLImport bindings must be static members in a class or function definitions in a module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1125) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:806) - - - - - A delegate constructor must be passed a single function value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:677) - - - - - The 'DefaultValue' attribute may only be used on 'val' declarations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:681) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:545) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:761) - - - - - This method already has a default implementation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:713) - - - - - The method implemented by this default is ambiguous - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:714) - - - - - The declared type parameters for this type extension do not match the declared type parameters on the original type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:813) - - - - - This declaration element is not permitted in an augmentation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:763) - - - - - '%s' is not used correctly. Usage: %s. This is a custom operation in this query or computation expression. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1244) - - - - - '%s' is not used correctly. This is a custom operation in this query or computation expression. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1243) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1236) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1237) - - - - - The custom operation '%s' refers to a method which is overloaded. The implementations of custom operations may not be overloaded. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1238) - - - - - The definition of the custom operator '%s' does not use a valid combination of attribute flags - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1284) - - - - - '%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 C:\projects\fsharp\src\fsharp\FSComp.txt:1251) - - - - - A custom attribute must invoke an object constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:704) - - - - - A custom attribute must be a reference type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:702) - - - - - The number of args for a custom attribute does not match the expected number of args for the attribute constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:703) - - - - - Couldn't find Dispose on IDisposable, or it was overloaded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:546) - - - - - Constructors cannot be defined for this type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:726) - - - - - Constructors cannot be specified in exception augmentations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:724) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:667) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:619) - - - - - This object constructor requires arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:638) - - - - - Constructor expressions for interfaces do not take arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:637) - - - - - A constructor cannot have explicit type parameters. Consider using a static construction method instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:530) - - - - - This construct may only be used within sequence or computation expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:606) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:604) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:605) - - - - - This construct may only be used within computation expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:607) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:650) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:649) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:519) - - - - - Attribute 'System.Diagnostics.ConditionalAttribute' is only valid on methods or attribute classes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1117) - - - - - The 'ConditionalAttribute' attribute may only be used on members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:682) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:723) - - - - - The 'CompiledName' attribute cannot be used with this language element - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:612) - - - - - Cannot override inherited member '%s' because it is sealed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1224) - - - - - Cannot inherit from a variable type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:610) - - - - - Cannot inherit a sealed type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:801) - - - - - Cannot inherit from interface type. Use interface ... with instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:802) - - - - - Cannot inherit from erased provided type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1219) - - - - - Cannot create an extension of a sealed type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:630) - - - - - Cannot call an abstract base member: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1101) - - - - - A binding cannot be marked both 'use' and 'rec' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:678) - - - - - 'let!', 'use!' and 'do!' expressions may not be used in queries - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1296) - - - - - '%s' must be followed by a variable name. Usage: %s. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1248) - - - - - '%s' must come after a 'for' selection clause and be followed by the rest of the query. Syntax: ... %s ... - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1250) - - - - - '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 C:\projects\fsharp\src\fsharp\FSComp.txt:1286) - - - - - The attributes of this type specify multiple kinds for the type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:778) - - - - - Attributes are not allowed within patterns - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:541) - - - - - Attributes are not permitted on 'let' bindings in expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:680) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:697) - - - - - This attribute is not valid for use on this language element - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:698) - - - - - Attribute expressions must be calls to object constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:705) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:825) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1100) - - - - - At least one override did not correctly implement its corresponding abstract member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:640) - - - - - The member '%s' does not accept the correct number of arguments. One overload accepts %d arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:626) - - - - - The member '%s' does not accept the correct number of arguments, %d arguments are expected - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:625) - - - - - Anonymous unit-of-measure cannot be nested inside another unit-of-measure expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:570) - - - - - Anonymous type variables are not permitted in this declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:571) - - - - - Types with the 'AllowNullLiteral' attribute may only inherit from or implement types which also allow the use of the null literal - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:786) - - - - - All implemented interfaces should be declared on the initial declaration of the type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:760) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:616) - - - - - This property overrides or implements an abstract property but the abstract property doesn't have a corresponding %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:716) - - - - - Abstract members are not permitted in an augmentation - they must be defined as part of the type itself - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:709) - - - - - Abbreviations for Common IL exception types must have a matching object constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:773) - - - - - Abbreviations for Common IL exceptions cannot take arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:771) - - - - - Abbreviated types cannot be given the 'Sealed' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:800) - - - - - F# supports a maximum array rank of 32 - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1291) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:82) - - - - - The value has been copied to ensure the original is not mutated by this operation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:84) - - - - - This value does not have a valid property setter type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:78) - - - - - Unexpected decode of InternalsVisibleToAttribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:89) - - - - - Unexpected decode of InterfaceDataVersionAttribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:90) - - - - - Unexpected decode of AutoOpenAttribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:88) - - - - - Unexpected use of a byref-typed variable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:81) - - - - - The type %s did not contain the union case '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1093) - - - - - The type %s did not contain the field '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1092) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the val '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1095) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the namespace, module or type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1096) - - - - - The module/namespace '%s' from compilation unit '%s' did not contain the module/namespace '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1094) - - - - - The type/module '%s' is not a concrete module or type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:68) - - - - - The type '%s' has an inline assembly code representation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:69) - - - - - Two modules named '%s' occur in two parts of this assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:71) - - - - - Recursively defined values cannot appear directly as part of the construction of a tuple value within a recursive binding - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:85) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:87) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:86) - - - - - This is not a valid constant expression or custom attribute value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:92) - - - - - A namespace and a module named '%s' both occur in two parts of this assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:70) - - - - - Invalid mutation of a constant expression. Consider copying the expression to a mutable local, e.g. 'let mutable x = ...'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:83) - - - - - Invalid member signature encountered because of an earlier error - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:77) - - - - - Invalid form for a property setter. At least one argument is required. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:80) - - - - - Invalid form for a property getter. At least one '()' argument is required when using the explicit syntax. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:79) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1088) - - - - - Two type definitions named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:72) - - - - - This literal expression or attribute argument results in an arithmetic overflow. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1334) - - - - - A module and a type definition named '%s' occur in namespace '%s' in two parts of this assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:73) - - - - - Active patterns cannot return more than 7 possibilities - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:91) - - - - - The struct or class field '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:967) - - - - - 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). - - - - - Recursive class hierarchy in type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:959) - - - - - Unexpected token '%s' in preprocessor expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1341) - - - - - Missing token '%s' in preprocessor expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1343) - - - - - Incomplete preprocessor expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1342) - - - - - Unexpected character '%s' in preprocessor expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1340) - - - - - Expected single line comment or end of line - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1068) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1344) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:64) - - - - - Problem with filename '%s': Illegal characters in path. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1165) - - - - - Partial active patterns may only generate one result - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:986) - - - - - Missing variable '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:985) - - - - - Missing 'do' in 'while' expression. Expected 'while <expr> do <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1274) - - - - - Accessibility modifiers are not permitted on an 'inherits' declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:433) - - - - - Accessibility modifiers should come immediately prior to the identifier naming a construct - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:404) - - - - - 'use' bindings are not permitted in modules and are treated as 'let' bindings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:397) - - - - - 'use' bindings are not permitted in primary constructors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:396) - - - - - Unmatched 'with' or badly formatted 'with' block - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:420) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1272) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1273) - - - - - Unmatched '(' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:446) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1271) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1270) - - - - - Unmatched '[<'. Expected closing '>]' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1254) - - - - - Unmatched 'class', 'interface' or 'struct' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:418) - - - - - Unmatched '[|' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:462) - - - - - Unmatched '[' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:457) - - - - - Unmatched '{' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:463) - - - - - Unmatched 'begin' or 'struct' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:411) - - - - - Unmatched 'begin' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:423) - - - - - Unmatched '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:461) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:441) - - - - - Unexpected token '%s' or incomplete expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1312) - - - - - Accessibility modifiers are not permitted here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:402) - - - - - Syntax error: unexpected type parameter specification - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:473) - - - - - A semicolon is not expected at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:400) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1140) - - - - - Unexpected infix operator in unit-of-measure expression. Legal operators are '*', '/' and '^'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:471) - - - - - Unexpected integer literal in unit-of-measure expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:472) - - - - - Unexpected infix operator in type expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:468) - - - - - Unexpected identifier: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:440) - - - - - Unexpected end of input in 'match' or 'try' expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1259) - - - - - Unexpected end of input in 'while' expression. Expected 'while <expr> do <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1257) - - - - - Unexpected end of input in type signature - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1264) - - - - - Unexpected end of input in type definition - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1265) - - - - - Unexpected end of input in type arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1263) - - - - - Unexpected end of input in 'try' expression. Expected 'try <expr> with <rules>' or 'try <expr> finally <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1256) - - - - - Unexpected end of input in 'then' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1260) - - - - - Unexpected end of input in object members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1266) - - - - - Unexpected end of input in 'match' expression. Expected 'match <expr> with | <pat> -> <expr> | <pat> -> <expr> ...'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1255) - - - - - Unexpected end of input in body of lambda expression. Expected 'fun <pat> ... <pat> -> <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1262) - - - - - Unexpected end of input in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1258) - - - - - Unexpected end of input in expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1268) - - - - - Unexpected end of input in 'else' branch of conditional expression. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1261) - - - - - Unexpected end of input in value, function or member definition - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1267) - - - - - Unexpected end of input - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:401) - - - - - Unexpected empty type moduleDefn list - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:413) - - - - - '_' cannot be used as field name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1326) - - - - - Unclosed block - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:410) - - - - - Type name cannot be empty. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1314) - - - - - Type annotations on property getters and setters must be given after the 'get()' or 'set(v)', e.g. 'with get() : string = ...' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:426) - - - - - Accessibility modifiers are not permitted in this position for type abbreviations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:436) - - - - - The syntax 'module ... = struct .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:479) - - - - - The syntax 'module ... : sig .. end' is not used in F# code. Consider using 'module ... = begin .. end' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:480) - - - - - Syntax error in labelled type argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:467) - - - - - Syntax error - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:416) - - - - - Successive patterns should be separated by spaces or tupled - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:447) - - - - - Successive arguments should be separated by spaces or tupled, and arguments involving function or method applications should be parenthesized - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:456) - - - - - A setter property may have at most two argument groups - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1085) - - - - - Property setters must be defined using 'set value = ', 'set idx value = ' or 'set (idx1,...,idxN) value = ... ' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:429) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:444) - - - - - In F# code you may use 'expr.[expr]'. A type annotation may be required to indicate the first expression is an array - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:459) - - - - - At most one 'with' augmentation is permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:399) - - - - - Only '#' compiler directives may occur prior to the first 'namespace' declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:403) - - - - - Only class types may take value arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:422) - - - - - 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>' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1091) - - - - - Type parameters must be placed directly adjacent to the type name, e.g. \"type C<'T>\", not type \"C <'T>\" - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1089) - - - - - Type arguments must be placed directly adjacent to the type name, e.g. \"C<'T>\", not \"C <'T>\" - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1090) - - - - - No matching 'in' found for this 'let' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:448) - - - - - No #endif found for #if or #else - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:394) - - - - - No '=' symbol should follow a 'namespace' declaration - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:478) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:405) - - - - - To indicate that this property can be set, use 'member val PropertyName = expr with get,set'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1288) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1287) - - - - - Multiple accessibilities given for property getter or setter - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:428) - - - - - The syntax '(typ,...,typ) ident' is not used in F# code. Consider using 'ident<typ,...,typ>' instead - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:469) - - - - - A module name must be a simple name, not a path - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:412) - - - - - A module abbreviation must be a simple name, not a path - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:406) - - - - - Expected type argument or static argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1138) - - - - - Missing qualification after '.' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:458) - - - - - Unmatched '<'. Expected closing '>' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1139) - - - - - Missing function body - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:466) - - - - - Mismatched quotation, beginning with '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:460) - - - - - Mismatched quotation operator name, beginning with '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:474) - - - - - This member is not permitted in an object implementation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:465) - - - - - The declaration form 'let ... and ...' for non-recursive bindings is not used in F# code. Consider using a sequence of 'let' bindings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:445) - - - - - Invalid property getter or setter - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1086) - - - - - Invalid operator definition. Prefix operator definitions must use a valid prefix operator name. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1110) - - - - - Invalid prefix operator - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1109) - - - - - Invalid literal in type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:470) - - - - - Invalid declaration syntax - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:424) - - - - - Interfaces always have the same visibility as the enclosing type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:430) - - - - - An integer for loop must use a simple identifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:398) - - - - - Accessibility modifiers are not permitted on inline assembly code types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:439) - - - - - '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 C:\projects\fsharp\src\fsharp\FSComp.txt:434) - - - - - An indexer property must be given at least one argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1087) - - - - - Incomplete conditional. Expected 'if <expr> then <expr>' or 'if <expr> then <expr> else <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:451) - - - - - 'in' or '=' expected - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:454) - - - - - Neither 'member val' nor 'override val' definitions are permitted in object expressions. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1324) - - - - - Denominator must not be 0 in unit-of-measure exponent - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:477) - - - - - Ignoring visibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:409) - - - - - Ignoring accessibility attribute on module abbreviation. Module abbreviations are always private. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:408) - - - - - Ignoring attributes on module abbreviation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:407) - - - - - Identifier expected - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:453) - - - - - A getter property is expected to be a function, e.g. 'get() = ...' or 'get(index) = ...' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:427) - - - - - A getter property may have at most one argument group - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1084) - - - - - 'get', 'set' or 'get,set' required - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:421) - - - - - 'get' and/or 'set' required - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:425) - - - - - Missing 'do' in 'for' expression. Expected 'for <pat> in <expr> do <expr>'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1275) - - - - - Field bindings must have the form 'id = expr;' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:464) - - - - - Expected a type after this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1253) - - - - - Block following this '%s' is unfinished. Expect an expression. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:450) - - - - - Unexpected end of type. Expected a name after this point. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1269) - - - - - Expected an expression after this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1252) - - - - - Attempted to parse this as an operator name, but failed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1141) - - - - - Error in the return expression for this 'let'. Possible incorrect indentation. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:449) - - - - - End of file in verbatim string embedded in comment begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:391) - - - - - End of file in verbatim string begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:388) - - - - - End of file in triple-quote string embedded in comment begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1136) - - - - - End of file in triple-quote string begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1135) - - - - - End of file in string embedded in comment begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:390) - - - - - End of file in string begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:387) - - - - - End of file in IF-OCAML section begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:392) - - - - - End of file in #if section begun at or after here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:386) - - - - - End of file in directive begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:393) - - - - - End of file in comment begun at or before here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:389) - - - - - Accessibility modifiers are not permitted in this position for enum types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:437) - - - - - Accessibility modifiers are not permitted on enumeration fields - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:442) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:419) - - - - - Accessibility modifiers are not permitted on 'do' bindings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:385) - - - - - Consider using a separate record type instead - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:443) - - - - - Augmentations are not permitted on delegate type moduleDefns - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:417) - - - - - Attributes should be placed before 'val' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:414) - - - - - Attributes are not permitted on 'inherit' declarations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:432) - - - - - Attributes are not allowed here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:435) - - - - - Attributes have been ignored in this construct - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:395) - - - - - Attributes are not permitted on interface implementations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:415) - - - - - Cannot find code target for this attribute, possibly because the code after the attribute is incomplete. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1313) - - - - - 'assert' may not be used as a first class value. Use 'assert <expr>' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:452) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:455) - - - - - All enum fields must be given values - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:438) - - - - - Active pattern case identifiers must begin with an uppercase letter - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:475) - - - - - The '|' character is not permitted in active pattern case identifiers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:476) - - - - - Accessibility modifiers are not allowed on this member. Abstract slots always have the same visibility as the enclosing type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:431) - - - - - Write the xmldoc of the assembly to the given file - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:861) - - - - - Specify a Win32 resource file (.res) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:869) - - - - - Specify a Win32 manifest file - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:870) - - - - - Report all warnings as errors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:879) - - - - - Report specific warnings as errors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:880) - - - - - Enable specific warnings that may be off by default - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:883) - - - - - Set a warning level (0-5) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:881) - - - - - Output messages in UTF-8 encoding - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:890) - - - - - Enable high-entropy ASLR - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:921) - - - - - Unrecognized target '%s', expected 'exe', 'winexe', 'library' or 'module' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:900) - - - - - Unrecognized debug type '%s', expected 'pdbonly' or 'full' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:901) - - - - - Unrecognized platform '%s', valid values are 'x86', 'x64', 'Itanium', 'anycpu32bitpreferred', and 'anycpu' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:915) - - - - - Unknown --test argument: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:914) - - - - - Specify target framework profile of this assembly. Valid values are mscorlib or netcore. Default - mscorlib - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:923) - - - - - Enable or disable tailcalls - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:877) - - - - - Specify subsystem version of this assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:922) - - - - - Specify a strong name key file - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:862) - - - - - Specify a strong name key container - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:863) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:896) - - - - - Statically link the F# library and all referenced DLLs that depend on it into the assembly being generated - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:895) - - - - - Resolve assembly references using directory-based rules rather than MSBuild resolution - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:899) - - - - - Print the inferred interface of the assembly to a file - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:867) - - - - - Short form of '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:903) - - - - - Embed the specified managed resource - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:872) - - - - - Use a resident background compilation service to improve compiler startup times. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:897) - - - - - Reference an assembly (Short form: -r) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:868) - - - - - Problem with codepage '%d': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:853) - - - - - Limit which platforms this code can run on: x86, Itanium, x64, anycpu32bitpreferred, or anycpu. The default is anycpu. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:864) - - - - - Name the output debug file - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:898) - - - - - Enable optimizations (Short form: -O) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:876) - - - - - Do not include the default Win32 manifest - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:871) - - - - - Disable specific warning messages - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:882) - - - - - Suppress compiler copyright message - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:887) - - - - - Do not reference the default CLI assemblies by default - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:894) - - - - - Only include optimization information essential for implementing inlined constructs. Inhibits cross-module inlining but improves binary compatibility. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:865) - - - - - Don't add a resource to the generated assembly containing F#-specific metadata - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:866) - - - - - Name of the output file (Short form: -o) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:855) - - - - - Ignore ML compatibility warnings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:886) - - - - - Link the specified resource to this assembly where the resinfo format is <file>[,<string name>[,public|private]] - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:873) - - - - - Specify a directory for the include path which is used to resolve source files and assemblies (Short form: -I) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:892) - - - - - Invalid warning level '%d' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:902) - - - - - Invalid value '%s' for '--targetprofile', valid values are 'mscorlib' or 'netcore'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:926) - - - - - Invalid version '%s' for '--subsystemversion'. The version must be 4.00 or greater. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:925) - - - - - The command-line option '%s' is for test purposes only - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:916) - - - - - - RESOURCES - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:908) - - - - - - OUTPUT FILES - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:906) - - - - - - MISCELLANEOUS - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:911) - - - - - - LANGUAGE - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:912) - - - - - - INPUT FILES - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:907) - - - - - - ERRORS AND WARNINGS - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:913) - - - - - - CODE GENERATION - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:909) - - - - - - ADVANCED - - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:910) - - - - - Display this usage message (Short form: -?) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:888) - - - - - Output messages with fully qualified paths - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:891) - - - - - Emit debug information in quotations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:924) - - - - - Delay-sign the assembly using only the public portion of the strong name key - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:860) - - - - - Define conditional compilation symbols (Short form: -d) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:885) - - - - - Emit debug information (Short form: -g) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:874) - - - - - Specify debugging type: full, pdbonly. ('full' is the default and enables attaching a debugger to a running program). - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:875) - - - - - The command-line option '%s' has been deprecated - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:917) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:919) - - - - - The command-line option '%s' has been deprecated. Use '%s' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:918) - - - - - Enable or disable cross-module optimizations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:878) - - - - - Freely distributed under the Apache 2.0 Open Source License - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:854) - - - - - Output warning and error messages in color - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:920) - - - - - Specify the codepage used to read source files - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:889) - - - - - Use to override where the compiler looks for mscorlib.dll and framework components - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:905) - - - - - The command-line option '--cliroot' has been deprecated. Use an explicit reference to a specific copy of mscorlib.dll instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:904) - - - - - Generate overflow checks - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:884) - - - - - Build a Windows executable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:857) - - - - - Build a module that can be added to another assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:859) - - - - - Build a library (Short form: -a) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:858) - - - - - Build a console executable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:856) - - - - - Base address for the library to be built - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:893) - - - - - A value marked as 'inline' has an unexpected value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1001) - - - - - A value marked as 'inline' could not be inlined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1002) - - - - - The value '%s' was marked inline but was not bound in the optimization environment - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:999) - - - - - The value '%s' was marked inline but its implementation makes use of an internal or private function which is not sufficiently accessible - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:998) - - - - - Recursive ValValue %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1004) - - - - - Local value %s not found during optimization - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1000) - - - - - Failed to inline the value '%s' marked 'inline', perhaps because a recursive value was marked 'inline' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1003) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1024) - - - - - Unexpected empty long identifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1019) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1015) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1016) - - - - - The type '%s' does not contain a field '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1020) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1025) - - - - - No constructors are available for the type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1023) - - - - - This is not a constructor or literal, or a constructor is being used incorrectly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1018) - - - - - Invalid module/expression/type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1014) - - - - - Invalid field label - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1021) - - - - - Invalid expression '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1022) - - - - - 'global' may only be used as the first name in a qualified path - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1017) - - - - - No Invoke methods found for delegate type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:969) - - - - - + %d overloads - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1310) - - - - - + 1 overload - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1309) - - - - - More than one Invoke method found for delegate type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:970) - - - - - This construct is for ML compatibility. %s. You can disable this warning by using '--mlcompatibility' or '--nowarn:62'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1105) - - - - - Infix operator member '%s' has %d initial argument(s). Expected a tuple of 3 arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1321) - - - - - Infix operator member '%s' has %d initial argument(s). Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1070) - - - - - Infix operator member '%s' has no arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1069) - - - - - Infix operator member '%s' has extra curried arguments. Expected a tuple of 2 arguments, e.g. static member (+) (x,y) = ... - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1071) - - - - - (loading description...) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1317) - - - - - Identifiers containing '@' are reserved for use in F# code generation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:980) - - - - - The identifier '%s' is reserved for future use by F# - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:981) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1009) - - - - - The '|' tokens separating rules of this pattern match are misaligned by one column. Consider realigning your code or using further indentation. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1010) - - - - - The indentation of this 'in' token is incorrect with respect to the corresponding 'let' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1008) - - - - - Syntax error. Wrong nested #endif, unexpected tokens before it. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1066) - - - - - Unexpected character '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1035) - - - - - This token is reserved for future use - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1056) - - - - - This Unicode encoding is only valid in string literals - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1055) - - - - - TABs are not allowed in F# code unless the #indent \"off\" option is used - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1057) - - - - - This number is outside the allowable range for 32-bit unsigned integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1044) - - - - - This number is outside the allowable range for 32-bit signed integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1043) - - - - - This number is outside the allowable range for 64-bit unsigned integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1046) - - - - - This number is outside the allowable range for 64-bit signed integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1045) - - - - - This number is outside the allowable range for 16-bit unsigned integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1042) - - - - - This number is outside the allowable range for 16-bit signed integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1041) - - - - - This number is outside the allowable range for unsigned native integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1048) - - - - - This number is outside the allowable range for signed native integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1047) - - - - - This number is outside the allowable range for this integer type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1033) - - - - - This number is outside the allowable range for 8-bit unsigned integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1040) - - - - - This number is outside the allowable range for hexadecimal 8-bit signed integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1039) - - - - - This number is outside the allowable range for 8-bit signed integers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1038) - - - - - This number is outside the allowable range for 32-bit floats - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1051) - - - - - This number is outside the allowable range for decimal literals - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1050) - - - - - \U%s is not a valid Unicode character escape sequence - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1142) - - - - - This is not a valid numeric literal. Sample formats include 4, 0x4, 0b0100, 4L, 4UL, 4u, 4s, 4us, 4y, 4uy, 4.0, 4.0f, 4I. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1052) - - - - - Invalid line number: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1058) - - - - - Invalid floating point number - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1049) - - - - - This is not a valid character literal - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1054) - - - - - This is not a valid byte literal - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1053) - - - - - Consider using a file with extension '.ml' or '.mli' instead - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1112) - - - - - Identifiers followed by '%s' are reserved for future use - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1037) - - - - - #if directive should be immediately followed by an identifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1065) - - - - - #if directive must appear as the first non-whitespace character on a line - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1059) - - - - - #endif has no matching #if - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1063) - - - - - #endif required for #else - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1061) - - - - - #endif directive must appear as the first non-whitespace character on a line - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1064) - - - - - #else has no matching #if - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1060) - - - - - #else directive must appear as the first non-whitespace character on a line - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1062) - - - - - #! may only appear as the first line at the start of a file. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1067) - - - - - '%s' is not permitted as a character in operator names and is reserved for future use - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1034) - - - - - This byte array literal contains characters that do not encode as a single byte - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1036) - - - - - The 'anycpu32bitpreferred' platform flag may only be used with .NET Framework versions 4.5 and greater. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1307) - - - - - The 'anycpu32bitpreferred' platform can only be used with EXE targets. You must use 'anycpu' instead. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1303) - - - - - invalid namespace for provided type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1208) - - - - - invalid full name for provided type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1209) - - - - - Invalid provided literal value '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1302) - - - - - The type '%s' is required here and is unavailable. You must add a reference to assembly '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:990) - - - - - A reference to the type '%s' in assembly '%s' was found, but the type could not be found in that assembly - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:991) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:993) - - - - - Internal error or badly formed metadata: not enough type parameters were in scope while importing - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:992) - - - - - Invalid number of generic arguments to type '%s' in provided type. Expected '%d' arguments, given '%d'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1278) - - - - - Invalid value unit-of-measure parameter '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1280) - - - - - Invalid value '%s' for unit-of-measure parameter '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1279) - - - - - An imported assembly uses the type '%s' but that type is not public - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:994) - - - - - Invalid argument to 'methodhandleof' during codegen - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1240) - - - - - MDB generation failed. Could not find compatible member %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1121) - - - - - The name of the MDB file must be <assembly-file-name>.mdb. The --pdb option will be ignored. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1120) - - - - - Unexpected error creating debug information file '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1029) - - - - - Cannot generate MDB debug information. Failed to load the 'MonoSymbolWriter' type from the 'Mono.CompilerServices.SymbolWriter.dll' assembly. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1122) - - - - - Compiler error: unexpected unrealized value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:842) - - - - - Unexpected GetSet annotation on a property - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:845) - - - - - Undefined value '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:829) - - - - - This type cannot be used for a literal field - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:844) - - - - - The StructLayout attribute could not be decoded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:847) - - - - - GenSetStorage: %s was represented as a static method but was not an appropriate lambda expression - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:840) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:837) - - - - - Reflected definitions cannot contain uses of the prefix splice operator '%%' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:849) - - - - - Mutable variables cannot escape their method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:841) - - - - - The MarshalAs attribute could not be decoded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:836) - - - - - Main module of program is empty: nothing will happen when it is run - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:843) - - - - - Literal fields cannot be set - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:839) - - - - - Label %s not found - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:830) - - - - - Incorrect number of type arguments to local call - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:831) - - - - - The FieldOffset attribute could not be decoded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:846) - - - - - The FieldOffset attribute can only be placed on members of types marked with the StructLayout(LayoutKind.Explicit) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1115) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1107) - - - - - Dynamic invocation of %s is not supported - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:832) - - - - - The DllImport attribute could not be decoded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:838) - - - - - The DefaultAugmentation attribute could not be decoded - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:848) - - - - - Custom marshallers cannot be specified in F# code. Consider using a C# helper function. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:835) - - - - - This operation involves taking the address of a value '%s' represented using a local variable or other special representation. This is invalid. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:834) - - - - - Taking the address of a literal field is invalid - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:833) - - - - - 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). - - - - - Conflicting options specified: 'win32manifest' and 'win32res'. Only one of these can be used. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1148) - - - - - Exiting - too many errors - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1144) - - - - - System.Runtime.InteropServices assembly is required to use UnknownWrapper\DispatchWrapper classes. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1336) - - - - - Static linking may not use assembly that targets different profile. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1167) - - - - - Static linking may not include a mixed managed/unmanaged DLL - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1152) - - - - - Static linking may not include a .EXE - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1151) - - - - - 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 <EmbeddedResource> item in the .fsproj project file. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1166) - - - - - The resident compilation service was not used because a problem occured in communicating with the server. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1164) - - - - - The assembly '%s' is listed on the command line. Assemblies should be referenced using a command line flag such as '-r'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1163) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1150) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1149) - - - - - A problem occurred writing the binary '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1157) - - - - - No implementation files specified - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1146) - - - - - Option '--keycontainer' overrides attribute 'System.Reflection.AssemblyNameAttribute' given in a source file or added module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1162) - - - - - Option '--keyfile' overrides attribute 'System.Reflection.AssemblyKeyFileAttribute' given in a source file or added module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1161) - - - - - The key file '%s' could not be opened - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1156) - - - - - Ignoring mixed managed/unmanaged assembly '%s' during static linking - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1153) - - - - - Option '--delaysign' overrides attribute 'System.Reflection.AssemblyDelaySignAttribute' given in a source file or added module - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1160) - - - - - An %s specified version '%s', but this value is invalid and has been ignored - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1147) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1154) - - - - - The 'AssemblyVersionAttribute' has been ignored because a version was given using a command line option - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1158) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1155) - - - - - Error emitting 'System.Reflection.AssemblyCultureAttribute' attribute -- 'Executables cannot be satellite assemblies, Culture should always be empty' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1159) - - - - - Prefix flag (' ' or '+') set twice - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:230) - - - - - Precision missing after the '.' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:235) - - - - - Positional specifiers are not permitted in format strings - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:227) - - - - - Missing format specifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:228) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:238) - - - - - The # formatting modifier is invalid in F# - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:231) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:239) - - - - - '%s' format does not support precision - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:236) - - - - - '%s' flag set twice - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:229) - - - - - '%s' format does not support '0' flag - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:234) - - - - - '%s' does not support prefix '%s' flag - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:240) - - - - - Bad width in format specifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:233) - - - - - Bad precision in format specifier - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:232) - - - - - Bad format specifier: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:241) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:237) - - - - - The record, struct or class field '%s' is not accessible from this code location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:966) - - - - - This construct is experimental - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:968) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:961) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1190) - - - - - Invalid member '%s' on provided type '%s'. Only properties, methods and constructors are allowed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1182) - - - - - Unsupported constant type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1189) - - - - - Unknown static argument kind '%s' when resolving a reference to a provided type or method '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1207) - - - - - Unexpected 'null' return value from provided type '%s' member '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1202) - - - - - Unexpected exception from provided type '%s' member '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1188) - - - - - Unexpected exception from member '%s' of provided type '%s' member '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1203) - - - - - Type provider assembly '%s' is not trusted and will not be loaded for security reasons. This may cause subsequent build errors. See the 'F# Tools' section of Visual Studio options for more information. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1290) - - - - - The type provider constructor has thrown an exception: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1212) - - - - - Too many static parameters. Expected at most %d parameters, but got %d unnamed and %d named parameters. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1301) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1232) - - - - - The static parameter '%s' has already been given a value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1234) - - - - - The type provider returned 'null', which is not a valid return value from '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1211) - - - - - Assembly attribute '%s' refers to a designer assembly '%s' which cannot be loaded or doesn't exist. %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1194) - - - - - The type provider '%s' reported an error in the context of provided type '%s', member '%s'. The error: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1225) - - - - - The type provider '%s' reported an error: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1196) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1195) - - - - - The '%s' of a provided type was null or empty. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1227) - - - - - An exception occurred when accessing the '%s' of a provided type: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1226) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1241) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1242) - - - - - Expected provided type with path '%s' but provided type has path '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1201) - - - - - Expected provided type named '%s' but provided type has 'Name' with value '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1191) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1214) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1215) - - - - - Property '%s' on provided type '%s' is neither readable nor writable as it has CanRead=false and CanWrite=false - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1281) - - - - - Property '%s' on provided type '%s' has CanWrite=false but GetSetMethod() returned a method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1186) - - - - - Property '%s' on provided type '%s' has CanRead=false but GetGetMethod() returned a method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1184) - - - - - Property '%s' on provided type '%s' has CanWrite=true but there was no value from GetSetMethod() - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1185) - - - - - Property '%s' on provided type '%s' has CanRead=true but there was no value from GetGetMethod() - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1183) - - - - - One or more errors seen during provided type setup - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1187) - - - - - Type provider '%s' returned null from GetInvokerExpression. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1213) - - - - - The provided type '%s' returned a member with a null or empty member name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1172) - - - - - The provided type '%s' has member '%s' which has declaring type '%s'. Expected declaring type to be the same as provided type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1175) - - - - - The provided type '%s' member info '%s' has null declaring type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1174) - - - - - The provided type '%s' returned a null member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1173) - - - - - No static parameter exists with name '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1233) - - - - - Nested provided types do not take static arguments or generic parameters - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1204) - - - - - Provided type '%s' has 'IsGenericType' as true, but generic types are not supported. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1179) - - - - - Provided type '%s' has 'IsArray' as true, but array types are not supported. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1180) - - - - - Multiple static parameters exist with name '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1235) - - - - - Invalid member '%s' on provided type '%s'. Provided type members must be public, and not be generic, virtual, or abstract. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1181) - - - - - Assembly '%s' hase TypeProviderAssembly attribute with invalid value '%s'. The value should be a valid assembly name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1220) - - - - - Invalid static argument to provided type. Expected an argument of kind '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1205) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1198) - - - - - The type provider '%s' provided a constructor which is not reported among the constructors of its declaring type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1199) - - - - - The type provider '%s' used an invalid parameter in the ParameterExpression: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1197) - - - - - Character '%s' is not allowed in provided type name '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1228) - - - - - Character '%s' is not allowed in provided namespace name '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1171) - - - - - Referenced assembly '%s' has assembly level attribute '%s' but no public type provider classes were found - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1176) - - - - - Event '%s' on provided type '%s' has no value from GetRemoveMethod() - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1193) - - - - - Event '%s' on provided type '%s' has no value from GetAddMethod() - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1192) - - - - - An error occured applying the static arguments to a provided type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1206) - - - - - An error occured applying the static arguments to a provided method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1339) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1305) - - - - - Type '%s' from type provider '%s' has an empty namespace. Use 'null' for the global namespace. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1177) - - - - - Empty namespace found from the type provider '%s'. Use 'null' for the global namespace. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1178) - - - - - A direct reference to the generated type '%s' 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1200) - - - - - Named static arguments must come after all unnamed static arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1231) - - - - - A type provider implemented GetStaticParametersForMethod, but ApplyStaticArgumentsForMethod was not implemented or invalid - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1338) - - - - - Erased to - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1311) - - - - - System.Environment.Exit did not exit - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:245) - - - - - The treatment of this operator is now handled directly by the F# compiler and its meaning cannot be redefined - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:246) - - - - - The documentation file has no .xml suffix - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1145) - - - - - (description unavailable...) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1318) - - - - - Delegates are not allowed to have curried signatures - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:971) - - - - - %s var in collection - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1247) - - - - - %s var in collection %s (outerKey = innerKey). Note that parentheses are required after '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1245) - - - - - %s var in collection %s (outerKey = innerKey) into group. Note that parentheses are required after '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1246) - - - - - None of the types '%s' support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:327) - - - - - None of the types '%s' support the operator '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:325) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:344) - - - - - The type '%s' is not compatible with any of the types %s, arising from the use of a printf-style format string - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:347) - - - - - The type '%s' is not a CLI enum type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:341) - - - - - The type '%s' is not a CLI delegate type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:343) - - - - - Type instantiation length mismatch - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:351) - - - - - Type inference problem too complicated (maximum iteration depth reached). Consider adding further type annotations. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:320) - - - - - The type '%s' has a non-standard delegate type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:342) - - - - - The type '%s' does not support the operator '%s'. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:328) - - - - - The type '%s' does not support the operator '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:326) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:340) - - - - - The type '%s' does not support the 'equality' constraint because it is a function type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:339) - - - - - The type '%s' does not support the 'equality' constraint because it has the 'NoEquality' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:338) - - - - - The type '%s' does not support a conversion to the type '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:329) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:337) - - - - - The type '%s' does not support the 'comparison' constraint. For example, it does not support the 'System.IComparable' interface - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:336) - - - - - The type '%s' does not support the 'comparison' constraint because it has the 'NoComparison' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:335) - - - - - The type '%s' does not have 'null' as a proper value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:333) - - - - - The declared type parameter '%s' cannot be used here since the type parameter cannot be resolved at compile time - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:318) - - - - - The constraints 'struct' and 'not struct' are inconsistent - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:332) - - - - - The available overloads are shown below (or in the Error List window). - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:381) - - - - - The required signature is %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:363) - - - - - Optional arguments not permitted here - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:352) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:334) - - - - - No overloads match for method '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:378) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:376) - - - - - No %s member or object constructor named '%s' takes %d arguments. Note the call to this member also provides %d named arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:375) - - - - - No %s member or object constructor named '%s' takes %d arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:374) - - - - - Method or object constructor '%s' not found - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:377) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:379) - - - - - %s is not an instance method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:361) - - - - - %s is not a static method - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:360) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:330) - - - - - The type '%s' has a method '%s' (full name '%s'), but the method is not static - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:331) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:357) - - - - - The member or object constructor '%s' takes %d type argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:370) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:368) - - - - - The member or object constructor '%s' takes %d argument(s) but is here given %d. The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:369) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:367) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. Some names for missing arguments are %s. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:366) - - - - - The member or object constructor '%s' requires %d additional argument(s). The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:365) - - - - - The member or object constructor '%s' requires %d argument(s). The required signature is '%s'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:364) - - - - - The member or object constructor '%s' does not take %d argument(s). An overload was found taking %d arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:373) - - - - - The member or object constructor '%s' taking %d arguments are not accessible from this code location. All accessible versions of method '%s' take %d arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:371) - - - - - %s is not a static member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:353) - - - - - %s is not an instance member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:354) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:359) - - - - - The member or object constructor '%s' is not %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:358) - - - - - The member or object constructor '%s' has no argument or settable return property '%s'. %s. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:362) - - - - - This indexer expects %d arguments but is here given %d - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:322) - - - - - Incorrect generic instantiation. No %s member named '%s' takes %d generic arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:372) - - - - - A generic construct requires that the type '%s' is an unmanaged type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:346) - - - - - A generic construct requires that the type '%s' is a CLI or F# struct type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:345) - - - - - A generic construct requires that the type '%s' have reference semantics, but it does not, i.e. it is a struct - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:348) - - - - - A generic construct requires that the type '%s' have a public default constructor - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:350) - - - - - A generic construct requires that the type '%s' be non-abstract - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:349) - - - - - Expected arguments to an instance member - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:321) - - - - - Expecting a type supporting the operator '%s' but given a tuple type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:324) - - - - - Expecting a type supporting the operator '%s' but given a function type. You may be missing an argument to a function. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:323) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:319) - - - - - Candidates: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:380) - - - - - The argument types don't match - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:356) - - - - - Argument length mismatch - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:355) - - - - - Quotations cannot contain expressions that set union case fields - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:307) - - - - - Quotations cannot contain expressions that set fields in exception values - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:308) - - - - - Quotations cannot contain expressions that require byref pointers - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:309) - - - - - Quotations cannot contain expressions that fetch union case indexes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:306) - - - - - Quotations cannot contain this kind of type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:314) - - - - - Quotations cannot contain this kind of pattern match - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:312) - - - - - Quotations cannot contain this kind of constant - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:311) - - - - - Quotations cannot contain expressions that fetch static fields - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:303) - - - - - Quotations cannot contain object expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:301) - - - - - Quotations cannot contain inline assembly code or pattern matching on arrays - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:304) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:300) - - - - - Quotations cannot contain uses of generic expressions - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:299) - - - - - Quotations cannot contain descending for loops - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:305) - - - - - Quotations cannot contain array pattern matching - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:313) - - - - - Quotations cannot contain expressions that take the address of a field - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:302) - - - - - Quotations cannot contain expressions that make member constraint calls, or uses of operators that implicitly resolve to a member constraint call - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:310) - - - - - A quotation may not involve an assignment to or taking the address of a captured local variable - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1308) - - - - - Inner generic functions are not permitted in quoted expressions. Consider adding some type constraints until this function is no longer generic. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1133) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:298) - - - - - The variable '%s' is used in an invalid way - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:253) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:293) - - - - - The value '%s' is unused - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1082) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1083) - - - - - default augmentation of the union case - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:278) - - - - - compiled form of the union case - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:277) - - - - - The type '%s' is less accessible than the value, member or type '%s' it is used in - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:254) - - - - - A type variable has been constrained by multiple different class types. A type variable may only have one class constraint. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1319) - - - - - 'System.Void' can only be used as 'typeof<System.Void>' in F# - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:255) - - - - - Expression-splicing operators may only be used within quotations - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:258) - - - - - A method return type would contain byrefs which is not permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:270) - - - - - [<ReflectedDefinition>] terms cannot contain uses of the prefix splice operator '%%' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:275) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:250) - - - - - Name clash. The property '%s' has the same name as a method in this type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:279) - - - - - The property '%s' has the same name as another property in this type, but one takes indexer arguments and the other does not. You may be missing an indexer argument to one of your properties. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:281) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:264) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1124) - - - - - First-class uses of the expression-splicing operator are not permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:259) - - - - - First-class uses of the 'reraise' function is not permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:261) - - - - - First-class uses of the address-of operators are not permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:260) - - - - - Type '%s' is illegal because in byref<T>, T cannot contain byref types. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1289) - - - - - The type abbreviation contains byrefs. This is not permitted by F#. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:294) - - - - - The byref typed value '%s' cannot be used at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:262) - - - - - A byref typed value would be stored here. Top-level let-bound byref values are not permitted. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:274) - - - - - The address of the static field '%s' cannot be used at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:266) - - - - - The address of the variable '%s' cannot be used at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:265) - - - - - The address of an array element cannot be used at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:268) - - - - - The address of the field '%s' cannot be used at this point - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:267) - - - - - This type implements the same interface at different generic instantiations '%s' and '%s'. This is not permitted in this version of F#. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:292) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:273) - - - - - 'base' values may only be used to make direct calls to the base implementations of overridden members - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:263) - - - - - Invalid custom attribute value (not a constant or literal) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:271) - - - - - The property '%s' has a getter and a setter that do not match. If one is abstract then the other must be as well. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:280) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1328) - - - - - The type of a first-class function cannot contain byrefs - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:269) - - - - - A type instantiation involves a byref type. This is not permitted by the rules of Common IL. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:256) - - - - - Calls to 'reraise' may only occur directly in a handler of a try-with - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:257) - - - - - A function labeled with the 'EntryPointAttribute' attribute must be the last declaration in the last file in the compilation sequence, and can only be used when compiling to a .exe - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:276) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type once tuples, functions, units of measure and/or provided types are erased. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:289) - - - - - Duplicate property. The property '%s' has the same name and signature as another property in this type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:288) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type once tuples, functions, units of measure and/or provided types are erased. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:285) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:291) - - - - - Duplicate method. The abstract method '%s' has the same name and signature as an abstract method in an inherited type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:290) - - - - - The method '%s' has curried arguments but has the same name as another method in this type. Methods with curried arguments cannot be overloaded. Consider using a method taking tupled arguments. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:286) - - - - - Duplicate method. The method '%s' has the same name and signature as another method in this type. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:284) - - - - - Methods with curried arguments cannot declare 'out', 'ParamArray', 'optional', 'ReflectedDefinition' or 'byref' arguments - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:287) - - - - - A type would store a byref typed value. This is not permitted by Common IL. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:282) - - - - - The byref-typed variable '%s' is used in an invalid way. Byrefs cannot be captured by closures or passed to inner functions. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:251) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:252) - - - - - The attribute type '%s' has 'AllowMultiple=false'. Multiple instances of this attribute cannot be attached to a single language element. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:272) - - - - - The operator '%s' cannot be resolved. Consider opening the module 'Microsoft.FSharp.Linq.NullableOperators'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1322) - - - - - Unrecognized option: '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:59) - - - - - The non-generic type '%s' does not expect any type arguments, but here is given %d type argument(s) - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:17) - - - - - Filename '%s' contains invalid character '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1131) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:56) - - - - - A signature for the file or module '%s' has already been specified - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:53) - - - - - The search directory '%s' could not be found - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:27) - - - - - The file '%s' is a CLI 1.x version of mscorlib. F# requires CLI version 2.0 or greater. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:32) - - - - - F# Compiler for F# 4.0 %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:21) - - - - - Problem with filename '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:22) - - - - - Problem reading assembly '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1315) - - - - - The '--pdb' option requires the '--debug' option to be used - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:25) - - - - - Option requires parameter: %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:41) - - - - - No inputs specified - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:23) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:40) - - - - - Multiple references to '%s.dll' are not permitted - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:31) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:39) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:34) - - - - - The referenced or default base CLI library 'mscorlib' is binary-incompatible with the referenced F# core library '%s'. Consider recompiling the library or making an explicit reference to a version of this library that matches the CLI version you are using. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:36) - - - - - The output name extension doesn't match the options used. If '-a' or '--target:library' is used the output file name must end with '.dll', if '--target:module' is used the output extension must be '.netmodule', otherwise '.exe'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:24) - - - - - Invalid warning number '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:18) - - - - - Invalid version string '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:19) - - - - - Invalid version file '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:20) - - - - - The file extension of '%s' is not recognized. Source files must have extension .fs, .fsi, .fsx, .fsscript, .ml or .mli. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:43) - - - - - The search directory '%s' is invalid - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:26) - - - - - Unrecognized privacy setting '%s' for managed resource, valid options are 'public' and 'private' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:30) - - - - - Invalid module or namespace name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:60) - - - - - Invalid directive. Expected '#time', '#time \"on\"' or '#time \"off\"'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:51) - - - - - Invalid directive. Expected '#r \"<file-or-assembly>\"'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:49) - - - - - Invalid directive. Expected '#load \"<file>\" ... \"<file>\"'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:50) - - - - - Invalid directive. Expected '#I \"<path>\"'. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:48) - - - - - '%s' is not a valid filename - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:28) - - - - - '%s' is not a valid assembly name - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:29) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:38) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:54) - - - - - An implementation of the file or module '%s' has already been given - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:55) - - - - - When mscorlib.dll or FSharp.Core.dll is explicitly referenced the %s option must also be passed - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1126) - - - - - FSharp.Core.sigdata not found alongside FSharp.Core - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1127) - - - - - File '%s' not found alongside FSharp.Core - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1129) - - - - - Error opening binary file '%s': %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:46) - - - - - Directives inside modules are ignored - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:52) - - - - - The F#-compiled DLL '%s' needs to be recompiled to be used with this version of F# - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:47) - - - - - Did not expect to find sigdata resource in FSharp.Core.dll - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1130) - - - - - Did not expect to find optdata resource in FSharp.Core.dll - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1128) - - - - - Could not resolve assembly '%s' required by '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:45) - - - - - Could not resolve assembly '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:44) - - - - - Could not read version from mscorlib.dll - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:33) - - - - - Source file '%s' could not be found - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:42) - - - - - The file extensions '.ml' and '.mli' are for ML compatibility - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1111) - - - - - Unable to read assembly '%s' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:35) - - - - - Assembly resolution failure at or near this location - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:37) - - - - - '%s' is not a valid integer argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:57) - - - - - '%s' is not a valid floating point argument - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:58) - - - - - A type cannot have both the 'ReferenceEquality' and 'StructuralEquality' or 'StructuralComparison' attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:216) - - - - - The 'StructuralEquality' attribute must be used in conjunction with the 'NoComparison' or 'StructuralComparison' attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:215) - - - - - The 'StructuralComparison' attribute must be used in conjunction with the 'StructuralEquality' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:214) - - - - - A type with attribute 'ReferenceEquality' cannot have an explicit implementation of 'Object.Equals(obj)', 'System.IEquatable<_>' or 'System.Collections.IStructuralEquatable' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:218) - - - - - Only record, union, exception and struct types may be augmented with the 'ReferenceEquality', 'StructuralEquality' and 'StructuralComparison' attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:217) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:211) - - - - - The 'NoEquality' attribute must be used in conjunction with the 'NoComparison' attribute - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:213) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:221) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:222) - - - - - This type uses an invalid mix of the attributes 'NoEquality', 'ReferenceEquality', 'StructuralEquality', 'NoComparison' and 'StructuralComparison' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:212) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:219) - - - - - The 'CustomEquality' attribute must be used in conjunction with the 'NoComparison' or 'CustomComparison' attributes - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:223) - - - - - A type with attribute 'CustomComparison' must have an explicit implementation of at least one of 'System.IComparable' or 'System.Collections.IStructuralComparable' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:220) - - - - - Error while parsing embedded IL type - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:205) - - - - - Error while parsing embedded IL - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:204) - - - - - Invalid expression on left of assignment - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:207) - - - - - This indexer notation has been removed from the F# language - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:206) - - - - - .NET Framework - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:954) - - - - - Global Assembly Cache - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:955) - - - - - Found by AssemblyFolders registry key - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:952) - - - - - Found by AssemblyFoldersEx registry key - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:953) - - - - - Active pattern '%s' is not a function - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1113) - - - - - 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<int,unit> = A x' - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:1114) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:1337) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is virtual and the other isn't - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:113) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:105) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is static and the other isn't - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:112) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:118) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe respective type parameter counts differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:104) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is marked as an override and the other isn't - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:116) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:103) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is a constructor/property and the other is not - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:117) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:97) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe literal constant values and/or attributes differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:102) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:119) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe inline flags differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:101) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:108) - - - - - 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 [<Measure>] attribute. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:109) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is final and the other isn't - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:115) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is an extension member and the other is not - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:106) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe CLI member names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:111) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe display names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:99) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe compiled names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:98) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nThe mutability attributes differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:96) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nAn arity was not inferred for this value - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:107) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:110) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:100) - - - - - Module '%s' contains\n %s \nbut its signature specifies\n %s \nOne is abstract and the other isn't - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:114) - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe types of the fields differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:154) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:152) - - - - - The module contains the constructor\n %s \nbut its signature specifies\n %s \nThe respective number of data fields differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:153) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:155) - - - - - Invalid recursive reference to an abstract slot - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:960) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe types differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:161) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'static' modifiers differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:158) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:156) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'mutable' modifiers differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:159) - - - - - The module contains the field\n %s \nbut its signature specifies\n %s \nThe 'literal' modifiers differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:160) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:157) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:180) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:177) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:184) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:182) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:183) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:181) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:178) - - - - - 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 C:\projects\fsharp\src\fsharp\FSComp.txt:179) - - - - - The %s definitions in the signature and implementation are not compatible because the types have different base types - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:132) - - - - - The %s definitions in the signature and implementation are not compatible because a type representation is being hidden by a signature - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:138) - - - - - The %s definitions in the signature and implementation are not compatible because the types are of different kinds - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:139) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:127) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:126) - - - - - The %s definitions 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:131) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:134) - - - - - The %s definitions in the signature and implementation are not compatible because the signature declares a %s while the implementation declares a %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:148) - - - - - The %s definitions in the signature and implementation are not compatible because the signature has an abbreviation while the implementation does not - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:151) - - - - - The %s definitions in the signature and implementation are not compatible because the representations differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:141) - - - - - The %s definitions in the signature and implementation are not compatible because the respective type parameter counts differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:121) - - - - - The %s definitions in the signature and implementation are not compatible because the number of %ss differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:133) - - - - - The %s definitions in the signature and implementation are not compatible because the names differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:120) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:123) - - - - - The %s definitions 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:128) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:125) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:124) - - - - - The %s definitions 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:129) - - - - - The %s definitions 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. - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:130) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:136) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:135) - - - - - The %s definitions in the signature and implementation are not compatible because the IL representations differ - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:140) - - - - - The %s definitions in the signature and implementation are not compatible because the field %s was present in the implementation but not in the signature - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:142) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:144) - - - - - The %s definitions in the signature and implementation are not compatible because the order of the fields is different in the signature and implementation - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:143) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:145) - - - - - The %s definitions in the signature and implementation are not compatible because a CLI type representation is being hidden by a signature - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:137) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:122) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:147) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:146) - - - - - The %s definitions in the signature and implementation are not compatible because the abbreviations differ: %s versus %s - (Originally from C:\projects\fsharp\src\fsharp\FSComp.txt:149) - - - - - The %s definitions 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 C:\projects\fsharp\src\fsharp\FSComp.txt:150) - - - - - Note this operation is O(n) anyway, so executing ToFlatList() here is OK - - - - - Note this operation is O(1), unless a push happens, which is rare - - - - - Iterable functional collection with O(1) append-1 time. Useful for data structures where elements get added at the - end but the collection must occadionally be iterated. Iteration is slower and may allocate because - a suffix of elements is stored in reverse order. - - The type doesn't support structural hashing or comparison. - - - - - Lookup the value without making it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. Return None if it wasn't there. - - - - - Remove the given value from the collection. - - - - - Add an element to the collection. Make it the most recent. - - - - - Remove all elements. - - - - - Simple aging lookup table. When a member is accessed it's - moved to the top of the list and when there are too many elements - the least-recently-accessed element falls of the end. - - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - Lookup or set the given element in the table. Set replaces all existing bindings for a value with a single - bindings. Raise <c>KeyNotFoundException</c> if the element is not found. - - - - - The total number of keys in the hash table - - - - - Lookup the given element in the table, returning the result as an Option - - - - - Replace the latest binding (if any) for the given element. - - - - - Remove the latest binding (if any) for the given element from the table - - - - -Apply the given function to each binding in the hash table - - - - - Apply the given function to each element in the collection threading the accumulating parameter - through the sequence of function applications - - - - - Find all bindings for the given element in the table, if any - - - - - Make a shallow copy of the collection - - - - - Test if the collection contains any bindings for the given element - - - - - Clear all elements from the collection - - - - - Add a binding for the element to the table - - - - - Build a map that contains the bindings of the given IEnumerable - - - - - Create a new empty mutable HashMultiMap with an internal bucket array of the given approximate size - and with the given key hash/equality functions - - - - - Create a new empty mutable HashMultiMap with the given key hash/equality functions - - - - - Hash tables, by default based on F# structural "hash" and (=) functions. - The table may map a single key to multiple bindings. - - - - - Return each distinct item in the list using reference equality. - - - - - Return a new list with one element for each unique 'TKey. Multiple 'TValues are flattened. The original order of the first instance of 'TKey is preserved. - - - - - Get the most recent item if there is one. - - - - - Set the value for the given key. This value does not have to agree with computed value. - - - - - Remove the given value from the mru cache. - - - - - Get the value for the given key or None if not already available - - - - - Get the value for the given key. Compute if necessary. - - - - - Clear out the cache. - - - - - Simple priority caching for a small number of key\value associations. - This cache may age-out results that have been Set by the caller. - Because of this, the caller must be able to tolerate values - that aren't what was originally passed to the Set function. - - - - - Lookup an element in the map. Raise <c>KeyNotFoundException</c> if no binding - exists in the map. - - - - - Return true if there are no bindings in the map. - - - - - The number of bindings in the map - - - - - Lookup an element in the map, returning a <c>Some</c> value if the element is in the domain - of the map and <c>None</c> if not. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array - - - - - Remove an element from the domain of the map. No exception is raised if the element is not present. - - - - - Build two new maps, one containing the bindings for which the given predicate returns 'true', - and the other the remaining bindings. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - - - - - Build a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The index passed to the - function indicates the index of element being transformed. - - - - - Apply the given function to each binding in the dictionary - - - - - Return true if the given predicate returns true for all of the - bindings in the map. Always returns true if the map is empty. - - - - - Given the start and end points of a key range, - Fold over the bindings in the map that are in the range, - and the end points are included if present (the range is considered a closed interval). - - - - - Fold over the bindings in the map. - - - - - Fold over the bindings in the map. - - - - - Search the map looking for the first element where the given function returns a <c>Some</c> value - - - - - Build a new map containing the bindings for which the given predicate returns 'true'. - - - - - Return true if the given predicate returns true for one of the - bindings in the map. Always returns false if the map is empty. - - - - - The empty map, and use the given comparer comparison function for all operations associated - with any maps built from this map. - - - - - Build a map that contains the bindings of the given IEnumerable - and where comparison of elements is based on the given comparison function - - - - - Test is an element is in the domain of the map - - - - - Return a new map with the binding added to the given map. - - - - - Immutable maps. Keys are ordered by construction function specified - when creating empty maps or by F# structural comparison if no - construction function is specified. - - <performance> - Maps based on structural comparison are - efficient for small keys. They are not a suitable choice if keys are recursive data structures - or require non-structural comparison semantics. - </performance> - Immutable maps. A constraint tag carries information about the class of key-comparers being used. - - - - - Return a new set with the elements of the second set removed from the first. - - - - - Compute the union of the two sets. - - - - - Returns the lowest element in the set according to the ordering being used for the set - - - - - Returns the highest element in the set according to the ordering being used for the set - - - - - A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. - - - - - Return the number of elements in the set - - - - - The number of elements in the set - - - - - Compute the union of the two sets. - - - - - The elements of the set as a list. - - - - - The elements of the set as an array. - - - - - A singleton set based on the given comparison operator - - - - - A useful shortcut for Set.remove. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Build two new sets, one containing the elements for which the given predicate returns 'true', - and the other the remaining elements. - - - - - Apply the given function to each binding in the collection - - - - - Evaluates to "true" if all elements of the first set are in the second - - - - - Evaluates to "true" if all elements of the second set are in the first - - - - - Compute the intersection of the two sets. - - - - - Test if all elements of the collection satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and <c>j0...jN</c> then - computes <c>p i0 && ... && p iN</c>. - - - - - Apply the given accumulating function to all the elements of the set - - - - - Return a new collection containing only the elements of the collection - for which the given predicate returns "true" - - - - - Test if any element of the collection satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> then computes - <c>p i0 or ... or p iN</c>. - - - - - Compares two sets and returns true if they are equal or false otherwise - - - - - The empty set based on the given comparer - - - - - Return a new set with the elements of the second set removed from the first. - - - - - A set based on the given comparer containing the given initial elements - - - - - A useful shortcut for Set.contains. See the Set module for further operations on sets. - - - - - Compares a and b and returns 1 if a > b, -1 if b < a and 0 if a = b - - - - - A useful shortcut for Set.add. Note this operation prodcues a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - - - - - Immutable sets based on binary trees, default tag - Immutable sets where a constraint tag carries information about the class of key-comparer being used. - - - - - Try to find the F# compiler location by looking at the "fsharpi" script installed by F# packages - - - - - The F# version reported in the banner - - - - - Convert string into Option string where null and String.Empty result in None - - - - - Get the filename without extenstion of the given path - - - - - Get the filename of the given path - - - - - Return true if the filename has a "." extension - - - - - "directoryName" " decomposes a filename into a directory name - - - - - "chopExtension f" removes the extension from the given - filename. Raises ArgumentException if no extension is present. - - - - - "checkSuffix f s" returns true if filename "f" ends in suffix "s", - e.g. checkSuffix "abc.fs" ".fs" returns true. - - - - - Some filename operations. - - - - - Split an array of pairs into two arrays - - - - - Combine the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an <c>ArgumentException</c> is - raised.. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. - - - - - Return an array containing the given element - - - - - Like <c>foldBack</c>, but return both the intermediary and final results - - - - - Like <c>fold</c>, but return the intermediary and final results - - - - - Build a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply the given function to pair of elements drawn from matching indices in two arrays, - also passing the index of the elements. The two arrays must have the same lengths, - otherwise an <c>ArgumentException</c> is raised. - - - - - Return true if the given array is empty, otherwise false - - - - - Test elements of the two arrays pairwise to see if all pairs of elements satisfy the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - Apply a function to pairs of elements drawn from the two collections, right-to-left, - threading an accumulator argument through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to pairs of elements drawn from the two collections, - left-to-right, threading an accumulator argument - through the computation. The two input - arrays must have the same lengths, otherwise an <c>ArgumentException</c> is - raised. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN-1 iN))</c>. Raises ArgumentException if the array has size zero. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f i0 i1)...) iN</c>. Raises ArgumentException if the array has size zero. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Return the index of the first element in the array - that satisfies the given predicate. Raise <c>KeyNotFoundException</c> if - none of the elements satisfy the predicate. - - - - - Test elements of the two arrays pairwise to see if any pair of element satisfies the given predicate. - Raise ArgumentException if the arrays have different lengths. - - - - - Return a view of the array as an enumerable object - - - - - Build a ResizeArray from the given elements - - - - - Return a fixed-length array containing the elements of the input ResizeArray - - - - - Sort the elements using the key extractor and generic comparison on the keys - - - - - Sort the elements using the given comparison function - - - - -Return a new array with the elements in reverse order - - - - -Apply the given function to successive elements, returning the first -result where function returns "Some(x)" for some x. - - - - -Return the first element for which the given function returns <c>true</c>. -Return None if no such element exists. - - - - -Return the first element for which the given function returns <c>true</c>. -Raise <c>KeyNotFoundException</c> if no such element exists. - - - - -Apply the given function to each element of the array. Return -the array comprised of the results "x" for each element where -the function returns Some(x) - - - - -Split the collection into two collections, containing the -elements for which the given predicate returns <c>true</c> and <c>false</c> -respectively - - - - -Return a new collection containing only the elements of the collection -for which the given predicate returns <c>true</c> - - - - - Test if all elements of the array satisfy the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> and "j0...jN" - then computes <c>p i0 && ... && p iN</c>. - - - - - Test if any element of the array satisfies the given predicate. - If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>p i0 or ... or p iN</c>. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. The integer index passed to the -function indicates the index of element being transformed. - - - - -Apply the given function to each element of the array. The integer passed to the -function indicates the index of element. - - - - -Build a new collection whose elements are the results of applying the given function -to the corresponding elements of the two collections pairwise. The two input -arrays must have the same lengths. - - - - -Apply the given function to two arrays simultaneously. The -two arrays must have the same lengths, otherwise an Invalid_argument exception is -raised. - - - - -Build a new array whose elements are the results of applying the given function -to each of the elements of the array. - - - - -Apply the given function to each element of the array. - - - - - Apply a function to each element of the array, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> then - computes <c>f i0 (...(f iN s))</c>. - - - - - Apply a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is <c>f</c> and the elements are <c>i0...iN</c> - then computes <c>f (... (f s i0)...) iN</c> - - - - -Build an array from the given list - - - - -Build a list from the given array - - - - -Read a range of elements from the first array and write them into the second. - - - - -Fill a range of the collection with the given element - - - - -Build a new array that contains the elements of the given array - - - - -Build a new array that contains the given subrange specified by -starting index and length. - - - - -Build a new array that contains the elements of each of the given list of arrays - - - - -Build a new array that contains the elements of the first array followed by the elements of the second array - - - - - Create an array by calling the given generator on each index. - - - - - Create an array whose elements are all initially the given value. - - - - - Set the value of an element in the collection. You can also use the syntax <c>arr.[idx] <- e</c>. - - - - - Fetch an element from the collection. You can also use the syntax <c>arr.[idx]</c>. - - - - - Return the length of the collection. You can also use property <c>arr.Length</c>. - - - - - Generic operations on the type System.Collections.Generic.List, which is called ResizeArray in the F# libraries. - - - - - A record of options to control structural formatting. - For F# Interactive properties matching those of this value can be accessed via the 'fsi' - value. - - Floating Point format given in the same format accepted by System.Double.ToString, - e.g. f6 or g15. - - If ShowProperties is set the printing process will evaluate properties of the values being - displayed. This may cause additional computation. - - The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects - to a small, finite depth, as determined by the printing parameters. - This may lead to additional computation being performed during printing. - - <example> - From F# Interactive the default settings can be adjusted using, for example, - <pre> - open Microsoft.FSharp.Compiler.Interactive.Settings;; - setPrintWidth 120;; - </pre> - </example> - - - - - The maximum number of rows for which to generate layout for table-like - structures. -1 if no maximum. - - - - - The maximum number of elements for which to generate layout for - list-like structures, or columns in table-like - structures. -1 if no maximum. - - - - - Return to the layout-generation - environment to layout any otherwise uninterpreted object - - - - - Data representing structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - Data representing structured layouts of terms. - Data representing joints in structured layouts of terms. The representation - of this data type is only for the consumption of formatting engines. - - - - - Convert any value to a layout using the given formatting options. The - layout can then be processed using formatting display engines such as - those in the LayoutOps module. any_to_string and output_any are - built using any_to_layout with default format options. - - - - - Ouput any value to a channel using the same set of formatting rules - as any_to_string - - - - - Convert any value to a string using a standard formatter - Data is typically formatted in a structured format, e.g. - lists are formatted using the "[1;2]" notation. - The details of the format are not specified and may change - from version to version and according to the flags given - to the F# compiler. The format is intended to be human-readable, - not machine readable. If alternative generic formats are required - you should develop your own formatter, using the code in the - implementation of this file as a starting point. - - Data from other .NET languages is formatted using a virtual - call to Object.ToString() on the boxed version of the input. - - - - - For limitting layout of list-like sequences (lists,arrays,etc). - unfold a list of items using (project and z) making layout list via itemL. - If reach maxLength (before exhausting) then truncate. - - - - - See tagL - - - - - Layout like an F# list. - - - - - Layout like an F# option. - - - - - Layout list vertically. - - - - - Layout two vertically. - - - - - Form tuple of layouts. - - - - - Wrap braces around layout. - - - - - Wrap square brackets around layout. - - - - - Wrap round brackets around Layout. - - - - - Join layouts into a list separated using the given Layout. - - - - - Join layouts into a semi-colon separated list. - - - - - Join layouts into a space separated list. - - - - - Join layouts into a comma separated list. - - - - - Join broken with ident=2 - - - - - Join broken with ident=1 - - - - - Join broken with ident=0 - - - - - Join, possible break with indent=2 - - - - - Join, possible break with indent=1 - - - - - Join, possible break with indent=0 - - - - - Join, unbreakable. - - - - - An string which is left parenthesis (no space on the right). - - - - - An string which is right parenthesis (no space on the left). - - - - - An string which requires no spaces either side. - - - - - An string leaf - - - - - An uninterpreted leaf, to be interpreted into a string - by the layout engine. This allows leaf layouts for numbers, strings and - other atoms to be customized according to culture. - - - - - Is it the empty layout? - - - - - The empty layout - - - - - A layout is a sequence of strings which have been joined together. - The strings are classified as words, separators and left and right parenthesis. - This classification determines where spaces are inserted. - A joint is either unbreakable, breakable or broken. - If a joint is broken the RHS layout occurs on the next line with optional indentation. - A layout can be squashed to for given width which forces breaks as required. - - - - - Interpret tables for a unicode lexer generated by fslex. - - - - - The type of tables for an unicode lexer generated by fslex. - - - - - The start position for the lexeme - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - The start position for the lexeme - - - - - The matched string - - - - - True if the refill of the buffer ever failed , or if explicitly set to true. - - - - - The end position for the lexeme - - - - - Dynamically typed, non-lexically scoped parameter table - - - - - Fast helper to turn the matched characters into a string, avoiding an intermediate array - - - - - Create a lex buffer that reads character or byte inputs by using the given function - - - - - Create a lex buffer suitable for Unicode lexing that reads characters from the given array - - - - - Input buffers consumed by lexers generated by <c>fslex.exe </c> - - - - - Return absolute offset of the start of the line marked by the position - - - - - The line number for the position in the input stream, assuming fresh positions have been updated - using for the new line - - - - - The line number in the input stream, assuming fresh positions have been updated - for the new line by modifying the EndPos property of the LexBuffer. - - - - - The file index for the file associated with the input stream, use fileOfFileIndex in range.fs to decode - - - - - Get an arbitrary position, with the empty string as filename, and - - - - - Return the column number marked by the position, i.e. the difference between the AbsoluteOffset and the StartOfLineAbsoluteOffset - - - - - The character number in the input stream - - - - - Gives a position shifted by specified number of characters - - - - - Given a position at the start of a token of length n, return a position just beyond the end of the token - - - - - Apply a #line directive - - - - - Position information stored for lexing tokens - - - - - The tag of the error terminal - - - - - The total number of terminals - - - - - This function is used to hold the user specified "parse_error" or "parse_error_rich" functions - - - - - This table is logically part of the Goto table - - - - - The sparse table offsets for the productions active for each state - - - - - The sparse table for the productions active for each state - - - - - The sparse goto table row offsets - - - - - The sparse goto table - - - - - The immediate action table - - - - - The number of symbols for each reduction - - - - - The sparse action table row offsets - - - - - The sparse action table elements - - - - - A function to compute the data carried by a token - - - - - A function to compute the tag of a token - - - - - The token number indicating the end of input - - - - - The reduction table - - - - - Interpret the parser table taking input from the given lexer, using the given lex buffer, and the given start state. - Returns an object indicating the final synthesized value for the parse. - - - - - Tables generated by fsyacc - The type of the tables contained in a file produced by the fsyacc.exe parser generator. - - - - - The stack of state indexes active at the parse error - - - - - The token that would cause a shift at the parse error - - - - - The stack of productions that would be reduced at the parse error - - - - - The tokens that would cause a reduction at the parse error - - - - - The state active at the parse error - - - - - The message associated with the parse error - - - - - The token that caused the parse error - - - - - The context provided when a parse error occurs - - - - - Get the start of the range of positions matched by the production - - - - - Get the full range of positions matched by the production - - - - - Get the end of the range of positions matched by the production - - - - - Return the LexBuffer for this parser instance - - - - - Raise an error in this parse context - - - - - Get the start position for the terminal or non-terminal at a given index matched by the production - - - - - Get the start and end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the end position for the terminal or non-terminal at a given index matched by the production - - - - - Get the value produced by the terminal or non-terminal at the given position - - - - - Indicates a parse error has occured and parse recovery is in progress - - - - - Indicates an accept action has occured - - - - - The default implementation of the parse_error function - - - - - The default implementation of the parse_error_rich function - - - - - Helpers used by generated parsers. - - - - - Test to report for the name of the type provider that produced the value - - - - - The ILScopeRef of the runtime assembly reference for type provider that produced the value - - - - - A type provider that produced the value - - - - - Apply an operation and 'untaint' the result. This can be used if the return type - is guaranteed not to be implemented by a type provider - - - - - Apply an operation and 'untaint' the result. The result must be marshalable. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation that returns an option. Unwrap option. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation. No exception may be raised by 'f' - - - - - Apply an operation that returns an array. Unwrap array. Any exception will be attributed to the type provider with an error located at the given range. String is method name of thing-returning-array, to diagnostically attribute if it is null - - - - - Apply an operation. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation. Any exception will be attributed to the type provider with an error located at the given range - - - - - Apply an operation. Any exception will be attributed to the type provider with an error located at the given range - - - - - Conditionally coerce the value - - - - - Create an initial tainted value - - - - - Assert that the value is of 'U and coerce the value. - If corecion fails, the failuer will be blamed on a type provider - - - - - This struct wraps a value produced by a type provider to properly attribute any failures. - - - - - creates new instance of TypeProviderError with specified type\method names - - - - - creates new instance of TypeProviderError based on current instance information(message) - - - - - provides uniform way to process aggregated errors - - - - - creates new instance of TypeProviderError that represents collection of errors - - - - - creates new instance of TypeProviderError that represents one error - - - - - Stores and transports aggregated list of errors reported by the type provider - - - - - Diagnostics from the AbsIL toolkit. You can reset the diagnostics - stream to point elsewhere, or turn it - off altogether by setting it to 'None'. The logging channel initally - points to stderr. All functions call flush() automatically. - - REVIEW: review if we should just switch to System.Diagnostics - - - - - Compiler use only. Erase closures - - - - - Scope references for FSharp.Core.dll - - - - - Debug info for generated code for classunions - - - - - Generate the helpers? - - - - - Are the representation helpers public? - - - - - Is the representation public? - - - - - ILX extensions to the intruction set - - - - - - IlxClosureApps - i.e. types being applied at a callsite - - - - - The name used for the field in parameter or IL field position - - - - - ILX extensions to Abstract IL types and instructions F# - - - - - Decompose a type definition according to its kind. - - - - - Helpers for codegen: scopes for allocating new temporary variables. - - - - - Some commonly used custom attibutes - - - - - A table of common references to items in primary assebly (System.Runtime or mscorlib). - If you have already loaded a particular version of system runtime assembly you should reference items via an ILGlobals for that particular - version of system runtime assembly built using mkILGlobals. - - - - - Represents the capabilities of target framework profile. - Different profiles may omit some types or contain them in different assemblies - - - - - e.g. win86 resources, as the exact contents of a .res or .obj file - - - - - One module in the "current" assembly, either a main-module or - an auxiliary module. The main module will have a manifest. - - An assembly is built by joining together a "main" module plus - several auxiliary modules. - - - - - Records whether the entrypoint resides in another module. - - - - - Records the types impemented by this asssembly in auxiliary - modules. - - - - - This is the public key used to sign this - assembly (the signature itself is stored elsewhere: see the - binary format, and may not have been written if delay signing - is used). (member Name, member PublicKey) forms the full - public name of the assembly. - - - - - This is ID of the algorithm used for the hashes of auxiliary - files in the assembly. These hashes are stored in the - ILModuleRef.Hash fields of this assembly. These are not cryptographic - hashes: they are simple file hashes. The algorithm is normally - 0x00008004 indicating the SHA1 hash algorithm. - - - - - The main module of an assembly is a module plus some manifest information. - - - - - Table of resources in a module - - - - - "Manifest ILResources" are chunks of resource data, being one of: - - the data section of the current module (byte[] of resource given directly) - - in an external file in this assembly (offset given in the ILResourceLocation field) - - as a resources in another assembly of the same name. - - - - - [Namespace.]Name - - - - - these are only found in the ILExportedTypesAndForwarders table in the manifest - - - - - "Classes Elsewhere" - classes in auxiliary modules. - - Manifests include declarations for all the classes in an - assembly, regardless of which module they are in. - - The ".class extern" construct describes so-called exported types -- - these are public classes defined in the auxiliary modules of this assembly, - i.e. modules other than the manifest-carrying module. - - For example, if you have a two-module - assembly (A.DLL and B.DLL), and the manifest resides in the A.DLL, - then in the manifest all the public classes declared in B.DLL should - be defined as exported types, i.e., as ".class extern". The public classes - defined in A.DLL should not be defined as ".class extern" -- they are - already available in the manifest-carrying module. The union of all - public classes defined in the manifest-carrying module and all - exported types defined there is the set of all classes exposed by - this assembly. Thus, by analysing the metadata of the manifest-carrying - module of an assembly, you can identify all the classes exposed by - this assembly, and where to find them. - - Nested classes found in external modules should also be located in - this table, suitably nested inside another "ILExportedTypeOrForwarder" - definition. - these are only found in the "Nested" field of ILExportedTypeOrForwarder objects - - - - - Note: some classes are marked "HasSecurity" even if there are no permissions attached, e.g. if they use SuppressUnmanagedCodeSecurityAttribute - - - - - Class or interface generated for COM interop - - - - - Type Definitions - - As for methods there are several important constraints not encoded - in the type definition below, for example that the super class of - an interface type is always None, or that enumerations always - have a very specific form. - - - - - Get some information about the type defs, but do not force the read of the type defs themselves - - - - - Calls to [FindByName] will result in any laziness in the overall - set of ILTypeDefs being read in in addition - to the details for the type found, but the remaining individual - type definitions will not be read. - - - - - Tables of named type definitions. The types and table may contain on-demand - (lazy) computations, e.g. the actual reading of some aspects - of a type definition may be delayed if the reader being used supports - this. - - This is an abstract type equivalent to "ILTypeDef list" - - - - - A categorization of type definitions into "kinds" - - - - - Type Access - - - - - Default Unicode encoding for P/Invoke within a type - - - - - Indicate the initialization semantics of a type - - - - - Type Layout information - - - - - Method Impls - - If there is an entry (pms --&gt; ms) in this table, then method [ms] - is used to implement method [pms] for the purposes of this class - and its subclasses. - - - - - Table of those properties in a type definition. - - - - - Property definitions - - - - - Table of those events in a type definition. - - - - - Event definitions - - - - - Tables of fields. Logically equivalent to a list of fields but - the table is kept in a form optimized for looking up fields by - name. - - - - - The explicit offset in bytes when explicit layout is used. - - - - - Field definitions - - - - - Tables of methods. Logically equivalent to a list of methods but - the table is kept in a form optimized for looking up methods by - name and arity. - abstract type equivalent to [ILMethodDef list] - - - - - .NET 2.0 feature: SafeHandle finalizer must be run - - - - - The method is exported to unmanaged code using COM interop. - - - - - Note: some methods are marked "HasSecurity" even if there are no permissions attached, e.g. if they use SuppressUnmanagedCodeSecurityAttribute - - - - - instance methods that are virtual or abstract or implement an interface slot. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type - - - - - static methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type - - - - - instance methods that are not virtual. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type - - - - - .ctor methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type - - - - - .cctor methods. The predicates (IsClassInitializer,IsConstructor,IsStatic,IsNonVirtualInstance,IsVirtual) form a complete, non-overlapping classification of this type - - - - - Method definitions. - - There are several different flavours of methods (constructors, - abstract, virtual, static, instance, class constructors). There - is no perfect factorization of these as the combinations are not - independent. - - - - - Indicates the type argument must have a public nullary constructor - - - - - Indicates the type argument must be a value type, but not Nullable - - - - - Indicates the type argument must be a reference type - - - - - Variance of type parameters, only applicable to generic parameters for generic interfaces and delegates - - - - - At most one is the parent type, the others are interface types - - - - - Generic parameters. Formal generic parameter declarations - may include the bounds, if any, on the generic parameter. - - - - - [OverridesSpec] - refer to a method declaration in a superclass - or superinterface. Used for overriding/method impls. Includes - a type for the parent for the same reason that a method specs - includes the type of the enclosing type, i.e. the type - gives the "ILGenericArgs" at which the parent type is being used. - - - - - PInvoke attributes. - - - - - Abstract type equivalent to ILPermission list - use helpers - below to construct/destruct these - - - - - Security ILPermissions - - Attached to various structures... - - - - - Method return values - - - - - Marshalling map for parameters. COM Interop only. - - - - - Method parameters and return values - - - - - Custom attributes. See 'decodeILAttribData' for a helper to parse the byte[] - to ILAttribElem's as best as possible. - - - - - Named args: values and flags indicating if they are fields or properties - - - - - Represents a custom attribute parameter of type 'string'. These may be null, in which case they are encoded in a special - way as indicated by Ecma-335 Partition II. - - - - - Member Access - - - - - strictly speakin should be a uint16 - - - - - IL method bodies - - - - - Local variables - - - - - Native Types, for marshalling to the native C interface. - These are taken directly from the ILASM syntax, see ECMA Spec (Partition II, 7.4). - - - - - Field Init - - - - - The 'seh' specification can have several forms: - - FilterCatchBlock - A multi-try-filter-catch block. Execute the - filters in order to determine which 'catch' block to catch the - exception with. There are two kinds of filters - one for - filtering exceptions by type and one by an instruction sequence. - Note that filter blocks can't contain any exception blocks. - - - - - - ILCode - - The code for a method is made up of a "code" object. Each "code" - object gives the contents of the method in a "semi-structured" form, i.e. - 1. The structure implicit in the IL exception handling tables - has been made explicit - 2. No relative offsets are used in the code: all branches and - switch targets are made explicit as labels. - 3. All "fallthroughs" from one basic block to the next have - been made explicit, by adding extra "branch" instructions to - the end of basic blocks which simply fallthrough to another basic - block. - - You can convert a straight-line sequence of instructions to structured - code by using buildILCode and - Most of the interesting code is contained in BasicBlocks. If you're - just interested in getting started with the format then begin - by simply considering methods which do not contain any branch - instructions, or methods which do not contain any exception handling - constructs. - - The above format has the great advantage that you can insert and - delete new code blocks without needing to fixup relative offsets - or exception tables. - - ILBasicBlock(bblock) - See above - - GroupBlock(localDebugInfo, blocks) - A set of blocks, with interior branching between the blocks. For example - B1: ldarg 1 - br B2 - - B2: pop - ret - - will be two basic blocks - let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) - let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_ret |]) - GroupBlock([], [b1; b2]) - - A GroupBlock can include a list of debug info records for locally - scoped local variables. These indicate that within the given blocks - the given local variables are used for the given Debug info - will only be recorded for local variables - declared in these nodes, and the local variable will only appear live - in the debugger for the instructions covered by this node. So if you - omit or erase these nodes then no debug info will be emitted for local - variables. If necessary you can have one outer ScopeBlock which specifies - the information for all the local variables - - Not all the destination labels used within a group of blocks need - be satisfied by that group alone. For example, the interior "try" code - of "try"-"catch" construct may be: - B1: ldarg 1 - br B2 - - B2: pop - leave B3 - - Again there will be two basic blocks grouped together: - let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) - let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_leave("B3") |]) - GroupBlock([], [b1; b2]) - Here the code must be embedded in a method where "B3" is a label - somewhere in the method. - - RestrictBlock(labels,code) - This block hides labels, i.e. the given set of labels represent - wiring which is purely internal to the given code block, and may not - be used as the target of a branch by any blocks which this block - is placed alongside. - - For example, if a method is made up of: - B1: ldarg 1 - br B2 - - B2: ret - - then the label "B2" is internal. The overall code will - be two basic blocks grouped together, surrounded by a RestrictBlock. - The label "B1" is then the only remaining visible entry to the method - and execution will begin at that label. - - let b1 = ILBasicBlock("B1", [| I_ldarg(1); I_br("B2") |]) - let b2 = ILBasicBlock("B2", [| I_arith(AI_pop); I_leave("B3") |]) - let gb1 = GroupBlock([], [b1; b2]) - RestrictBlock(["B2"], gb1) - - RestrictBlock is necessary to build well-formed code. - - TryBlock(trycode,seh) - - A try-catch, try-finally or try-fault block. - If an exception is raised while executing - an instruction in 'trycode' then the exception handler given by - 'seh' is executed. - - Well-formedness conditions for code: - - Well-formed code includes nodes which explicitly "hide" interior labels. - For example, the code object for a method may have only one entry - label which is not hidden, and this label will be the label where - execution begins. - - Both filter and catch blocks must have one - and only one entry. These entry labels are not visible - outside the filter and catch blocks. Filter has no - exits (it always uses endfilter), catch may have exits. - The "try" block can have multiple entries, i.e. you can branch - into a try from outside. They can have multiple exits, each of - which will be a "leave". - - - - - - Indicates that a particular local variable has a particular source - language name within a GroupBlock. This does not effect local - variable numbering, which is global over the whole method. - - - - - A list of instructions ending in an unconditionally - branching instruction. A basic block has a label which must be unique - within the method it is located in. Only the first instruction of - a basic block can be the target of a branch. - - - - - The instruction set. - - In general we don't categorize instructions, as different - instruction groups are relevant for different types of operations. - However we do collect the branch and compare instructions together - because they all take an address, and the ILArithInstr ones because - none of them take any direct arguments. - - - - - ILCode labels. In structured code each code label - refers to a basic block somewhere in the code of the method. - - - - - Field specs. The data given for a ldfld, stfld etc. instruction. - - - - - The information at the callsite of a method - - - - - Formal identities of fields. - - - - - Formal identities of methods. Method refs refer to methods on - named types. In general you should work with ILMethodSpec objects - rather than MethodRef objects, because ILMethodSpec objects carry - information about how generic methods are instantiated. MethodRef - objects are only used at a few places in the Abstract IL syntax - and if analyzing or generating IL you will be unlikely to come across - these. - - - - - Actual generic parameters are always types. - - - - - Custom modifiers. - - - - - Reference a generic arg. - - - - - ILCode pointers. - - - - - Managed pointers. - - - - - Unmanaged pointers. Nb. the type is used by tools and for binding only, not by the verifier. - - - - - Reference types. Also may be used for parents of members even if for members in value types. - - - - - Unboxed types, including builtin types. - - - - - Array types - - - - - Used only in return and pointer types. - - - - - True if modifier is "required" - The class of the custom modifier. - The type being modified. - - - - - Which type is being referred to? - - - - - The type instantiation if the type is generic, otherwise empty - - - - - Type specs and types. - - These are the types that appear syntactically in .NET binaries. - - Generic type definitions must be combined with - an instantiation to form a type. Throughout this file, - a "ref" refers to something that is uninstantiated, and - a "spec" to a ref that is combined with the relevant instantiations. - - - - - Where is the type, i.e. is it in this module, in another module in this assembly or in another assembly? - - - - - The name of the type. This also contains the namespace if Enclosing is empty - - - - - The name of the type in the assembly using the '.' notation for nested types - - - - - The list of enclosing type names for a nested type. If non-nil then the first of these also contains the namespace. - - - - - The name of the type in the assembly using the '+' notation for nested types - - - - - Create a ILTypeRef - - - - - Type refs, i.e. references to types in some .NET assembly - - - - - Bounds for a single dimensional, zero based array - - - - - Array shapes. For most purposes, including verification, the - rank is the only thing that matters. - - - - - no 'this' pointer is passed - - - - - accepts an explicit 'this' pointer - - - - - accepts an implicit 'this' pointer - - - - - A reference to a type in another assembly - - - - - A reference to a type in a module in the same assembly - - - - - A reference to the type in the current module - - - - - CLI says this indicates if the assembly can be retargeted (at runtime) to be from a different publisher. - - - - - The fully qualified name of the assembly reference, e.g. mscorlib, Version=1.0.3705 etc. - - - - - Represents an extension to the algebra of instructions - - - - - Represents an extension to the algebra of type kinds - - - - - Extensibility: ignore these unless you are generating ILX - structures directly. - - - - - Debug info. Values of type "source" can be attached at sequence - points and some other locations. - - - - - The type used to store relatively small lists in the Abstract IL data structures, i.e. for ILTypes, ILGenericArgs, ILParameters and ILLocals. - See comments in il.fs for why we've isolated this representation and the possible future choices we might use here. - - - - - Find the full set of assemblies referenced by a module - - - - - Get a version number from a CLR version string, e.g. 1.0.3705.0 - - - - - Get a public key token from a public key. - - - - - Discriminating different important built-in types - - - - - Some commonly used methods - - - - - This is a 'vendor neutral' way of referencing mscorlib. - - - - - Instantiate type variables that occur within types and other items. - - - - - Instantiate type variables that occur within types and other items. - - - - - buildILCode: Build code from a sequence of instructions. - - e.g. "buildILCode meth resolver instrs exns locals" - - This makes the basic block structure of code from more primitive - information, i.e. an array of instructions. - [meth]: for debugging and should give the name of the method. - [resolver]: should return the instruction indexes referred to - by code-label strings in the instruction stream. - [instrs]: the instructions themselves, perhaps with attributes giving - debugging information - [exns]: the table of exception-handling specifications - for the method. These are again given with respect to labels which will - be mapped to pc's by [resolver]. - [locals]: the table of specifications of when local variables are live and - should appear in the debug info. - - If the input code is well-formed, the function will returns the - chop up the instruction sequence into basic blocks as required for - the exception handlers and then return the tree-structured code - corresponding to the instruction stream. - A new set of code labels will be used throughout the resulting code. - - The input can be badly formed in many ways: exception handlers might - overlap, or scopes of local variables may overlap badly with - exception handlers. - - - - - Rescoping. The first argument tells the function how to reference the original scope from - the new scope. - - - - - Rescoping. The first argument tells the function how to reference the original scope from - the new scope. - - - - - Rescoping. The first argument tells the function how to reference the original scope from - the new scope. - - - - - Rescoping. The first argument tells the function how to reference the original scope from - the new scope. - - - - - Rescoping. The first argument tells the function how to reference the original scope from - the new scope. - - - - - Generate references to existing type definitions, method definitions - etc. Useful for generating references, e.g. to a class we're processing - Also used to reference type definitions that we've generated. [ILScopeRef] - is normally ILScopeRef.Local, unless we've generated the ILTypeDef in - an auxiliary module or are generating multiple assemblies at - once. - - - - - Making modules - - - - - Create table of types which is loaded/computed on-demand, and whose individual - elements are also loaded/computed on-demand. Any call to tdefs.AsList will - result in the laziness being forced. Operations can examine the - custom attributes and name of each type in order to decide whether - to proceed with examining the other details of the type. - - Note that individual type definitions may contain further delays - in their method, field and other tables. - - - - - Making tables of custom attributes, etc. - - - - - The toplevel "class" for a module or assembly. - - - - - Given a delegate type definition which lies in a particular scope, - make a reference to its constructor - - - - - Derived functions for making some simple constructors - - - - - Injecting initialization code into a class. - Add some code to the end of the .cctor for a type. Create a .cctor - if one doesn't exist already. - - - - - Injecting code into existing code blocks. A branch will - be added from the given instructions to the (unique) entry of - the code, and the first instruction will be the new entry - of the method. The instructions should be non-branching. - - - - - Make a type definition for a value type used to point to raw data. - These are useful when generating array initialization code - according to the - ldtoken field valuetype '<PrivateImplementationDetails>'/'$$struct0x6000127-1' '<PrivateImplementationDetails>'::'$$method0x6000127-1' - call void System.Runtime.CompilerServices.RuntimeHelpers::InitializeArray(class System.Array,valuetype System.RuntimeFieldHandle) - idiom. - - - - - Make a type definition - - - - - Make field definitions - - - - - Make method definitions - - - - - Make a formal generic parameters - - - - - Derived functions for making return, parameter and local variable - objects for use in method definitions. - - - - - Derived functions for making some common patterns of instructions - - - - - Some more primitive helpers - - - - - Make a basic block. The final instruction must be control flow - - - - - Make some code that is a straight line sequence of instructions, then do - some control flow. The first code label is the entry label of the generated code. - - - - - Make some code that is a straight line sequence of instructions. - The function will add a "return" if the last instruction is not an exiting instruction - - - - - Making code. - - - - - Make custom attributes - - - - - Make generalized verions of possibly-generic types, - e.g. Given the ILTypeDef for List, return the type "List<T>". - - - - - Construct references to fields - - - - - Construct references to constructors - - - - - Construct references to static, non-generic methods - - - - - Construct references to static methods - - - - - Construct references to instance methods - - - - - Construct references to instance methods - - - - - Construct references to methods on a given type - - - - - Make method references and specs - - - - - Make types - - - - - Make type specs - - - - - Make type refs - - - - - Generate simple references to assemblies and modules - - - - - Note: not all custom attribute data can be decoded without binding types. In particular - enums must be bound in order to discover the size of the underlying integer. - The following assumes enums have size int32. - It also does not completely decode System.Type attributes - - - - - When writing a binary the fake "toplevel" type definition (called <Module>) - must come first. This function puts it first, and creates it in the returned list as an empty typedef if it - doesn't already exist. - - - - - Build the table of commonly used references given a ILScopeRef for system runtime assembly. - - - - - splitTypeNameRight is like splitILTypeName except the - namespace is kept as a whole string, rather than split at dots. - - - - - The splitILTypeName utility helps you split a string representing - a type name into the leading namespace elements (if any), the - names of any nested types and the type name itself. This function - memoizes and interns the splitting of the namespace portion of - the type name. - - - - - Find the method definition corresponding to the given property or - event operation. These are always in the same class as the property - or event. This is useful especially if your code is not using the Ilbind - API to bind references. - - - - - The "unlinked" view of .NET metadata and code. Central to - to Abstract IL library - - - - - Printer for the abstract syntax. - - - - - Open a binary reader based on the given bytes. - - - - - Open a binary reader, except first copy the entire contents of the binary into - memory, close the file and ensure any subsequent reads happen from the in-memory store. - PDB files may not be read with this option. - - - - - Binary reader. Read a .NET binary and concert it to Abstract IL data - structures. - - Notes: - - The metadata in the loaded modules will be relative to - those modules, e.g. ILScopeRef.Local will mean "local to - that module". You must use [rescopeILType] etc. if you want to include - (i.e. copy) the metadata into your own module. - - - PDB (debug info) reading/folding: - The PDB reader is invoked if you give a PDB path - This indicates if you want to search for PDB files and have the - reader fold them in. You cannot currently name the pdb file - directly - you can only name the path. Giving "None" says - "do not read the PDB file even if one exists" - - The debug info appears primarily as I_seqpoint annotations in - the instruction streams. Unfortunately the PDB information does - not, for example, tell you how to map back from a class definition - to a source code line number - you will need to explicitly search - for a sequence point in the code for one of the methods of the - class. That is not particularly satisfactory, and it may be - a good idea to build a small library which extracts the information - you need. - - - - - Write a binary to the file system. Extra configuration parameters can also be specified. - - - - - The IL Binary writer - - - - - The (local) emitter env (state). Some of these fields are effectively global accumulators - and could be placed as hash tables in the global environment. - - - - - The global environment - - - - - Emit the tail. prefix if necessary - - - - - Emit the align. prefix - - - - - Emit the volatile. prefix - - - - -Emit comparison instructions - - - - - Uses the .CreateType() for emitted type (if available) - - - - - Uses TypeBuilder/TypeBuilderInstantiation for emitted types - - - - - Convert an Abstract IL type reference to Reflection.Emit System.Type value - - - - - Imperative buffers and streams of byte[] - - - - - Maps with a specific comparison function - - - - - Sets with a specific comparison function - - - - - Various constants and utilities used when parsing the ILASM format for IL - - - - - vararg sentinels - - - - - This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production - - - - - Compiler use only. Code and constants shared between binary reader/writer. - - - - - each int will be 0 <= x <= 255 - - - - - each int must be 0 <= x <= 255 - - - - - returned int will be 0 <= x <= 255 - - - - - Immutable map collection, with explicit flattening to a backing dictionary - - - - - A helper to ensure we rethrow the "original" exception - - - - - This field holds either the function to run or a LazyWithContextFailure object recording the exception raised - from running the function. It is null if the thunk has been evaluated successfully. - - - - - This field holds the result of a successful computation. It's initial value is Unchecked.defaultof - - - - - Just like "Lazy" but EVERY forcer must provide an instance of "ctxt", e.g. to help track errors - on forcing back to at least one sensible user location - - - - - Computations that can cooperatively yield by returning a continuation - - - Any yield of a NotYetDone should typically be "abandonable" without adverse consequences. No resource release - will be called when the computation is abandoned. - - - Computations suspend via a NotYetDone may use local state (mutables), where these are - captured by the NotYetDone closure. Computations do not need to be restartable. - - - The key thing is that you can take an Eventually value and run it with - Eventually.repeatedlyProgressUntilDoneOrTimeShareOver - - - - - Get an initialization hole - - - - - Take in a filename with an absolute path, and return the same filename - but canonicalized with respect to extra path separators (e.g. C:\\\\foo.txt) - and '..' portions - - - - - For every entry in m2 find an entry in m1 and fold - - - - - Union entries by identical key, using the provided function to union sets of values - - - - - Not a very useful function - only called in one place - should be changed - - - - - Keep running the computation bit by bit until a time limit is reached. - The runner gets called each time the computation is restarted - - - - - PDB reader and associated types - - - - - Unmanaged resource file linker - for native resources (not managed ones). - The function may be called twice, once with a zero-RVA and - arbitrary buffer, and once with the real buffer. The size of the - required buffer is returned. - - - - - Takes the output file name and returns debug file name. - - - - - Functions associated with writing binaries which - vary between supported implementations of the CLI Common Language - Runtime, e.g. between the SSCLI, Mono and the Microsoft CLR. - - The implementation of the functions can be found in ilsupp-*.fs - - - - - Morph all type references throughout an entire module. - - - - - Morph all tables of ILTypeDefs in "ILModuleDef" - - - - - nb. does not do nested tdefs - - - - - Morph each scope reference inside a type signature - - - - - A set of "IL rewrites" ("morphs"). These map each sub-construct - of particular ILTypeDefs. The morphing functions are passed - some details about the context in which the item being - morphed occurs, e.g. the module being morphed itself, the - ILTypeDef (possibly nested) where the item occurs, - the ILMethodDef (if any) where the item occurs. etc. - - - - - Generates compiler-generated names marked up with a source code location, but if given the same unique value then - return precisely the same name. Each name generated also includes the StartLine number of the range passed in - at the point of first generation. - - - - - Generates compiler-generated names. Each name generated also includes the StartLine number of the range passed in - at the point of first generation. - - - - - The parser defines a number of tokens for whitespace and - comments eliminated by the lexer. These carry a specification of - a continuation for the lexer for continued processing after we've dealt with - the whitespace. - - - - - Specifies how the 'endline' function in the lexer should continue after - it reaches end of line or eof. The options are to continue with 'token' function - or to continue with 'skip' function. - - - - - The syntactic elements associated with the "return" of a function or method. Some of this is - mostly dummy information to make the return element look like an argument, - the important thing is that (a) you can give a return type for the function or method, and - (b) you can associate .NET attributes to return of a function or method and these get stored in .NET metadata. - - - - - ImplFile(modname,isScript,qualName,hashDirectives,modules,isLastCompiland) - QualifiedNameOfFile acts to fully-qualify module specifications and implementations, - most importantly the ones that simply contribute fragments to a namespace (i.e. the ParsedSigFileFragment.NamespaceFragment case) - There may be multiple such fragments in a single assembly. There may thus also - be multiple matching pairs of these in an assembly, all contributing types to the same - namespace. - - - - - SynModuleOrNamespace(lid,isModule,decls,xmlDoc,attribs,SynAccess,m) - - - - - SynMemberDefn.AutoProperty (attribs,isStatic,id,tyOpt,propKind,memberFlags,xmlDoc,access,synExpr,mGetSet,mWholeAutoProp). - - F# syntax: 'member val X = expr' - - - - - A feature that is not implemented - - - - - LetBindings(bindingList, isStatic, isRecursive, wholeRange) - - localDefns - - - - - inherit <typ>(args...) as base - - - - - implicit ctor args as a defn line, 'as' specification - - - - - 'exception E = ... with ...' - - - - - 'exception E = ... ' - - - - - The names and other metadata for the type parameters for a member or function - - - - - The argument names and other metadata for a parameter for a member or function - - - - - SynValInfo(curriedArgInfos, returnInfo) - - - - - The argument names and other metadata for a member or function - - - - - The untyped, unchecked syntax tree associated with the name of a type definition or module - in signature or implementation. - - THis includes the name, attributes, type parameters, constraints, documentation and accessibility - for a type definition or module. For modules, entries such as the type parameters are - always empty. - - - - - The untyped, unchecked syntax tree for a field declaration in a record or class - - - - - The information for a type definition in a signature - - - - - The untyped, unchecked syntax tree for a type definition in a signature - - - - - Indicates the right right-hand-side is a record, union or other simple type. - - - - - Indicates the right right-hand-side is a class, struct, interface or other object-model type - - - - - The untyped, unchecked syntax tree for the right-hand-side of a type definition in a signature. - Note: in practice, using a discriminated union to make a distinction between - "simple" types and "object oriented" types is not particularly useful. - - - - - Full type spec given by 'UnionCase : ty1 * tyN -> rty'. Only used in FSharp.Core, otherwise a warning. - - - - - Normal style declaration - - - - - The untyped, unchecked syntax tree for the right-hand-side of union definition, excluding members, - in either a signature or implementation. - - - - - The untyped, unchecked syntax tree for one case in a union definition. - - - - - The untyped, unchecked syntax tree for one case in an enum definition. - - - - - An abstract definition , "type X" - - - - - A type abbreviation, "type X = A.B.C" - - - - - A type defined by using an IL assembly representation. Only used in FSharp.Core. - - F# syntax: "type X = (# "..."#) - - - - - An object oriented type definition. This is not a parse-tree form, but represents the core - type representation which the type checker splits out from the "ObjectModel" cases of type definitions. - - - - - A record type definition, type X = { A : int; B : int } - - - - - An enum type definition, type X = A = 1 | B = 2 - - - - - A union type definition, type X = A | B - - - - - The untyped, unchecked syntax tree for the core of a simple type definition, in either signature - or implementation. - - - - - The untyped, unchecked syntax tree for a member signature, used in signature files, abstract member declarations - and member constraints. - - - - - An artifical member kind used prior to the point where a get/set property is split into two distinct members. - - - - - Note the member kind is actually computed partially by a syntax tree transformation in tc.fs - - - - - Is this attribute being applied to a property getter or setter? - - - - - Target specifier, e.g. "assembly","module",etc. - - - - - A pattern arising from a parse error - - - - - Used internally in the type checker - - - - - Deprecated character ranges - - - - <@ expr @>, used for active pattern arguments - - - - ':? type ' - - - - - '?id' -- for optional argument names - - - - - 'null' - - - - - Represents a simple set of variable bindings a, (a,b) or (a:Type,b:Type) at a lambda, - function definition or other binding point, after the elimination of pattern matching - from the construct, e.g. after changing a "function pat1 -> rule1 | ..." to a - "fun v -> match v with ..." - - - - - We have decided to use an alternative name in tha pattern and related expression - - - - - We have not decided to use an alternative name in tha pattern and related expression - - - - - Id (ident, altNameRefCell, isCompilerGenerated, isThisVar, isOptArg, range) - - Indicates a simple pattern variable. - - altNameRefCell - Normally 'None' except for some compiler-generated variables in desugaring pattern matching. - Pattern processing sets this reference for hidden variable introduced by desugaring pattern matching in arguments. - The info indicates an alternative (compiler generated) identifier to be used because the name of the identifier is already bound. - See Product Studio FSharp 1.0, bug 6389. - - isCompilerGenerated : true if a compiler generated name - isThisVar: true if 'this' variable in member - isOptArg: true if a '?' is in front of the name - - - - - Inserted for error recovery when there is "expr." and missing tokens or error recovery after the dot - - - - - Inserted for error recovery - - - - - Inserted for error recovery - - - - - Only used in FSharp.Core - - - - - Only used in FSharp.Core - - - - - Only used in FSharp.Core - - - - - Only used in FSharp.Core - - - - - F# syntax: do! expr - Computation expressions only - - - - - SynExpr.LetOrUseBang(spBind, isUse, isFromSource, pat, rhsExpr, bodyExpr, mWholeExpr). - - F# syntax: let! pat = expr in expr - F# syntax: use! pat = expr in expr - Computation expressions only - - - - - F# syntax: yield! expr - F# syntax: return! expr - Computation expressions only - - - - - F# syntax: yield expr - F# syntax: return expr - Computation expressions only - - - - - F# syntax: <implicit> - Computation expressions only, implied by final "do" or "do!" - - - - - F# syntax: ... in ... - Computation expressions only, based on JOIN_IN token from lex filter - - - - - F# syntax: ((typar1 or ... or typarN): (member-dig) expr) - - - - - F# syntax: &expr, &&expr - - - - - F# syntax: null - - - - - F# syntax: downcast expr - - - - - F# syntax: upcast expr - - - - - F# syntax: expr :?> type - - - - - F# syntax: expr :> type - - - - - F# syntax: expr :? type - - - - - F# syntax: expr.Items(e1) <- e2 , rarely used named-property-setter notation, e.g. (stringExpr).Chars(3) <- 'a' - - - - - F# syntax: Type.Items(e1) <- e2 , rarely used named-property-setter notation, e.g. Foo.Bar.Chars(3) <- 'a' - - - - - DotIndexedSet (objectExpr, indexExprs, valueExpr, rangeOfLeftOfSet, rangeOfDot, rangeOfWholeExpr) - - F# syntax: expr.[expr,...,expr] <- expr - - - - - F# syntax: expr.[expr,...,expr] - - - - - F# syntax: expr.ident...ident <- expr - - - - - DotGet(expr, rangeOfDot, lid, wholeRange) - - F# syntax: expr.ident.ident - - - - - F# syntax: ident.ident...ident <- expr - - - - - F# syntax: ident.ident...ident - LongIdent(isOptional, longIdent, altNameRefCell, m) - isOptional: true if preceded by a '?' for an optional named parameter - altNameRefCell: Normally 'None' except for some compiler-generated variables in desugaring pattern matching. See SynSimplePat.Id - - - - - F# syntax: ident - Optimized representation, = SynExpr.LongIdent(false,[id],id.idRange) - - - - - IfThenElse(exprGuard,exprThen,optionalExprElse,spIfToThen,isFromErrorRecovery,mIfToThen,mIfToEndOfLastBranch) - - F# syntax: if expr then expr - F# syntax: if expr then expr else expr - - - - - Seq(seqPoint, isTrueSeq, e1, e2, m) - isTrueSeq: false indicates "let v = a in b; v" - - F# syntax: expr; expr - - - - - F# syntax: lazy expr - - - - - F# syntax: try expr finally expr - - - - - F# syntax: try expr with pat -> expr - - - - - LetOrUse(isRecursive, isUse, bindings, body, wholeRange) - - F# syntax: let pat = expr in expr - F# syntax: let f pat1 .. patN = expr in expr - F# syntax: let rec f pat1 .. patN = expr in expr - F# syntax: use pat = expr in expr - - - - - TypeApp(expr, mLessThan, types, mCommas, mGreaterThan, mTypeArgs, mWholeExpr) - "mCommas" are the ranges for interstitial commas, these only matter for parsing/design-time tooling, the typechecker may munge/discard them - - F# syntax: expr<type1,...,typeN> - - - - - App(exprAtomicFlag, isInfix, funcExpr, argExpr, m) - - exprAtomicFlag: indicates if the applciation is syntactically atomic, e.g. f.[1] is atomic, but 'f x' is not - - isInfix is true for the first app of an infix operator, e.g. 1+2 becomes App(App(+,1),2), where the inner node is marked isInfix - (or more generally, for higher operator fixities, if App(x,y) is such that y comes before x in the source code, then the node is marked isInfix=true) - - F# syntax: f x - - - - - F# syntax: assert expr - - - - - F# syntax: do expr - - - - - F# syntax: match expr with pat1 -> expr | ... | patN -> exprN - - - - - F# syntax: function pat1 -> expr | ... | patN -> exprN - - - - - First bool indicates if lambda originates from a method. Patterns here are always "simple" - Second bool indicates if this is a "later" part of an iterated sequence of lambdas - - F# syntax: fun pat -> expr - - - - - CompExpr(isArrayOrList, isNotNakedRefCell, expr) - - F# syntax: { expr } - - - - - F# syntax: [ expr ], [| expr |] - - - - - SynExpr.ForEach (spBind, seqExprOnly, isFromSource, pat, enumExpr, bodyExpr, mWholeExpr). - - F# syntax: 'for ... in ... do ...' - - - - - F# syntax: 'for i = ... to ... do ...' - - - - - F# syntax: 'while ... do ...' - - - - - SynExpr.ObjExpr(objTy,argOpt,binds,extraImpls,mNewExpr,mWholeExpr) - - F# syntax: { new ... with ... } - - - - - F# syntax: new C(...) - The flag is true if known to be 'family' ('protected') scope - - - - - F# syntax: { f1=e1; ...; fn=en } - SynExpr.Record((baseType, baseCtorArgs, mBaseCtor, sepAfterBase, mInherits), (copyExpr, sepAfterCopyExpr), (recordFieldName, fieldValue, sepAfterField), mWholeExpr) - inherit includes location of separator (for tooling) - copyOpt contains range of the following WITH part (for tooling) - every field includes range of separator after the field (for tooling) - - - - - F# syntax: [ e1; ...; en ], [| e1; ...; en |] - - - - - F# syntax: e1, ..., eN - - - - - F# syntax: expr : type - - - - - F# syntax: 1, 1.3, () etc. - - - - - F# syntax: <@ expr @>, <@@ expr @@> - - Quote(operator,isRaw,quotedSynExpr,isFromQueryExpression,m) - - - - - F# syntax: (expr) - - Paren(expr, leftParenRange, rightParenRange, wholeRangeIncludingParentheses) - - Parenthesized expressions. Kept in AST to distinguish A.M((x,y)) - from A.M(x,y), among other things. - - - - - range ignoring any (parse error) extra trailing dots - - - - - Attempt to get the range of the first token or initial portion only - this is extremely ad-hoc, just a cheap way to improve a certain 'query custom operation' error range - - - - - Get the syntactic range of source code covered by this construct. - - - - - F# syntax : ident=1 etc., used in static parameters to type providers - - - - - F# syntax : const expr, used in static parameters to type providers - - - - - F# syntax : 1, "abc" etc, used in parameters to type providers - For the dimensionless units i.e. 1 , and static parameters to provided types - - - - - F# syntax : for units of measure e.g. m^3, kg^1/2 - - - - - F# syntax : for units of measure e.g. m / s - - - - - F# syntax : #type - - - - - F# syntax : typ with constraints - - - - - F# syntax : _ - - - - - F# syntax : 'Var - - - - - F# syntax : type -> type - - - - - F# syntax : type[] - - - - - F# syntax : type * ... * type - - - - - LongIdentApp(typeName, longId, LESSm, tyArgs, commasm, GREATERm, wholem) - - F# syntax : type.A.B.C<type, ..., type> - commasm: ranges for interstitial commas, these only matter for parsing/design-time tooling, the typechecker may munge/discard them - - - - - App(typeName, LESSm, typeArgs, commasm, GREATERm, isPostfix, m) - - F# syntax : type<type, ..., type> or type type or (type,...,type) type - isPostfix: indicates a postfix type application e.g. "int list" or "(int,string) dict" - commasm: ranges for interstitial commas, these only matter for parsing/design-time tooling, the typechecker may munge/discard them - - - - - F# syntax : A.B.C - - - - - Get the syntactic range of source code covered by this construct. - - - - - The unchecked abstract syntax tree of F# types - - - - - F# syntax is 'typar : delegate<'Args,unit> - - - - - F# syntax is 'typar : enum<'UnderlyingType> - - - - - F# syntax is ^T : (static member MemberName : ^T * int -> ^T) - - - - - F# syntax is 'typar :> type - - - - - F# syntax is default ^T : type - - - - - F# syntax is 'typar : equality - - - - - F# syntax is 'typar : comparison - - - - - F# syntax is 'typar : null - - - - - F# syntax is 'typar : unmanaged - - - - - F# syntax : is 'typar : not struct - - - - - F# syntax : is 'typar : struct - - - - - The unchecked abstract syntax tree of F# type constraints - - - - - Represents the explicit declaration of a type parameter - - - - - A 'do' binding in a module. Must have type 'unit' - - - - - A normal 'let' binding in a module - - - - - A standalone expression in a module - - - - - The kind associated with a binding - "let", "do" or a standalone expression - - - - - Says that the expression is an atomic expression, i.e. is of a form that has no whitespace unless - enclosed in parantheses, e.g. 1, "3", ident, ident.[expr] and (expr). If an atomic expression has - type T, then the largest expression ending at the same range as the atomic expression also has type T. - - - - - stores pair: record field name + (true if given record field name is syntactically correct and can be used in name resolution) - - - - - denotes location of the separator block + optional position of the semicolon (used for tooling support) - - - - - Indicates if a for loop is 'for x in e1 -> e2', only valid in sequence expressions - - - - - The unchecked abstract syntax tree of F# unit of measure exponents. - - - - - The unchecked abstract syntax tree of F# unit of measure annotaitons. - This should probably be merged with the represenation of SynType. - - - - - Old comment: "we never iterate, so the const here is not another SynConst.Measure" - - - - - Used internally in the typechecker once an array of unit16 contants - is detected, to allow more efficient processing of large arrays of uint16 constants. - - - - - F# syntax: verbatim or regular byte string, e.g. "abc"B. - - Also used internally in the typechecker once an array of unit16 contants - is detected, to allow more efficient processing of large arrays of uint16 constants. - - - - - F# syntax: verbatim or regular string, e.g. "abc" - - - - - UserNum(value, suffix) - - F# syntax: 1Q, 1Z, 1R, 1N, 1G - - - - - F# syntax: 23.4M - - - - - F# syntax: 'a' - - - - - F# syntax: 1.30, 1.40e10 etc. - - - - - F# syntax: 1.30f, 1.40e10f etc. - - - - - F# syntax: 13un - - - - - F# syntax: 13n - - - - - F# syntax: 13UL - - - - - F# syntax: 13L - - - - - F# syntax: 13u, 0x4000u, 0o0777u - - - - - F# syntax: 13, 0x4000, 0o0777 - - - - - F# syntax: 13us, 0x4000us, 0o0777us, 0b0111101us - - - - - F# syntax: 13s, 0x4000s, 0o0777s, 0b0111101s - - - - - F# syntax: 13uy, 0x40uy, 0oFFuy, 0b0111101uy - - - - - F# syntax: 13y, 0xFFy, 0o077y, 0b0111101y - - - - - F# syntax: true, false - - - - - F# syntax: () - - - - - The unchecked abstract syntax tree of constants in F# types and expressions. - - - - - LongIdentWithDots(lid, dotms) - Typically dotms.Length = lid.Length-1, but they may be same if (incomplete) code ends in a dot, e.g. "Foo.Bar." - The dots mostly matter for parsing, and are typically ignored by the typechecker, but - if dotms.Length = lid.Length, then the parser must have reported an error, so the typechecker is allowed - more freedom about typechecking these expressions. - LongIdent can be empty list - it is used to denote that name of some AST element is absent (i.e. empty type name in inherit) - - - - - Used to collect XML documentation during lexing and parsing. - - - - - Reset the generator used for compiler-generated argument names. - - - - - Get the generator used for compiler-generated argument names. - - - - - Get the range corresponding to one of the r.h.s. symbols of a grammar rule while it is being reduced - - - - - Get the range covering two of the r.h.s. symbols of a grammar rule while it is being reduced - - - - - Get the range corresponding to the result of a grammar rule while it is being reduced - - - - - Get an F# compiler range from a lexer range - - - - - Get an F# compiler position from a lexer position - - - - - Helper for parsing the inline IL fragments. - - - - - Helper for parsing the inline IL fragments. - - - - - "fun (UnionCase x) (UnionCase y) -> body" - ==> - "fun tmp1 tmp2 -> - let (UnionCase x) = tmp1 in - let (UnionCase y) = tmp2 in - body" - - - - - Push non-simple parts of a patten match over onto the r.h.s. of a lambda. - Return a simple pattern and a function to build a match on the r.h.s. if the pattern is complex - - - - - Recognize the '()' in 'new()' - - - - - Extract the argument for patterns corresponding to the declaration of 'new ... = ...' - - - - - This affects placement of sequence points - - - - - Match a long identifier, including the case for single identifiers which gets a more optimized node in the syntax tree. - - - - - The prefix of the names used for the fake namespace path added to all dynamic code entries in FSI.EXE - - - - - The error raised by the parse_error_rich function, which is called by the parser engine - when a syntax error occurs. The first object is the ParseErrorContext which contains a dump of - information about the grammar at the point where the error occured, e.g. what tokens - are valid to shift next at that point in the grammar. This information is processed in build.fs. - - - - - Called from the parser each time we parse a construct that marks the end of an XML doc comment range, - e.g. a 'type' declaration. The markerRange is the range of the keyword that delimits the construct. - - - - - Called from the lexer to save a single line of XML doc comment. - - - - - XmlDoc F# lexer/parser state, held in the BufferLocalStore for the lexer. - This is the only use of the lexer BufferLocalStore in the codebase. - - - - - Infer the syntactic information for a 'let' or 'member' definition, based on the argument pattern, - any declared return information (e.g. .NET attributes on the return element), and the r.h.s. expression - in the case of 'let' definitions. - - - - - For 'let' definitions, we infer syntactic argument information from the r.h.s. of a definition, if it - is an immediate 'fun ... -> ...' or 'function ...' expression. This is noted in the F# language specification. - This does not apply to member definitions. - - - - - Transform a property declared using '[static] member P = expr' to a method taking a "unit" argument. - This is similar to IncorporateEmptyTupledArgForPropertyGetter, but applies to member definitions - rather than member signatures. - - - - - Make sure only a solitary unit argument has unit elimination - - - - - Infer the syntactic argument info for one or more arguments a pattern. - - - - - Infer the syntactic argument info for one or more arguments one or more simple patterns. - - - - - Infer the syntactic argument info for a single argument from a simple pattern. - - - - - Get the argument attributes from the syntactic information for an argument. - - - - - Get the argument counts for each curried argument group. Used in some adhoc places in tc.fs. - - - - - Add a parameter entry to the syntactic value information to represent the value argument for a property setter. This is - used for the implicit value argument in property setter signature specifications. - - - - - Add a parameter entry to the syntactic value information to represent the 'this' argument. This is - used for the implicit 'this' argument in member signature specifications. - - - - - Add a parameter entry to the syntactic value information to represent the '()' argument to a property getter. This is - used for the implicit '()' argument in property getter signature specifications. - - - - - Check if there are any optional arguments in the syntactic argument information. Used when adjusting the - types of optional arguments for function and member signatures. - - - - - Check if one particular argument is an optional argument. Used when adjusting the - types of optional arguments for function and member signatures. - - - - - Determine if a syntactic information represents a member without arguments (which is implicitly a property getter) - - - - - The 'argument' information for the 'this'/'self' parameter in the cases where it is not given explicitly - - - - - The 'argument' information for a return value where no attributes are given for the return value (the normal case) - - - - - The argument information for a '()' argument - - - - - The argument information for a curried argument without a name - - - - - The argument information for an argument without a name - - - - - Operations related to the syntactic analysis of arguments of value, function and member definitions and signatures. - - Function and member definitions have strongly syntactically constrained arities. We infer - the arity from the syntax. - - For example, we record the arity for: - StaticProperty --> [1] -- for unit arg - this.InstanceProperty --> [1;1] -- for unit arg - StaticMethod(args) --> map InferSynArgInfoFromSimplePat args - this.InstanceMethod() --> 1 :: map InferSynArgInfoFromSimplePat args - this.InstanceProperty with get(argpat) --> 1 :: [InferSynArgInfoFromSimplePat argpat] - StaticProperty with get(argpat) --> [InferSynArgInfoFromSimplePat argpat] - this.InstanceProperty with get() --> 1 :: [InferSynArgInfoFromSimplePat argpat] - StaticProperty with get() --> [InferSynArgInfoFromSimplePat argpat] - - this.InstanceProperty with set(argpat)(v) --> 1 :: [InferSynArgInfoFromSimplePat argpat; 1] - StaticProperty with set(argpat)(v) --> [InferSynArgInfoFromSimplePat argpat; 1] - this.InstanceProperty with set(v) --> 1 :: [1] - StaticProperty with set(v) --> [1] - - - - - This predicate can be used once type inference is complete, before then it is an approximation - that doesn't assert any new constraints - - - - - Generate the hash/compare functions we add to user-defined types by default. - - - - - Rewrite mutable locals to reference cells across an entire implementation file - - - - - Rewrite bindings for mutable locals which we are transforming - - - - - Rewrite fetches, stores and address-of expressions for mutable locals which we are transforming - - - - - Find all the mutable locals to promote to reference cells in an implementation file - - - - - Find all the mutable locals that escape a set of bindings - - - - - Find all the mutable locals that escape a binding - - - - - Find all the mutable locals that escape a lambda expression or object expression - - - - -Special cases where representation uses Lambda. - - - - - Find all the mutable locals that escape a lambda expression, ignoring the arguments to the lambda - - - - - Find all the mutable locals that escape a method, function or lambda expression - - - - - *Parse* warnings seen while parsing root of closure - - - - - *Parse* errors seen while parsing root of closure - - - - - The #nowarns - - - - - The list of all sources in the closure with inputs when available - - - - - The list of references that were not resolved during load closure. These may still be extension references. - - - - - The resolved references along with the ranges of the #r positions in each file. - - - - - The source files along with the ranges of the #load positions in each file. - - - - - Try to resolve a referenced assembly based on TcConfig settings. - - - - - Try to find a provider-generated assembly - - - - - Try to find the given assembly reference. - - - - - Resolve a referenced assembly and report an error if the resolution fails. - - - - - Report unresolved references that also weren't consumed by any type providers. - - - - - This excludes any framework imports (which may be shared between multiple builds) - - - - - Set if the user has explicitly turned indentation-aware syntax on/off - - - - - If true, indicates all type checking and code generation is in the context of fsi.exe - - - - - File system query based on TcConfig settings - - - - - File system query based on TcConfig settings - - - - - Get the loaded sources that exist and issue a warning for the ones that don't - - - - - If true, indicates all type checking and code generation is in the context of fsi.exe - - - - - Sources added into the build with #load - - - - - Set if the user has explicitly turned indentation-aware syntax on/off - - - - - Whether or not this is an installed system assembly (for example, System.dll) - - - - - Name of the redist, if any, that the assembly was found in. - - - - - The qualified name of the assembly - - - - - Search path used to find this spot. - - - - - Path to the resolvedFile - - - - - The original reference to the assembly. - - - - - CompilerOption(name, argumentDescriptionString, actionSpec, exceptionOpt, helpTextOpt - - - - - The spec value describes the action of the argument, - and whether it expects a following parameter. - - - - - File suffixes where #light is the default - - - - - Script file suffixes - - - - - Implementation file suffixes - - - - - Signature file suffixes - - - - - Loading initial context, reporting errors etc. - - - - - function type that denotes captured tcVal used in constraint solver - - - - - top of expr toplevel? (true) - - - - - val not defined under lambdas - - - - - v -> recursive? * v list -- the others in the mutual binding - - - - - bound in a decision tree? - - - - - v -> binding repr - - - - - v -> context / APP inst args - - - - - Results is "expr information". - This could extend to be a full graph view of the expr. - Later could support "safe" change operations, and optimisations could be in terms of those. - - - - - This error logger delays the messages it recieves. At the end, call ForwardDelayedErrorsAndWarnings - to send the held messages. - - - - - Checks if specified file name is absolute path. If yes - returns the name as is, otherwise makes full path using tcConfig.implicitIncludeDir as base. - - - - - Read the bytes from a resource local to an assembly - - - - - Check for .fsx and, if present, compute the load closure for of #loaded files. - - - - - Create an error logger that counts and prints errors - - - - - OPTIONAL STATIC LINKING OF ALL DLLs THAT DEPEND ON THE F# LIBRARY - - - - - Try to find an attribute that takes a string argument - - - - - Helpers for finding attributes - - - - - Memoization table to help minimize the number of ILSourceDocument objects we create - - - - - Type holds thread-static globals for use by the compile - - - - - This is the textual subcategory to display in error and warning messages (shows only under --vserrors): - - file1.fs(72): subcategory warning FS0072: This is a warning message - - - - - - Return true if the textual phase given is from the compile part of the build process. - This set needs to be equal to the set of subcategories that the language service can produce. - - - - - Return true if this phase is one that's known to be part of the 'compile'. This is the initial phase of the entire compilation that - the language service knows about. - - - - - Construct a phased error - - - - - Closed enumeration of build phases. - - - - - fixes given string by replacing all control chars with spaces. - NOTE: newlines are recognized and replaced with stringThatIsAProxyForANewlineInFlatErrors (ASCII 29, the 'group separator'), - which is decoded by the IDE with 'NewlineifyErrorString' back into newlines, so that multi-line errors can be displayed in QuickInfo - - - - - Stop on first error. Accumulate warnings and continue. - - - - - Stop on first error. Report index - - - - - Stop on first error. Accumulate warnings and continue. - - - - - Stop on first error. Accumulate warnings and continue. - - - - - The bind in the monad. Stop on first error. Accumulate warnings and continue. - - - - - NOTE: The change will be undone when the returned "unwind" object disposes - - - - - NOTE: The change will be undone when the returned "unwind" object disposes - - - - - When no errorLogger is installed (on the thread) use this one. - - - - - Thrown when we stop processing the F# Interactive interactive entry or #load. - - - - - Thrown when immediate, local error recovery is not possible. This indicates - we've reported an error but need to make a non-local transfer of control. - Error recovery may catch this and continue (see 'errorRecovery') - - The exception that caused the report is carried as data because in some - situations (LazyWithContext) we may need to re-report the original error - when a lazy thunk is re-evaluated. - - - - - Thrown when want to add some range information to some .NET exception - - - - - Literal build phase subcategory strings. - - - - - The table of remappings from type names in the provided assembly to type - names in the statically linked, embedded assembly. - - - - - Create a new static linking map, ready to populate with data. - - - - - The table of information recording remappings from type names in the provided assembly to type - names in the statically linked, embedded assembly, plus what types are nested in side what types. - - - - - Represents the remapping information for a generated provided type and its nested types. - - There is one overall tree for each root 'type X = ... type generation expr...' specification. - - - - - Convert the expression to a string for diagnostics - - - - - Map the TyconRef objects, if any - - - - - The context used to interpret information in the closure of System.Type, System.MethodInfo and other - info objects coming from the type provider. - - At the moment this is the "Type --> ILTypeRef" and "Type --> Tycon" remapping - context for generated types (it is empty for erased types). This is computed from - while processing the [<Generate>] declaration related to the type. - - Immutable (after type generation for a [<Generate>] declaration populates the dictionaries). - - The 'obj' values are all TyconRef, but obj is used due to a forward reference being required. Not particularly - pleasant, but better than intertwining the whole "ProvidedType" with the TAST structure. - - - - - The folder for temporary files - - - - - All referenced assemblies, including the type provider itself, and possibly other type providers. - - - - - Whether or not the --showextensionresolution flag was supplied to the compiler. - - - - - Output file name - - - - - The folder from which an extension provider is resolving from. This is typically the project folder. - - - - - Carries information about the type provider resolution environment. - - - - - Check if this is a direct reference to a non-embedded generated type. This is not permitted at any name resolution. - We check by seeing if the type is absent from the remapping context. - - - - - Get the ILTypeRef for the provided type (including for nested types). Do not take into account - any type relocations or static linking for generated types. - - - - - Get the ILTypeRef for the provided type (including for nested types). Take into account - any type relocations or static linking for generated types. - - - - - Decompose the enclosing name of a type (including any class nestings) into a list of parts. - e.g. System.Object -> ["System"; "Object"] - - - - - Get the parts of a .NET namespace. Special rules: null means global, empty is not allowed. - - - - - Try to resolve a type in the given extension type resolver - - - - - Try to resolve a type in the given extension type resolver - - - - - Try to apply a provided method to the given static arguments. - - - - - Try to apply a provided type to the given static arguments. If successful also return a function - to check the type name is as expected (this function is called by the caller of TryApplyProvidedType - after other checks are made). - - - - - Validate that the given provided type meets some of the rules for F# provided types - - - - - Get the provided expression for a particular use of a method. - - - - - Detect a provided 'Var' expression - - - - - Detect a provided 'IfThenElse' expression - - - - - Detect a provided 'set variable' expression - - - - - Detect a provided 'let' expression - - - - - Detect a provided type-test expression - - - - - Detect a provided type-as expression - - - - - Detect a provided tuple-get expression - - - - - Detect a provided new-tuple expression - - - - - Detect a provided default-value expression - - - - - Detect a provided constant expression - - - - - Detect a provided call expression - - - - - Detect a provided lambda expression - - - - - Detect a provided try/finally expression - - - - - Detect a provided try/with expression - - - - - Detect a provided sequential expression - - - - - Detect a provided expression which is a for-loop over integers - - - - - Detect a provided new-delegate expression - - - - - Detect a provided while-loop expression - - - - - Detect a provided new-object expression - - - - - Detect a provided new-array expression - - - - - Given an extension type resolver, supply a human-readable name suitable for error messages. - - - - - Find and instantiate the set of ITypeProvider components for the given assembly reference - - - - - Raised when an type provider has thrown an exception. - - - - - Raised when a type provider has thrown an exception. - - - - - Trusted(absoluteFileName) - - - - - NotTrusted(absoluteFileName) - - - - - Replace one piece of TP approval info (or append it, if this is a new filename). may throw if trouble with file IO. - - - - - Read all TP approval data. does not throw, will swallow exceptions and return empty list if there's trouble. - - - - - Try to do an operation on the type-provider approvals file - - - - - location of approvals data file, e.g. C:\Users\username\AppData\Local\Microsoft\VisualStudio\14.0\type-providers.txt - - - - - Parse "printf-style" format specifiers at compile time, producing - a list of items that specify the types of the things that follow. - - Must be updated if the Printf runtime component is updated. - - - - - Invert the compilation of the given value and return its current dynamic value and its compiled System.Type - - - - - Generate ILX code for an assembly fragment - - - - - Create the CAS permission sets for an assembly fragment - - - - - Invert the compilation of the given value and clear the storage of the value - - - - - Register a fragment of the current assembly with the ILX code generator. If 'isIncrementalFragment' is true then the input - is assumed to be a fragment 'typed' into FSI.EXE, otherwise the input is assumed to be the result of a '#load' - - - - - Register a set of referenced assemblies with the ILX code generator - - - - - Create an incremental ILX code generator for a single assembly - - - - - An incremental ILX code generator for a single assembly - - - - - Used to support the compilation-inversion operations "ClearGeneratedValue" and "LookupGeneratedValue" - - - - - The generated IL/ILX resources associated with F# quotations - - - - - The generated IL/ILX .NET module attributes - - - - - The generated IL/ILX assembly attributes - - - - - The generated IL/ILX type definitions - - - - - The results of the ILX compilation of one fragment of an assembly - - - - - Indicates that, whenever possible, use callvirt instead of call - - - - - Indicates the code is being generated in FSI.EXE and is executed immediately after code generation - This includes all interactively compiled code, including #load, definitions, and expressions - - - - - If this is set, then the last module becomes the "main" module - - - - - Indicates how the generated IL code is ultimately emitted - - - - - The TcGlobals for the import context - - - - - The AssemblyLoader for the import context - - - - - Represents a context used for converting AbstractIL .NET and provided types to F# internal compiler data structures. - Also cache the conversion of AbstractIL ILTypeRef nodes, based on hashes of these. - - There is normally only one ImportMap for any assembly compilation, though additional instances can be created - using tcImports.GetImportMap() if needed, and it is not harmful if multiple instances are used. The object - serves as an interface through to the tables stored in the primary TcImports structures defined in build.fs. - - - - - Record a root for a [<Generate>] type to help guide static linking & type relocation - - - - - Resolve an Abstract IL assembly reference to a Ccu - - - - - 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. - - - - - Represents an interface to some of the functionality of TcImports, for loading assemblies - and accessing information about generated provided assemblies. - - - - - Import the type forwarder table for an IL assembly - - - - - Import an IL assembly as a new TAST CCU - - - - - Import a set of Abstract IL generic parameter specifications as a list of new F# generic parameters. - - - - - Import a provided method reference as an Abstract IL method reference - - - - - Import a provided type as an AbstractIL type - - - - - Import a provided type reference as an F# type TyconRef - - - - - Import a provided type as an F# type. - - - - - Pre-check for ability to import an IL type as an F# type. - - - - - Import an IL type as an F# type. - - - - - Pre-check for ability to import a reference to a type definition, given an AbstractIL ILTypeRef, with caching - - - - - Import a reference to a type definition, given an AbstractIL ILTypeRef, with caching - - - - - Set the conrete inputs for this build. - - - - - Declare a named vector output. - - - - - Declare a named scalar output. - - - - - Declare build outputs and bind them to real values. - Only required for unit testing. - - - - - A set of build rules and the corresponding, possibly partial, results from building. - - - - - A build vector. - - - - - Get an element of vector result or None if there were no results. Only required for unit testing. - - - - - Get a result vector. All results must be available or thrown an exception. Only required for unit testing. - - - - - Get a scalar vector. Result must be available. Only required for unit testing. - - - - - Do one step in the build. Only required for unit testing. - - - - - Evaluate a build. Only required for unit testing. - - - - - Declares a scalar build input. - Only required for unit testing. - - - - - Declares a vector build input. - Only required for unit testing. - - - - - Convert a Vector into a Scalar. - - - - - Apply a function to a vector to get a scalar value. - - - - - Apply a function to each element of the vector, threading an accumulator argument - through the computation. Returns intermediate results in a vector. - - - - - Updates the creates a new vector with the same items but with - timestamp specified by the passed-in function. - - - - - Maps one vector to another using the given function. - - - - - Methods for acting on build Vectors - Only required for unit testing. - - - - - Apply a function to scalar value to produce a vector. - - - - - Apply a function to one scalar to produce another. - - - - - Methods for acting on build Scalars - Only required for unit testing. - - - - - Generalized Incremental Builder. This is exposed only for unittesting purposes. - - - - - Whether there are any 'live' type providers that may need a refresh when a project is Cleaned - - - - - The TcConfig passed in to the builder creation. - - - - - Check if the builder is not disposed - - - - - Raised when a type provider invalidates the build. - - - - - The list of files the build depends on - - - - - Raised just before a file is type-checked, to invalidate the state of the file in VS and force VS to request a new direct typecheck of the file. - The incremental builder also typechecks the file (error and intellisense results from the backgroud builder are not - used by VS). - - - - - Get the final typecheck result. Only allowed when 'generateTypedImplFiles' was set on Create, otherwise the TypedAssembly will have not implementations. - - - - - Perform one step in the F# build. - - - - - Increment the usage count on the IncrementalBuilder by 1. Ths initial usage count is 0. The returns an IDisposable which will - decrement the usage count on the entire build by 1 and dispose if it is no longer used by anyone. - - - - - Get the number of slots on the vector of parse results - - - - - Attempts to find the slot of the given input file name. Throws an exception if it couldn't find it. - - - - - Await the untyped parse results for a particular slot in the vector of parse results. - - - - - Ensure that the given file has been typechecked. - Get the preceding typecheck state of a slot, allow stale results. - - - - - Used for unit testing - - - - - Used for unit testing - - - - - Used for unit testing - - - - - Incremental builder for F# parsing and type checking. - - - - - The Invoke MethInfo, the function argument types, the function return type - and the overall F# function type for the function type associated with a .NET delegate type - - - - - Get the item sets - - - - - Get an empty set of items - - - - - Get the items with a particular name - - - - - Filter a set of new items to add according to the content of the list. Only keep an item - if it passes 'keepTest' for all matching items already in the list. - - - - - Add new items, extracting the names using the given function. - - - - - The input list is sorted from most-derived to least-derived type, so any System.Object methods - are at the end of the list. Return a filtered list where prior/subsequent members matching by name and - that are in the same equivalence class have been removed. We keep a name-indexed table to - be more efficient when we check to see if we've already seen a particular named method. - - - - - Get overrides instead of abstract slots when measuring whether a class/interface implements all its required slots. - - - - - Prefer items toward the top of the hierarchy, which we do if the items are virtual - but not when resolving base calls. - - - - - Indicates if we prefer overrides or abstract slots. - - - - - Try and find a record or class field for a type. - - - - - Try and find an item with the given name in a type. - - - - - Read the record or class fields of a type, including inherited ones. Cache the result for monomorphic types. - - - - - Read the raw property sets of a type, including inherited ones. Cache the result for monomorphic types - - - - - Read the raw method sets of a type, including inherited ones. Cache the result for monomorphic types - - - - - Get the super-types of a type, excluding interface types. - - - - - Read the IL fields of a type, including inherited ones. Cache the result for monomorphic types. - - - - - Read the events of a type, including inherited ones. Cache the result for monomorphic types. - - - - - Get the super-types of a type, including interface types. - - - - - An InfoReader is an object to help us read and cache infos. - We create one of these for each file we typecheck. - - REVIEW: We could consider sharing one InfoReader across an entire compilation - run or have one global one for each (g,amap) pair. - - - - - Sets of methods up the hierarchy, ignoring duplicates by name and sig. - Used to collect sets of virtual methods, protected methods, protected - properties etc. - - - - - A helper type to help collect properties. - - Join up getters and setters which are not associated in the F# data structure - - - - - An AccessorDomain which returns all items - - - - - An AccessorDomain which returns everything but .NET private/internal items. - This is used - - when solving member trait constraints, which are solved independently of accessibility - - for failure paths in error reporting, e.g. to produce an error that an F# item is not accessible - - an adhoc use in service.fs to look up a delegate signature - - - - - An AccessorDomain which returns public items - - - - - AccessibleFrom(cpaths, tyconRefOpt) - - cpaths: indicates we have the keys to access any members private to the given paths - tyconRefOpt: indicates we have the keys to access any protected members of the super types of 'TyconRef' - - - - - Represents the 'keys' a particular piece of code can use to access other constructs?. - - - - - Represents the information about the compiled form of a method signature. Used when analyzing implementation - relations between members and abstract slots. - - - - - An F# use of an event backed by provided metadata - - - - - An F# use of an event backed by .NET metadata - - - - - An F# use of an event backed by F#-declared metadata - - - - - Get the intra-assembly XML documentation for the property. - - - - - Get the TcGlobals associated with the object - - - - - Indicates if the enclosing type for the event is a value type. - - For an extension event, this indicates if the event extends a struct type. - - - - - Indicates if this property is static. - - - - - Indicates if this event has an associated XML comment authored in this assembly. - - - - - Get the logical name of the event. - - - - - Get the enclosing type of the event. - - If this is an extension member, then this is the apparent parent, i.e. the type the event appears to extend. - - - - - Try to get an arbitrary F# ValRef associated with the member. This is to determine if the member is virtual, amongst other things. - - - - - Get the 'remove' method associated with an event - - - - - Get the delegate type associated with the event. - - - - - Get the 'add' method associated with an event - - - - - Test whether two event infos have the same underlying definition. - - - - - Calculates a hash code of event info (similar as previous) - - - - - Describes an F# use of an event - - - - - Get the declaring type of the event as an ILTypeRef - - - - - Get the raw Abstract IL metadata for the event - - - - - Get the name of the event - - - - - Get the declaring IL type of the event as an ILTypeInfo - - - - - Get the ILMethInfo describing the 'remove' method associated with the event - - - - - Indicates if the property is static - - - - - Get the ILMethInfo describing the 'add' method associated with the event - - - - - Describes an F# use of an event backed by Abstract IL metadata - - - - - An F# use of a property backed by provided metadata - - - - - An F# use of a property backed by Abstract IL metadata - - - - - An F# use of a property backed by F#-declared metadata - - - - - Get the intra-assembly XML documentation for the property. - - - - - Get the TcGlobals associated with the object - - - - - Get a MethInfo for the 'setter' method associated with the property - - - - - Get the logical name of the property. - - - - - True if the getter (or, if absent, the setter) is a virtual method - - - - - Indicates if the enclosing type for the property is a value type. - - For an extension property, this indicates if the property extends a struct type. - - - - - Indicates if this property is static. - - - - - Indicates if the property is logically a 'newslot', i.e. hides any previous slots of the same name. - - - - - Indicates if this property is an indexer property, i.e. a property with arguments. - - - - - Indicates if this is an F# property compiled as a CLI event, e.g. a [<CLIEvent>] property. - - - - - Indicates if this is an extension member - - - - - Indicates if the getter (or, if absent, the setter) for the property is a dispatch slot. - - - - - Indicates if this property is marked 'override' and thus definitely overrides another property. - - - - - Indicates if this property has an associated setter method. - - - - - Indicates if this property has an associated getter method. - - - - - Indicates if this property has an associated XML comment authored in this assembly. - - - - - Get a MethInfo for the 'getter' method associated with the property - - - - - Get the enclosing type of the proeprty. - - If this is an extension member, then this is the apparent parent, i.e. the type the property appears to extend. - - - - - Return a new property info where there is no associated setter, only an associated getter. - - Property infos can combine getters and setters, assuming they are consistent w.r.t. 'virtual', indexer argument types etc. - When checking consistency we split these apart - - - - - Return a new property info where there is no associated getter, only an associated setter. - - - - - Try to get an arbitrary F# ValRef associated with the member. This is to determine if the member is virtual, amongst other things. - - - - - Test whether two property infos have the same underlying definition. - - Uses the same techniques as 'MethInfosUseIdenticalDefinitions'. - - - - - Get the result type of the property - - - - - Get the types of the indexer parameters associated with the property - - - - - Get the names and types of the indexer parameters associated with the property - - - - - Get the details of the indexer parameters associated with the property - - - - - Calculates a hash code of property info (similar as previous) - - - - - Describes an F# use of a property - - - - - Get the raw Abstract IL metadata for the IL property - - - - - Get the name of the IL property - - - - - Indicates if the IL property is static - - - - - Get the declaring IL type of the IL property, including any generic instantiation - - - - - Indicates if the IL property has a 'set' method - - - - - Indicates if the IL property has a 'get' method - - - - - Gets the ILMethInfo of the 'set' method for the IL property - - - - - Indicates if the IL property is virtual - - - - - Indicates if the IL property is logically a 'newslot', i.e. hides any previous slots of the same name. - - - - - Gets the ILMethInfo of the 'get' method for the IL property - - - - - Get the return type of the IL property. - - - - - Get the types of the indexer arguments associated wih the IL property. - - - - - Get the names and types of the indexer arguments associated wih the IL property. - - - - - Describes an F# use of a property backed by Abstract IL metadata - - - - - Get a reference to the F# metadata for the uninstantiated union case - - - - - Get the F# metadata for the uninstantiated union case - - - - - Get the generic instantiation of the declaring type of the union case - - - - - Get a reference to the F# metadata for the declaring union type - - - - - Get the F# metadata for the declaring union type - - - - - Get the name of the union case - - - - - Describes an F# use of a union case - - - - - Get the generic instantiation of the declaring type of the field - - - - - Get a reference to the F# metadata for the F#-declared record, class or struct type - - - - - Get the F# metadata for the F#-declared record, class or struct type - - - - - Get a reference to the F# metadata for the uninstantiated field - - - - - Get the F# metadata for the uninstantiated field - - - - - Get the name of the field in an F#-declared record, class or struct type - - - - - Indicate if the field is a literal field in an F#-declared record, class or struct type - - - - - Indicate if the field is a static field in an F#-declared record, class or struct type - - - - - Get the (instantiated) type of the field in an F#-declared record, class or struct type - - - - - Get the enclosing (declaring) type of the field in an F#-declared record, class or struct type - - - - - Describes an F# use of a field in an F#-declared record, class or struct type - - - - - Represents a single use of a field backed by provided metadata - - - - - Represents a single use of a field backed by Abstract IL metadata - - - - - Get the type instantiation of the declaring type of the field - - - - - Get the scope used to interpret IL metadata - - - - - Indicates if the field is a literal field with an associated literal value - - - - - Indicates if the field is a member of a struct or enum type - - - - - Indicates if the field is static - - - - - Indicates if the field has the 'specialname' property in the .NET IL - - - - - Indicates if the field is readonly (in the .NET/C# sense of readonly) - - - - - Get a reference to the declaring type of the field as an ILTypeRef - - - - - Get the type of the field as an IL type - - - - - Get an (uninstantiated) reference to the field as an Abstract IL ILFieldRef - - - - - GENERIC TYPE PROVIDERS - Get the name of the field - - - - - Get the enclosing ("parent"/"declaring") type of the field. - - - - - Get the type of the field as an F# type - - - - - Represents a single use of a IL or provided field from one point in an F# program - - - - - Describes a use of a method backed by provided metadata - - - - - Describes a use of a pseudo-method corresponding to the default constructor for a .NET struct type - - - - - ILMeth(tcGlobals, ilMethInfo, extensionMethodPriority). - - Describes a use of a method backed by Abstract IL # metadata - - - - - FSMeth(tcGlobals, declaringType, valRef, extensionMethodPriority). - - Describes a use of a method declared in F# code and backed by F# metadata. - - - - - Get the XML documentation associated with the method - - - - - Get the TcGlobals value that governs the method declaration - - - - - Get the information about provided static parameters, if any - - - - - Get a list of argument-number counts, one count for each set of curried arguments. - - For an extension member, drop the 'this' argument. - - - - - Get the method name in LogicalName form, i.e. the name as it would be stored in .NET metadata - - - - - Indicates if the enclosing type for the method is a value type. - - For an extension method, this indicates if the method extends a struct type. - - - - - Indicates if this method takes no arguments - - - - - Does the method appear to the user as an instance method? - - - - - Indicates if this is an F# extension member. - - - - - Indicates if this method is a generated method associated with an F# CLIEvent property compiled as a .NET event - - - - - Indicates if this is an extension member. - - - - - Check if this method is marked 'override' and thus definitely overrides another method. - - - - - Indicates if this is an C#-style extension member. - - - - - Indicates if this is a method defined in this assembly with an internal XML comment - - - - - Get the number of generic method parameters for a method. - For an extension method this includes all type parameters, even if it is extending a generic type. - - - - - Get the formal generic method parameters for the method as a list of type variables. - - For an extension method this includes all type parameters, even if it is extending a generic type. - - - - - Get the formal generic method parameters for the method as a list of variable types. - - - - - Get the extension method priority of the method, if it has one. - - - - - Get the extension method priority of the method. If it is not an extension method - then use the highest possible value since non-extension methods always take priority - over extension members. - - - - - Get the enclosing type of the method info. - - If this is an extension member, then this is the apparent parent, i.e. the type the method appears to extend. - This may be a variable type. - - - - - Get the method name in DisplayName form - - - - - Get the actual type instantiation of the declaring type associated with this use of the method. - - For extension members this is empty (the instantiation of the declaring type). - - - - - Get the declaring type or module holding the method. If this is an C#-style extension method then this is the type - holding the static member that is the extension method. If this is an F#-style extension method it is the logical module - holding the value for the extension method. - - - - - Try to get an arbitrary F# ValRef associated with the member. This is to determine if the member is virtual, amongst other things. - - - - - Tests whether two method infos have the same underlying definition. - Used to merge operator overloads collected from left and right of an operator constraint. - - - - - Apply a type instantiation to a method info, i.e. apply the instantiation to the enclosing type. - - - - - Get the signature of an abstract method slot. - - - - - Get the parameter types of a method info - - - - - Get the ParamData objects for the parameters of a MethInfo - - - - - Get the parameter attributes of a method info, which get combined with the parameter names and types - - - - - Get the (zero or one) 'self'/'this'/'object' arguments associated with a method. - An instance method returns one object argument. - - - - - Select all the type parameters of the declaring type of a method. - - For extension methods, no type parameters are returned, because all the - type parameters are part of the apparent type, rather the - declaring type, even for extension methods extending generic types. - - - - - Get the return type of a method info, where 'void' is returned as 'unit' - - - - - Get the return type of a method info, where 'void' is returned as 'None' - - - - - Build IL method infos. - - - - - Build IL method infos for a C#-style extension method - - - - - Calculates a hash code of method info. Note: this is a very imperfect implementation, - but it works decently for comparing methods in the language service... - - - - - Add the actual type instantiation of the apparent type of an F# extension method. - - - - - Describes an F# use of a method - - - - - ILMethInfo(g, ilApparentType, ilDeclaringTyconRefOpt, ilMethodDef, ilGenericMethodTyArgs) - - Describes an F# use of an IL method. - - If ilDeclaringTyconRefOpt is 'Some' then this is an F# use of an C#-style extension method. - If ilDeclaringTyconRefOpt is 'None' then ilApparentType is an IL type definition. - - - - - Get the Abstract IL metadata associated with the method. - - - - - Get the Abstract IL metadata corresponding to the parameters of the method. - If this is an C#-style extension method then drop the object argument. - - - - - Get the number of parameters of the method - - - - - Get the Abstract IL scope information associated with interpreting the Abstract IL metadata that backs this method. - - - - - Indicates if the IL method is marked virtual. - - - - - Does it appear to the user as a static method? - - - - - Indicates if the method has protected accessibility, - - - - - Does it have the .NET IL 'newslot' flag set, and is also a virtual? - - - - - Does it appear to the user as an instance method? - - - - - Indicates if the method is an extension method - - - - - Indicates if the IL method is marked final. - - - - - Indicates if the method is a constructor - - - - - Indicates if the method is a class initializer. - - - - - Indicates if the IL method is marked abstract. - - - - - Get the IL name of the method - - - - - Get a reference to the method (dropping all generic instantiations), as an Abstract IL ILMethodRef. - - - - - Get the formal method type parameters associated with a method. - - - - - Get the instantiation of the declaring type of the method. - If this is an C#-style extension method then this is empty because extension members - are never in generic classes. - - - - - Get the declaring type associated with an extension member, if any. - - - - - Get the declaring type of the method. If this is an C#-style extension method then this is the IL type - holding the static member that is the extension method. - - - - - Get the apparent declaring type of the method as an F# type. - If this is an C#-style extension method then this is the type which the method - appears to extend. This may be a variable type. - - - - - Indicates if the method is marked as a DllImport (a PInvoke). This is done by looking at the IL custom attributes on - the method. - - - - - Get all the argument types of the IL method. Include the object argument even if this is - an C#-style extension method. - - - - - Get the argument types of the the IL method. If this is an C#-style extension method - then drop the object argument. - - - - - Get info about the arguments of the IL method. If this is an C#-style extension method then - drop the object argument. - - - - - Get the (zero or one) 'self'/'this'/'object' arguments associated with an IL method. - An instance extension method returns one object argument. - - - - - Get the F# view of the return type of the method, where 'void' is 'unit'. - - - - - Get the compiled return type of the method, where 'void' is None. - - - - - Describes an F# use of an IL method. - - - - - ILTypeInfo (tyconRef, ilTypeRef, typeArgs, ilTypeDef). - - - - - Describes an F# use of an IL type, including the type instantiation associated with the type at a particular usage point. - - This is really just 1:1 with the subset ot TType which result from building types using IL type definitions. - - - - - Full information about a parameter returned for use by the type checker and language service. - - - - - Partial information about a parameter returned for use by the Language Service - - - - - The argument is optional, and is a caller-side .NET optional or default arg - - - - - The argument is optional, and is an F# callee-side optional arg - - - - - The argument is not optional - - - - - Compute the OptionalArgInfo for an IL parameter - - This includes the Visual Basic rules for IDispatchConstant and IUnknownConstant and optinal arguments. - - - - - Represents information about a parameter indicating if it is optional. - - - - - The caller-side value for the optional arg, is any - - - - - Describes the sequence order of the introduction of an extension method. Extension methods that are introduced - later through 'open' get priority in overload resolution. - - - - - Indicates whether we should visit multiple instantiations of the same generic interface or not - - - - - Indicates whether we can skip interface types that lie outside the reference set - - - - - Get the type of the event when looked at as if it is a property - Used when displaying the property in Intellisense - - - - - Get the (perhaps tupled) argument type accepted by an event - - - - - Indicates if an event info is associated with a delegate type that is a "standard" .NET delegate type - with a sender parameter. - In the F# design, we take advantage of the following idiom to simplify away the bogus "object" parameter of the - of the "Add" methods associated with events. If you want to access it you - can use AddHandler instead. - The .NET Framework guidelines indicate that the delegate type used for - an event should take two parameters, an "object source" parameter - indicating the source of the event, and an "e" parameter that - encapsulates any additional information about the event. The type of - the "e" parameter should derive from the EventArgs class. For events - that do not use any additional information, the .NET Framework has - already defined an appropriate delegate type: EventHandler. - (from http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkEventsTutorial.asp) - - - - - Try and interpret a delegate type as a "standard" .NET delegate type associated with an event, with a "sender" parameter. - - - - - Given a delegate type work out the minfo, argument types, return type - and F# function type by looking at the Invoke signature of the delegate. - - - - - Try to find a particular named property on a type. Only used to ensure that local 'let' definitions and property names - are distinct, a somewhat adhoc check in tc.fs. - - - - - Try to detect the existence of a method on a type. - Used for - -- getting the GetEnumerator, get_Current, MoveNext methods for enumerable types - -- getting the Dispose method when resolving the 'use' construct - -- getting the various methods used to desugar the computation expression syntax - - - - - Perform type-directed name resolution of a particular named member in an F# type - - - - - Get the flattened list of intrinsic properties in the hierarchy - - - - - Get the flattened list of intrinsic methods in the hierarchy - - - - - Get the sets intrinsic properties in the hierarchy (not including extension properties) - - - - - Get the sets of intrinsic methods in the hierarchy (not including extension methods) - - - - - Exclude properties from super types which have the same name as a property in a more specific type. - - - - - Exclude methods from super types which have the same signature as a method in a more specific type. - - - - - Filter the overrides of properties, either keeping the overrides or keeping the dispatch slots. - - - - - (a) not virtual - Filter the overrides of methods, either keeping the overrides or keeping the dispatch slots. - - - - - Filter the overrides of methods or properties, either keeping the overrides or keeping the dispatch slots. - - - - - Add all the items to the IndexedList, prefering the ones in the sub-types. - - - - - Add all the items to the IndexedList, prefering the ones in the super-types. This is used to hide methods - in super classes and/or hide overrides of methods in subclasses. - - Assume no items in 'items' are equivalent according to 'equivTest'. This is valid because each step in a - .NET class hierarchy introduces a consistent set of methods, none of which hide each other within the - given set. This is an important optimization because it means we don't have filter for equivalence between the - large overload sets introduced by methods like System.WriteLine. - - Assume items can be given names by 'nmf', where two items with different names are - not equivalent. - - - - - Get the declared constructors of any F# type - - - - - Query the immediate properties of an F# type, not taking into account inherited properties. The optFilter - parameter is an optional name to restrict the set of properties returned. - - - - - Query the immediate methods of an F# type, not taking into account inherited methods. The optFilter - parameter is an optional name to restrict the set of properties returned. - - - - - Try to select an F# value when querying members, and if so return a MethInfo that wraps the F# value. - - - - - Check whether a name matches an optional filter - - - - - Use the given function to select some of the member values from the members of an F# type - - - - - Make a call to a method info. Used by the optimizer and code generator to build - calls to the type-directed solutions to member constraints. - - - - - Build a call to an F# method. - - - - - Build a call to an F# method. - - Consume the arguments in chunks and build applications. This copes with various F# calling signatures - all of which ultimately become 'methods'. - - QUERY: this looks overly complex considering that we are doing a fundamentally simple - thing here. - - - - - Build a call to the System.Object constructor taking no arguments, - - - - - Build an expression node that is a call to a .NET method. - - - - - Used to hide/filter members from super classes based on signature - - - - - Used to hide/filter members from super classes based on signature - - - - - Used to hide/filter members from super classes based on signature - - - - - Used to hide/filter members from super classes based on signature - - - - - Get the information about the compiled form of a method signature. Used when analyzing implementation - relations between members and abstract slots. - - - - - Find the delegate type that an F# event property implements by looking through the type hierarchy of the type of the property - for the first instantiation of IDelegateEvent. - - - - - Create an error object to raise should an event not have the shape expected by the .NET idiom described further below - - - - - Properties compatible with type IDelegateEvent and atributed with CLIEvent are special: - we generate metadata and add/remove methods - to make them into a .NET event, and mangle the name of a property. - We don't handle static, indexer or abstract properties correctly. - Note the name mangling doesn't affect the name of the get/set methods for the property - and so doesn't affect how we compile F# accesses to the property. - - - - - Try to get an arbitrary ProvidedMethodInfo associated with a property. - - - - - Compute the ILFieldInit for the given provided constant value for a provided enum type. - - - - - Compute the OptionalArgInfo for a provided parameter. - - This is the same logic as OptionalArgInfoOfILParameter except we do not apply the - Visual Basic rules for IDispatchConstant and IUnknownConstant to optional - provided parameters. - - - - - Compute the ILFieldInit for the given provided constant value for a provided enum type. - - - - - Work out the instantiation relevant to interpret the backing metadata for a property. - - - - - Work out the instantiation relevant to interpret the backing metadata for a member. - - The 'minst' is the instantiation of any generic method type parameters (this instantiation is - not included in the MethInfo objects, but carreid separately). - - - - - Combine the type instantiation and generic method instantiation - - - - - Get the object type for a member value which is a C#-style extension method - - - - - Get the object type for a member value which is an extension method (C#-style or F#-style) - - - - - Split the type of an F# member value into - - the type parameters associated with method but matching those of the enclosing type - - the type parameters associated with a generic method - - the return type of the method - - the actual type arguments of the enclosing type. - - - - - Construct the data representing the signature of an abstract method slot - - - - - Construct the data representing a parameter in the signature of an abstract method slot - - - - - The slotsig returned by methInfo.GetSlotSig is in terms of the type parameters on the parent type of the overriding method. - Reverse-map the slotsig so it is in terms of the type parameters for the overriding method - - - - - Get the return type of a provided method, where 'void' is returned as 'None' - - - - - Check if an F#-declared member value is an 'override' or explicit member implementation - - - - - Check if an F#-declared member value is a dispatch slot - - - - - Check if an F#-declared member value is a virtual method - - - - - Indicates if an F#-declared function or member value is a CLIEvent property compiled as a .NET event - - - - - The constraints for each typar copied from another typar can only be fixed up once - we have generated all the new constraints, e.g. f<A :> List<B>, B :> List<A>> ... - - - - - Copy constraints. If the constraint comes from a type parameter associated - with a type constructor then we are simply renaming type variables. If it comes - from a generic method in a generic class (e.g. typ.M<_>) then we may be both substituting the - instantiation associated with 'typ' as well as copying the type parameters associated with - M and instantiating their constraints - - Note: this now looks identical to constraint instantiation. - - - - - Get the return type of an IL method, taking into account instantiations for type and method generic parameters, and - translating 'void' to 'None'. - - - - - Read an Abstract IL type from metadata and convert to an F# type. - - - - - Check if a type exists somewhere in the hierarchy which has the given head type. - - - - - Check if a type exists somewhere in the hierarchy which has the same head type as the given type (note, the given type need not have a head type at all) - - - - - Check if a type has a particular head type - - - - - Check if two types have the same nominal head type - - - - - Get all interfaces of a type, including the type itself if it is an interface - - - - - Get all super types of the type, including the type itself - - - - - Search for one element where a function returns a 'Some' result, following interfaces - - - - - Search for one element satisfying a predicate, following interfaces - - - - - Iterate, following interfaces. Skipping interfaces that lie outside the referenced assembly set is allowed. - - - - - Fold, following interfaces. Skipping interfaces that lie outside the referenced assembly set is allowed. - - - - - Fold, do not follow interfaces (unless the type is itself an interface) - - - - - Traverse the type hierarchy, e.g. f D (f C (f System.Object acc)). - Visit base types and interfaces first. - - - - - Collect the set of immediate declared interface types for an F# type, but do not - traverse the type hierarchy to collect further interfaces. - - - - - Make a type for System.Collections.Generic.IList<ty> - - - - - Get the base type of a type, taking into account type instantiations. Return None if the - type has no base type. - - - - - Indicates if an F# type is the type associated with an F# exception declaration - - - - - Import an IL type as an F# type. importInst gives the context for interpreting type variables. - - - - - An exception type used to raise an error using the old error system. - - Error text: "A definition to be compiled as a .NET event does not have the expected form. Only property members can be compiled as .NET events." - - - - - Check the attributes on a record field, returning errors and warnings as data. - - - - - Check the attributes on an F# value, returning errors and warnings as data. - - - - - Check the attributes on a record field, returning errors and warnings as data. - - - - - Check the attributes on a union case, returning errors and warnings as data. - - - - - Check the attributes on an entity, returning errors and warnings as data. - - - - - Indicate if a property has 'Obsolete' or 'CompilerMessageAttribute'. - Used to suppress the item in intellisense. - - - - - Indicate if a method has 'Obsolete', 'CompilerMessageAttribute' or 'TypeProviderEditorHideMethodsAttribute'. - Used to suppress the item in intellisense. - - - - - Check the attributes associated with a method, returning warnings and errors as data. - - - - - Check the attributes associated with a IL field, returning warnings and errors as data. - - - - - Check the attributes associated with a property, returning warnings and errors as data. - - - - - Indicate if a list of provided attributes contains 'ObsoleteAttribute'. Used to suppress the item in intellisense. - - - - - Indicate if a list of F# attributes contains 'ObsoleteAttribute'. Used to suppress the item in intellisense. - Also check the attributes for CompilerMessageAttribute, which has an IsHidden argument that allows - items to be suppressed from intellisense. - - - - - Indicate if a list of F# attributes contains 'ObsoleteAttribute'. Used to suppress the item in intellisense. - - - - - Checks the attributes for CompilerMessageAttribute, which has an IsHidden argument that allows - items to be suppressed from intellisense. - - - - - Indicate if a list of IL attributes contains 'ObsoleteAttribute'. Used to suppress the item in intellisense. - - - - - Check a list of provided attributes for 'ObsoleteAttribute', returning errors and warnings as data - - - - - Check F# attributes for 'ObsoleteAttribute', 'CompilerMessageAttribute' and 'ExperimentalAttribute', - returning errors and warnings as data - - - - - Check IL attributes for 'ObsoleteAttribute', returning errors and warnings as data - - - - - Check if a method has a specific attribute. - - - - - Try to find a specific attribute on a method, where the attribute accepts a string argument. - - This is just used for the 'ConditionalAttribute' attribute - - - - - Analyze three cases for attributes declared on methods: IL-declared attributes, F#-declared attributes and - provided attributes. - - - - - Analyze three cases for attributes declared on methods: IL-declared attributes, F#-declared attributes and - provided attributes. - - - - - Check custom attributes. This is particularly messy because custom attributes come in in three different - formats. - - - - - Uses a separate accessibility domains for containing type and method itself - This makes sense cases like - type A() = - type protected B() = - member this.Public() = () - member protected this.Protected() = () - type C() = - inherit A() - let x = A.B() - do x.Public() - when calling x.SomeMethod() we need to use 'adTyp' do verify that type of x is accessible from C - and 'ad' to determine accessibility of SomeMethod. - I.e when calling x.Public() and x.Protected() -in both cases first check should succeed and second - should fail in the latter one. - - - - - IndiCompute the accessiblity of a provided member - - - - - Compute the accessiblity of a provided member - - - - - Indicate if a provided member is accessible - - - - - Indicates if a type is accessible (both definition and instantiation) - - - - - Check that a type definition and its representation contents are accessible - - - - - Indicates if a type definition and its representation contents are accessible - - - - - Check that an entity is accessible - - - - - Indicates if an entity is accessible - - - - - Indicates if an IL member associated with the given ILType is accessible - - - - - Indicates if given IL based TyconRef is accessible. If TyconRef is nested then we'll - walk though the list of enclosing types and test if all of them are accessible - - - - - Indicates if a TyconRef is visible through the AccessibleFrom(cpaths,_). - Note that InternalsVisibleTo extends those cpaths. - - - - - Indicates if tdef is accessible. If tdef.Access = ILTypeDefAccess.Nested then encTyconRefOpt s TyconRef of enclosing type - and visibility of tdef is obtained using member access rules - - - - - Indicates if an IL member is accessible (ignoring its enclosing type) - - - - - Indicates if an F# item is accessible - - - - - tinfos, minfos, finfos, pinfos - summaries of information for references - to .NET and F# constructs. - - - - - Returns starting position of the token - - - - - Returns end position of the token - - - - - Returns a token 'tok' with the same position as this token, except that - it is shifted by specified number of characters from the left and from the right - Note: positive value means shift to the right in both cases - - - - - Returns a token 'tok' with the same position as this token - - - - - Used to save the state related to a token - - - - - Used to save some aspects of the lexbuffer state - - - - - Determine the token that may align with the 'try' of a 'try/catch' or 'try/finally' without closing - the construct - - - - - Determine the tokens that may align with the 'if' of an 'if/then/elif/else' without closing - the construct - - - - - Used for warning strings, which should display columns as 1-based and display - the lines after taking '# line' directives into account (i.e. do not use - p.OriginalLine) - - - - - LexFilter - process the token stream prior to parsing. - Implements the offside rule and a copule of other lexical transformations. - - - - - is this the developer-debug build? - - - - - Get the result and commit it - - - - - Get the reified result - - - - - When using .NET 4.0 you can replace this type by Task<'T> - - - - - Represents the reified result of an asynchronous computation - - - - - Treat a list of key-value pairs as a lookup collection. - This function returns true if two keys are the same according to the predicate - function passed in. - - - - - Treat a list of key-value pairs as a lookup collection. - This function looks up a value based on a match from the supplied - predicate function. - - - - - Throw System.ArgumentNullException() if string argument is null. - Throw System.ArgumentOutOfRangeException() is string argument is empty. - - - - - Throw System.ArgumentNullException() if array argument is null. - Throw System.ArgumentOutOfRangeException() is array argument is empty. - - - - - Throw System.ArgumentNullException() if argument is null. - - - - - Throw System.InvalidOperationException() if argument is None. - If there is a value (e.g. Some(value)) then value is returned. - - - - - The state variables allocated for one portion of the sequence expression (i.e. the local let-bound variables which become state variables) - - - - - any actual work done in Close - - - - - The labels allocated for one portion of the sequence expression - - - - - The code to run in the second phase, to rebuild the expressions, once all code labels and their mapping to program counters have been determined - 'nextVar' is the argument variable for the GenerateNext method that represents the byref argument that holds the "goto" destination for a tailcalling sequence expression - - - - - Analyze a TAST expression to detect the elaborated form of a sequence expression. - Then compile it to a state machine represented as a TAST containing goto, return and label nodes. - The returned state machine will also contain references to state variables (from internal 'let' bindings), - a program counter (pc) that records the current state, and a current generated value (current). - All these variables are then represented as fields in a hosting closure object along with any additional - free variables of the sequence expression. - - The analysis is done in two phases. The first phase determines the state variables and state labels (as Abstract IL code labels). - We then allocate an integer pc for each state label and proceed with the second phase, which builds two related state machine - expressions: one for 'MoveNext' and one for 'Dispose'. - - - - - An "expr -> expr" pass that eta-expands under-applied values of - known arity to lambda expressions and beta-var-reduces to bind - any known arguments. The results are later optimized by the peephole - optimizer in opt.fs - - - - - Decode the ResolvedFrom code from MSBuild. - - - - - Derive the target framework directories. - - - - - Determine the default "frameworkVersion" (which is passed into MSBuild resolve). - This code uses MSBuild to determine version of the highest installed framework. - - - - - Find override among given overrides and notify the sink. The 'Item' contains the candidate overrides. - - - - - Notfy the sink - - - - - Notfication is not needed - - - - - Specifies if overload resolution needs to notify Language Service of overload resolution - - - - - An adjustment to perform to the name resolution results if overload resolution fails. - If overload resolution succeeds, the specific overload resolution is reported. If it fails, the - set of possibile overlods is reported via this adjustment. - - - - - Indicates whether we permit a direct reference to a type generator. Only set when resolving the - right-hand-side of a [<Generate>] declaration. - - - - - Indicates if a warning should be given for the use of upper-case identifiers in patterns - - - - - Indicates the kind of lookup being performed. Note, this type should be made private to nameres.fs. - - - - - An abstract type for reporting the results of name resolution and type checking, and which allows - temporary suspension and/or redirection of reporting. - - - - - An abstract type for reporting the results of name resolution and type checking - - - - - Represents the kind of the occurence when reporting a name in name resolution - - - - - Represents information which guides name resolution of types. - - - - - Indicates definite knowledge of empty type arguments, i.e. the logical equivalent of name< > - - - - - Deduce definite knowledge of type arguments - - - - - Represents information about the generic argument count of a type name when resolving it. - - In some situations we resolve "List" to any type definition with that name regardless of the number - of generic arguments. In others, we know precisely how many generic arguments are needed. - - - - - Indicates we are resolving type names to type definitions - - - - - Indicates we are resolving type names to constructor methods. - - - - - Indicates whether we are resolving type names to type definitions or to constructor methods. - - - - - A flag which indicates if it is an error to have two declared type parameters with identical names - in the name resolution environment. - - - - - The environment of information used to resolve names - - - - - Information about an extension member held in the name resolution environment - - - - - Represents a record field resolution and the information if the usage is deprecated. - - - - - Represents the resolution of a source identifier to a named argument - - - - - Represents the resolution of a source identifier to an implicit use of an infix operator (+solution if such available) - - - - - CustomOperation(operationName, operationHelpText, operationImplementation). - - Used to indicate the availability or resolution of a custom query operation such as 'sortBy' or 'where' in computation expression syntax - - - - - Represents an item that results from name resolution - - - - - The named argument is a static parameter to a union case constructor - - - - - The named argument is a static parameter to a provided type or a parameter to an F# exception constructor - - - - - The named argument is an argument of a method - - - - - Represents the item with which a named argument is associated. - - - - - A NameResolver is a context for name resolution. It primarily holds an InfoReader. - - - - - Resolve a (possibly incomplete) long identifier to a set of possible resolutions, qualified by type. - - - - - Resolve a (possibly incomplete) long identifier to a set of possible resolutions. - - - - - A generator of type instantiations used when no more specific type instantiation is known. - - - - - Resolve a long identifier occurring in an expression position, qualified by a type. - - - - - Resolve a long identifier occurring in an expression position. - - - - - Return the fields for the given class or record - - - - - Resolve a (possibly incomplete) long identifier to a loist of possible class or record fields - - - - - Resolve a long identifier occurring in an expression position - - - - - Resolve a long identifier to a field - - - - - Resolve a long identifier to a type definition - - - - - Resolve a long identifier representing a type name - - - - - Resolve a long identifier when used in a pattern. - - - - - Resolve a long identifer using type-qualified name resolution. - - - - - Resolve a long identifer to an object constructor. - - - - - Resolve a long identifier to a namespace or module. - - - - - Generate a new reference to a record field with a fresh type instantiation - - - - - Get the available methods of a type (both declared and inherited) - - - - - Get all the available properties of a type (only extension) - - - - - Get all the available properties of a type (both intrinsic and extension) - - - - - Report a specific name resolution at a source range - - - - - Report a specific name resolution at a source range - - - - - Report the active name resolution environment for a source range - - - - - Temporarily suspend reporting of name resolution and type checking results - - - - - Temporarily redirect reporting of name resolution and type checking results - - - - - Qualified lookup of type names in the environment - - - - - Add some declared type parameters to the name resolution environment - - - - - Add a list of modules or namespaces to the name resolution environment - - - - - Add a single modules or namespace to the name resolution environment - - - - - Add a list of module or namespace to the name resolution environment, including any sub-modules marked 'AutoOpen' - - - - - Add a module abbreviation to the name resolution environment - - - - - Add an F# exception definition to the name resolution environment - - - - - Add a list of type definitions to the name resolution environment - - - - - Add active pattern result tags to the environment. - - - - - Add a single F# value to the environment. - - - - - Add some extra items to the environment for Visual Studio, e.g. record members - - - - - Add extra items to the environment for Visual Studio, e.g. static members - - - - - Used to report a warning condition for the use of upper-case identifiers in patterns - - - - - Used to report an error condition where name resolution failed due to an indeterminate type - - - - - Generate text for comparing two types. - - If the output text is different without showing constraints and/or imperative type variable - annotations and/or fully qualifying paths then don't show them! - - - - - Pass negative number as pos in case of single cased discriminated unions - - - - - Convert a ParamData to a string - - - - - Convert a MethInfo to a string - - - - - Convert a MethInfo to a string - - - - - Print members with a qualification showing the type they are contained in - - - - - Nice printing of a subset of expressions, e.g. for refutations in pattern matching - - - - - Layout the inferred signature of a compilation unit - - - - - Another re-implementation of type printing, this time based off provided info objects. - - - - - When to force a break? "type tyname = <HERE> repn" - When repn is class or datatype constructors (not single one). - - - - - Printing TAST objects - - - - - Format a method to a layotu (actually just containing a string) using "free style" (aka "standalone"). - - - - - Format a method to a buffer using "standalone" display style. - For example, these are the formats used when printing signatures of methods that have not been overriden, - and the format used when showing the individual member in QuickInfo and DeclarationInfo. - The formats differ between .NET/provided methods and F# methods. Surprisingly people don't really seem - to notice this, or they find it helpful. It feels that moving from this position should not be done lightly. - - - - - Format a method info using "half C# style". - - - - - Format a method info using "F# style". - - - - - Format the arguments of a method to a buffer. - - This uses somewhat "old fashioned" printf-style buffer printing. - - - - - Printing info objects - - - - - Printing TAST objects - - - - - Layout type parameters - - - - - Layout a single type used as the type of a member or value - - - - - Layout a single type, taking TypeSimplificationInfo into account - - - - - Layout a list of types, separated with the given separator, either '*' or ',' - - - - - Layout a type, taking precedence into account to insert brackets where needed *) - - - - - Layout type arguments, either NAME<ty,...,ty> or (ty,...,ty) NAME *) - - - - - Layout a unit expression - - - - - Layout constraints, taking TypeSimplificationInfo into account - - - - - Layout type parameter constraints, taking TypeSimplificationInfo into account - - - - - Layout a single type parameter declaration, taking TypeSimplificationInfo into account - There are several printing-cases for a typar: - - 'a - is multiple occurance. - _ - singleton occurrence, an underscore prefered over 'b. (OCAML accepts but does not print) - #Type - inplace coercion constraint and singleton. - ('a :> Type) - inplace coercion constraint not singleton. - ('a.opM : S->T) - inplace operator constraint. - - - - - - Layout '[<attribs>]' above another block - - - - - Layout an attribute 'Type(arg1, ..., argN)' - - - - - Layout arguments of an attribute 'arg1, ..., argN' - - - - - Layout a single attibute arg, following the cases of 'gen_attr_arg' in ilxgen.fs - This is the subset of expressions we display in the NicePrint pretty printer - See also dataExprL - there is overlap between these that should be removed - - - - - Layout the flags of a member - - - - - Layout a reference to a type - - - - - Layout a method's signature using type-only-F#-style. No argument names are printed. - - In the case that we've a constructor, we - pull off the class name from the `path`; naturally, it's the - most-deeply-nested element. - - - - - Layout a function pointer signature using type-only-F#-style. No argument names are printed. - - - - - Layout a function pointer signature using type-only-F#-style. No argument names are printed. - - - - - Layout a function pointer signature using type-only-F#-style. No argument names are printed. - - - - - this fixes up a name just like adjustILName but also handles F# - operators - - - - - fix up a name coming from IL metadata by quoting "funny" names (keywords, otherwise invalid identifiers) - - - - - Optimization information - - - - - Rewrite the modul info using the export remapping - - - - - Saving and re-reading optimization information - - - - - Displaying optimization data - - - - - The entry point. Boolean indicates 'incremental extension' in FSI - - - - - For building optimization environments incrementally - - - - - This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production - - - - - This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production - - - - - Represents the typechecked, elaborated form of a pattern, prior to pattern-match compilation. - - - - - What should the decision tree contain for any incomplete match? - - - - - Compile a pattern into a decision tree and a set of targets. - - - - - The assumptions that need to be fixed up - - - - - The data that uses a collection of CcuThunks internally - - - - - Like Fixup but loader may return None, in which case there is no fixup. - - - - - Try to chop "get_" or "set_" from a string - - - - - Is this character a part of a long identifier - - - - - The characters that are allowed to be in an identifier. - - - - - The characters that are allowed to be the first character of an identifier. - - - - - Anything to do with special names of identifiers and other lexical rules - - - - - Anything to do with special names of identifiers and other lexical rules - - - - - Indicates an F# 3.0+ reference to a named type in an assembly loaded by name - - - - - Indicates an F# 4.0+ reference into the supplied table of type definition references, ultimately resolved by TypeRef/TypeDef data - - - - - Code to pickle out quotations in the quotation binary format. - - - - - Indicates that type references are emitted as integer indexes into a supplied table - - - - - Synthetic marks ranges which are produced by intermediate compilation phases. This - bit signifies that the range covers something that should not be visible to language - service operations like dot-completion. - - - - - The maximum number of bits needed to store an encoded position - - - - - not a total order, but enough to sort on ranges - - - - - This view hides the use of file indexes and just uses filenames - - - - - This view of range marks uses file indexes explicitly - - - - - Create a position for the given line and column - - - - - Rational arithmetic, used for exponents on units-of-measure - - - - - Compute the hash value for the tainted value - - - - - Test whether the tainted value equals given value. Type providers are ignored (equal tainted values produced by different type providers are equal) - Failure in call to equality operation will be blamed on type provider of first operand - - - - - Test whether the tainted value equals given value. - Failure in call to equality operation will be blamed on type provider of first operand - - - - - Test whether the tainted value is null - - - - - An AbstractIL type representation that may include type variables - - - - - An AbstractIL type representation that is just the name of a type. - - CompiledTypeRepr.ILAsmNamed (ilTypeRef, ilBoxity, ilTypeOpt) - - The ilTypeOpt is present for non-generic types. It is an ILType corresponding to the first two elements of the case. This - prevents reallocation of the ILType each time we need to generate it. For generic types, it is None. - - - - - Specifies the compiled representations of type and exception definitions. Basically - just an ILTypeRef. Computed and cached by later phases. Stored in - type and exception definitions. Not pickled. Store an optional ILType object for - non-generic types. - - - - - See FreeTyvars above. - - - - - The summary of union constructors used in the expression. These may be - marked 'internal' or 'private' and we have to check various conditions associated with that. - - - - - The summary of fields used in the expression. These may be made private by a signature - or marked 'internal' or 'private' and we have to check various conditions associated with that. - - - - - The summary of locally defined tycon representations used in the expression. These may be made private by a signature - or marked 'internal' or 'private' and we have to check various conditions associated with that. - - - - - Indicates if the expression contains a call to rethrow that is not bound under a (try-)with branch. - Rethrow may only occur in such locations. - - - - - Indicates if the expression contains a call to a protected member or a base call. - Calls to protected members and direct calls to super classes can't escape, also code can't be inlined - - - - - The summary of locally defined variables used in the expression. These may be hidden at let bindings etc. - or made private by a signature or marked 'internal' or 'private', and we have to check various conditions associated with that. - - - - - Represents the set of free variables in an an expression - - - - - Represents an amortized computation of the free variables in an expression - - - - - The summary of type parameters used in the expression. These may not escape the enclosing generic construct - and we have to check various conditions associated with that. - - - - - The summary of values used as trait solutions - - - - - The summary of locally defined type definitions used in the expression. These may be made private by a signature - and we have to check various conditions associated with that. - - - - - Represents a set of 'free' type-related elements, including named types, trait solutions, union cases and - record fields. - - - - - Represents a set of 'free' union cases. Used to collect the union cases referred to from an expression. - - - - - Represents a set of 'free' record field definitions. Used to collect the record field definitions referred to - from an expression. - - - - - Represents a set of 'free' named type definitions. Used to collect the named type definitions referred to - from atype or expression. - - - - - Represents a set of free type parameters - - - - - Represents a set of free local values. - - - - - Represents a complete typechecked assembly, made up of multiple implementation files. - - - - - - This ModuleOrNamespace that represents the compilation of a module as a class. - The same set of tycons etc. are bound in the ModuleOrNamespace as in the ModuleOrNamespaceExpr - This is the body of the module/namespace - Represents a complete typechecked implementation file, including its typechecked signature if any. - - TImplFile(qualifiedNameOfFile,pragmas,implementationExpressionWithSignature,hasExplicitEntryPoint,isScript) - - - - - A named module-or-namespace-fragment definition - - - - - Indicates the module fragment is a 'rec' definition of types, values and modules - - - - - Indicates the module fragment is an evaluation of expression for side-effects - - - - - Indicates the module fragment is a 'let' definition - - - - - Indicates the module fragment is made of several module fragments in succession - - - - - Indicates the module is a module with a signature - - - - - The contents of a module-or-namespace-fragment definition - - - - - The ModuleOrNamespaceType is a binder. However it is not used in the ModuleOrNamespaceExpr: it is only referenced from the 'outside' - - - - - A type for a module-or-namespace-fragment and the actual definition of the module-or-namespace-fragment - - - - - Represents a parameter to an abstract method slot. - - TSlotParam(nm,ty,inFlag,outFlag,optionalFlag,attribs) - - - - - Represents an abstract method slot, or delegate signature. - - TSlotSig(methodName,declaringType,declaringTypeParameters,methodTypeParameters,slotParameters,returnTy) - - - - - A representation of a method in an object expression. - - TObjExprMethod(slotsig,attribs,methTyparsOfOverridingMethod,methodParams,methodBodyExpr,m) - - - - - Indicates the kind of an F# core library static optimization construct - - - - - A call to a base method, e.g. 'base.OnPaint(args)' - - - - - A call to a constructor, e.g. 'new C() = new C(3)' - - - - - A call to a constructor, e.g. 'inherit C()' - - - - - A normal use of a value - - - - - Indicates a use of a value represents a call to a method that may require - a .NET 2.0 constrained call. A constrained call is only used for calls where - - - - - Indicates how a value, function or member is being used at a particular usage point. - - - - - let res = a in b;res - - - - - a ; b - - - - - Indicates the kind of sequential operation, i.e. "normal" or "to a before returning b" - - - - - In C syntax this is: *localv_ptr = e - - - - - In C syntax this is: localv = e , note == *(&localv) = e == LGetAddr; LByrefSet - - - - - In C syntax this is: *localv_ptr - - - - - In C syntax this is: &localv - - - - - Indicates what kind of pointer operation this is. - - - - - Evaluate start once and end multiple times, loop up - - - - - Evaluate start and end once, loop down - - - - - Evaluate start and end once, loop up - - - - - Indicates the kind of looping operation. - - - - - Indicates the kind of looping operation. - - - - - If this is Some(ty) then it indicates that a .NET 2.0 constrained call is required, witht he given type as the - static type of the object argument. - - - - - Normal record construction - - - - - We're in an explicit constructor. The purpose of the record expression is to - fill in the fields of a pre-created but uninitialized object - - - - - Indicates the kind of record construction operation. - - - - - ILCall(useCallvirt,isProtected,valu,newobj,valUseFlags,isProp,noTailCall,mref,actualTypeInst,actualMethInst, retTy) - - IL method calls. - value -- is the object a value type? - isProp -- used for quotation reflection. - noTailCall - DllImport? if so don't tailcall - actualTypeInst -- instantiation of the enclosing type - actualMethInst -- instantiation of the method - retTy -- the types of pushed values, if any - - - - - Operation nodes represnting C-style operations on byrefs and mutable vals (l-values) - - - - - Pseudo method calls. This is used for overloaded operations like op_Addition. - - - - - Used for state machine compilation - - - - - Used for state machine compilation - - - - - Used for state machine compilation - - - - - Represents a "rethrow" operation. May not be rebound, or used outside of try-finally, expecting a unit argument - - - - - Conversion node, compiled via type-directed translation or to box/unbox - - - - - Generate a ldflda on an 'a ref. - - - - - IL assembly code - type list are the types pushed on the stack - - - - - An operation representing a field-get from an F# tuple value. - - - - - An operation representing a field-set on an F# exception value. - - - - - An operation representing a field-get from an F# exception value. - - - - - An operation representing a field-get from a union value. The value is not assumed to have been proven to be of the corresponding union case. - - - - - An operation representing a field-get from a union value, where that value has been proven to be of the corresponding union case. - - - - - An operation representing a coercion that proves a union value is of a particular union case. This is not a test, its - simply added proof to enable us to generate verifiable code for field access on union types - - - - - An operation representing getting an integer tag for a union value representing the union case number - - - - - An operation representing getting the address of a record field - - - - - An operation representing getting a record or class field - - - - - An operation representing setting a record or class field - - - - - Construct a record or object-model value. The ValRef is for self-referential class constructors, otherwise - it indicates that we're in a constructor and the purpose of the expression is to - fill in the fields of a pre-created but uninitialized object, and to assign the initialized - version of the object into the optional mutable cell pointed to be the given value. - - - - - An operation representing a lambda-encoded try/finally - - - - - An operation representing a lambda-encoded try/catch - - - - - An operation representing a lambda-encoded for loop - - - - - An operation representing a lambda-encoded while loop. The special while loop marker is used to mark compilations of 'foreach' expressions - - - - - Constant uint16 arrays (used for parser tables) - - - - - Constant byte arrays (used for parser tables and other embedded data) - - - - - An operation representing the creation of an array value - - - - - An operation representing the creation of a tuple value - - - - - An operation representing the creation of an exception value using an F# exception declaration - - - - - An operation representing the creation of a union value of the particular union case - - - - - Typechecking residue: A Expr.Link occurs for every use of a recursively bound variable. While type-checking - the recursive bindings a dummy expression is stored in the mutable reference cell. - After type checking the bindings this is replaced by a use of the variable, perhaps at an - appropriate type instantiation. These are immediately eliminated on subsequent rewrites. - - - - - Typechecking residue: Indicates a free choice of typars that arises due to - minimization of polymorphism at let-rec bindings. These are - resolved to a concrete instantiation on subsequent rewrites. - - - - - An intrinsic applied to some (strictly evaluated) arguments - A few of intrinsics (TOp_try, TOp.While, TOp.For) expect arguments kept in a normal form involving lambdas - - - - - If we statically know some infomation then in many cases we can use a more optimized expression - This is primarily used by terms in the standard library, particularly those implementing overloaded - operators. - - - - - Matches are a more complicated form of "let" with multiple possible destinations - and possibly multiple ways to get to each destination. - The first mark is that of the expression being matched, which is used - as the mark for all the decision making and binding that happens during the match. - - - - - Bind a value. - - - - - Bind a recursive set of values. - - - - - Applications. - Applications combine type and term applications, and are normalized so - that sequential applications are combined, so "(f x y)" becomes "f [[x];[y]]". - The type attached to the function is the formal function type, used to ensure we don't build application - nodes that over-apply when instantiating at function types. - - - - - Type lambdas. These are used for the r.h.s. of polymorphic 'let' bindings and - for expressions that implement first-class polymorphic values. - - - - - Lambda expressions. - Why multiple vspecs? A Expr.Lambda taking multiple arguments really accepts a tuple. - But it is in a convenient form to be compile accepting multiple - arguments, e.g. if compiled as a toplevel static method. - - - - - Sequence expressions, used for "a;b", "let a = e in b;a" and "a then b" (the last an OO constructor). - - - - - Reference a value. The flag is only relevant if the value is an object model member - and indicates base calls and special uses of object constructors. - - - - - A constant expression. - - - - - The big type of expressions. - - - - - Records the extra metadata stored about typars for type parameters - compiled as "real" IL type parameters, specifically for values with - ValReprInfo. Any information here is propagated from signature through - to the compiled code. - - - - - Records the "extra information" for an argument compiled as a real - method argument, specificially the argument name and attributes. - - - - - ValReprInfo (numTypars, args, result) - - - - - Records the "extra information" for a value compiled as a method (rather - than a closure or a local), including argument names, attributes etc. - - - - - A target of a decision tree. Can be thought of as a little function, though is compiled as a local block. - - - - - Test.ActivePatternCase(activePatExpr, activePatResTys, activePatIdentity, idx, activePatInfo) - - Run the active pattern and bind a successful result to a - variable in the remaining tree. - activePatExpr -- The active pattern function being called, perhaps applied to some active pattern parameters. - activePatResTys -- The result types (case types) of the active pattern. - activePatIdentity -- The value and the types it is applied to. If there are any active pattern parameters then this is empty. - idx -- The case number of of the active pattern which the test relates to. - activePatternInfo -- The extracted info for the active pattern. - - - - - IsInst(source, target) - - Test if the input to a decision tree is an instance of the given type - - - - - Test if the input to a decision tree is null - - - - - Test if the input to a decision tree is the given constant value - - - - - Test if the input to a decision tree is an array of the given length - - - - - Test if the input to a decision tree matches the given union case - - - - - TDBind(binding, body) - - Bind the given value throught the remaining cases of the dtree. - These arise from active patterns and some optimizations to prevent - repeated computations in decision trees. - binding -- the value and the expression it is bound to - body -- the rest of the decision tree - - - - - TDSuccess(results, targets) - - Indicates the decision tree has terminated with success, calling the given target with the given parameters. - results -- the expressions to be bound to the variables at the target - target -- the target number for the continuation - - - - - TDSwitch(input, cases, default, range) - - Indicates a decision point in a decision tree. - input -- the expression being tested - cases -- the list of tests and their subsequent decision trees - default -- the default decision tree, if any - range -- (precise documentation needed) - - - - - Decision trees. Pattern matching has been compiled down to - a decision tree by this point. The right-hand-sides (actions) of - the decision tree are labelled by integers that are unique for that - particular tree. - - - - - Constants in expressions - - - - - AttribExpr(source, evaluated) - AttribNamedArg(name,type,isField,value) - - - - - We keep both source expression and evaluated expression around to help intellisense and signature printing - - - - - Attrib(kind,unnamedArgs,propVal,appliedToAGetterOrSetter,targetsOpt,range) - - - - - Indicates an attribute refers to a type defined in an imported F# assembly - - - - - Indicates an attribute refers to a type defined in an imported .NET assembly - - - - - Represents the information saved in the assembly signature data resource for an F# assembly - - - - - The result of attempting to resolve an assembly name to a full ccu. - UnresolvedCcu will contain the name of the assembly that could not be resolved. - - - - - ccu.orphanfixup is true when a reference is missing in the transitive closure of static references that - may potentially be required for the metadata of referenced DLLs. It is set to true if the "loader" - used in the F# metadata-deserializer or the .NET metadata reader returns a failing value (e.g. None). - Note: When used from Visual Studio, the loader will not automatically chase down transitively referenced DLLs - they - must be in the explicit references in the project. - - - - - Indicates that this DLL uses F# 2.0+ quotation literals somewhere. This is used to implement a restriction on static linking. - - - - - Indicates that this DLL uses F# 2.0+ quotation literals somewhere. This is used to implement a restriction on static linking. - - - - - The table of type forwarders for this assembly - - - - - A unique stamp for this DLL - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - The table of type definitions at the "root" of the assembly - - - - - The table of modules and namespaces at the "root" of the assembly - - - - - The fully qualified assembly reference string to refer to this assembly. This is persisted in quotations - - - - - Is the CCu an EST injected assembly - - - - - Indicates that this DLL was compiled using the F# compiler and has F# metadata - - - - - Holds the data indicating how this assembly/module is referenced from the code being compiled. - - - - - Holds the filename for the DLL, if any - - - - - A handle to the full specification of the contents of the module contained in this ccu - - - - - Try to resolve a path into the CCU by referencing the .NET/CLI type forwarder table of the CCU - - - - - Used to make forward calls into the type/assembly loader when comparing member signatures during linking - - - - - Used to make 'forward' calls into the loader during linking - - - - - Fixup a CCU to record it as "orphaned", i.e. not available - - - - - Fixup a CCU to have the given contents - - - - - Ensure the ccu is derefable in advance. Supply a path to attach to any resulting error message. - - - - - Create a CCU with the given name but where the contents have not yet been specified - - - - - Create a CCU with the given name and contents - - - - - A relinkable handle to the contents of a compilation unit. Relinking is performed by mutation. - A compilation unit is, more or less, the new material created in one - invocation of the compiler. Due to static linking assemblies may hold more - than one compilation unit (i.e. when two assemblies are merged into a compilation - the resulting assembly will contain 3 CUs). Compilation units are also created for referenced - .NET assemblies. - - References to items such as type constructors are via - cross-compilation-unit thunks, which directly reference the data structures that define - these modules. Thus, when saving out values to disk we only wish - to save out the "current" part of the term graph. When reading values - back in we "fixup" the links to previously referenced modules. - - All non-local accesses to the data structures are mediated - by ccu-thunks. Ultimately, a ccu-thunk is either a (named) element of - the data structure, or it is a delayed fixup, i.e. an invalid dangling - reference that has not had an appropriate fixup applied. - - - - - Represents a table of .NET CLI type forwarders for an assembly - - - - - The table of .NET CLI type forwarders for this assembly - - - - - A helper function used to link method signatures using type equality. This is effectively a forward call to the type equality - logic in tastops.fs - - - - - A handle to the full specification of the contents of the module contained in this ccu - - - - - Indicates that this DLL uses pre-F#-4.0 quotation literals somewhere. This is used to implement a restriction on static linking - - - - - A helper function used to link method signatures using type equality. This is effectively a forward call to the type equality - logic in tastops.fs - - - - - Triggered when the contents of the CCU are invalidated - - - - - Is the CCu an assembly inected by a type provider - - - - - Indicates that this DLL was compiled using the F# compiler and has F# metadata - - - - - A hint as to where does the code for the CCU live (e.g what was the tcConfig.implicitIncludeDir at compilation time for this DLL?) - - - - - The fully qualified assembly reference string to refer to this assembly. This is persisted in quotations - - - - - A unique stamp for this DLL - - - - - Holds the data indicating how this assembly/module is referenced from the code being compiled. - - - - - Holds the filename for the DLL, if any - - - - - Raising a measure to a rational power - - - - - The unit of measure '1', e.g. float = float<1> - - - - - An inverse of a units of measure expression - - - - - A product of two units of measure - - - - - A constant, leaf unit-of-measure such as 'kg' or 'm' - - - - - A variable unit-of-measure - - - - - Indicates the type is a unit-of-measure expression being used as an argument to a type or member - - - - - Indicates the type is a variable type, whether declared, generalized or an inference type parameter - - - - - TType_ucase(unionCaseRef, typeInstantiation) - - Indicates the type is a non-F#-visible type representing a "proof" that a union value belongs to a particular union case - These types are not user-visible and will never appear as an inferred type. They are the types given to - the temporaries arising out of pattern matching on union values. - - - - - TType_fun(domainType,rangeType). - - Indicates the type is a function type - - - - - TType_tuple(elementTypes). - - Indicates the type is a tuple type. elementTypes must be of length 2 or greater. - - - - - TType_app(tyconRef, typeInstantiation). - - Indicates the type is build from a named type and a number of type arguments - - - - - TType_forall(typars, bodyTy). - - Indicates the type is a universal type, only used for types of values and members - - - - - The algebra of types - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - References are either local or nonlocal - - - - - note: ModuleOrNamespaceRef and TyconRef are type equivalent - - - - - Indicates a reference to something bound in another CCU - - - - - Indicates a reference to something bound in this CCU - - - - - The XML documentation sig-string of the entity, if any, to use to lookup an .xml doc file. This also acts - as a cache for this sig-string computation. - - - - - The XML documentation of the entity, if any. If the entity is backed by provided metadata - then this _does_ include this documentation. If the entity is backed by Abstract IL metadata - or comes from another F# assembly then it does not (because the documentation will get read from - an XML file). - - - - - Get the union cases and other union-type information for a type, if any - - - - - Get the union cases for a type, if any, as a list - - - - - Get the union cases for a type, if any - - - - - The information about the r.h.s. of a type definition, if any. For example, the r.h.s. of a union or record type. - - - - - Get the value representing the accessiblity of the r.h.s. of an F# type definition. - - - - - The kind of the type definition - is it a measure definition or a type definition? - - - - - The logical contents of the entity when it is a type definition. - - - - - Indicates if this entity is an F# type abbreviation definition - - - - - Get the type parameters for an entity that is a type declaration, otherwise return the empty list. - - - - - Get a list of all instance fields for F#-defined record, struct and class fields in this type definition, - excluding compiler-generate fields. - - - - - Get a list of all fields for F#-defined record, struct and class fields in this type definition, - including static fields, but excluding compiler-generate fields. - - - - - A unique stamp for this module, namespace or type definition within the context of this compilation. - Note that because of signatures, there are situations where in a single compilation the "same" - module, namespace or type may have two distinct Entity objects that have distinct stamps. - - - - - The code location where the module, namespace or type is defined. - - - - - Get a blob of data indicating how this type is nested in other namespaces, modules or types. - - - - - Indicates if we have pre-determined that a type definition has a default constructor. - - - - - The logical contents of the entity when it is a module or namespace fragment. - - - - - Gets the immediate members of an F# type definition, excluding compiler-generated ones. - Note: result is alphabetically sorted, then for each name the results are in declaration order - - - - - Gets all immediate members of an F# type definition keyed by name, including compiler-generated ones. - Note: result is a indexed table, and for each name the results are in reverse declaration order - - - - - The name of the namespace, module or type, possibly with mangling, e.g. List`1, List or FailureException - - - - - Indicate if this is a type whose r.h.s. is known to be a union type definition. - - - - - Indicates if this is a struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is an F# type definition whose r.h.s. is known to be a record type definition. - - - - - Indicates if the entity is a provided namespace fragment - - - - - Indicates if the entity is a generated provided type definition, i.e. not erased. - - - - - Indicates if the entity is an erased provided type definition - - - - - Indicates if the entity is a provided namespace fragment - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - Indicates if the entity is a namespace - - - - - Indicates the "tycon blob" is actually a module - - - - - Indicates if the entity is an F# module definition - - - - - Indicates if this is an F# type definition which is one of the special types in FSharp.Core.dll like 'float<_>' which - defines a measure type with a relation to an existing non-measure type as a representation. - - - - - Indicate if this is a type definition backed by Abstract IL metadata. - - - - - Indicates if this is a .NET-defined struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is a .NET-defined enum type definition - - - - - Indicates if this is an F# type definition whose r.h.s. definition is unknown (i.e. a traditional ML 'abstract' type in a signature, - which in F# is called a 'unknown representation' type). - - - - - Indicates if this is an F#-defined struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is an F# type definition whose r.h.s. is known to be some kind of F# object model definition - - - - - Indicates if this is an F#-defined interface type definition - - - - - Indicates if this is an F#-defined enum type definition - - - - - Indicates if this is an F#-defined delegate type definition - - - - - Indicates if the entity represents an F# exception declaration. - - - - - Indicates if the entity is erased, either a measure definition, or an erased provided type definition - - - - - Indicates if this is an enum type definition - - - - - Indicates if this is an F# type definition which is one of the special types in FSharp.Core.dll which uses - an assembly-code representation for the type, e.g. the primitive array type constructor. - - - - - Gets the immediate interface definitions of an F# type definition. Further interfaces may be supported through class and interface inheritance. - - - - - Gets the immediate interface types of an F# type definition. Further interfaces may be supported through class and interface inheritance. - - - - - The identifier at the point of declaration of the type definition. - - - - - Get the Abstract IL metadata for this type definition, assuming it is backed by Abstract IL metadata. - - - - - Get the Abstract IL scope, nesting and metadata for this - type definition, assuming it is backed by Abstract IL metadata. - - - - - Indicates if we have pre-determined that a type definition has a self-referential constructor using 'as x' - - - - - Gets any implicit hash/equals (with comparer argument) methods added to an F# record, union or struct type definition. - - - - - Gets any implicit hash/equals methods added to an F# record, union or struct type definition. - - - - - Gets any implicit CompareTo (with comparer argument) methods added to an F# record, union or struct type definition. - - - - - Gets any implicit CompareTo methods added to an F# record, union or struct type definition. - - - - - Get the blob of information associated with an F# object-model type definition, i.e. class, interface, struct etc. - - - - - The information about the r.h.s. of an F# exception definition, if any. - - - - - The display name of the namespace, module or type with <_,_,_> added for generic types, including static parameters - - - - - The display name of the namespace, module or type, e.g. List instead of List`1, including static parameters - - - - - The display name of the namespace, module or type, e.g. List instead of List`1, not including static parameters - - - - - Demangle the module name, if FSharpModuleWithSuffix is used - - - - - Gets the data indicating the compiled representation of a named type or module in terms of Abstract IL data structures. - - - - - Gets the data indicating the compiled representation of a type or module in terms of Abstract IL data structures. - - - - - Get the cache of the compiled ILTypeRef representation of this module or type. - - - - - The compiled name of the namespace, module or type, e.g. FSharpList`1, ListModule or FailureException - - - - - Get a blob of data indicating how this type is nested inside other namespaces, modules and types. - - - - - Is the destination assembly available? - - - - - The F#-defined custom attributes of the entity, if any. If the entity is backed by Abstract IL or provided metadata - then this does not include any attributes from those sources. - - - - - Get a list of all instance fields for F#-defined record, struct and class fields in this type definition. - including hidden fields from the compilation of implicit class constructions. - - - - - Get a list of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get an array of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get a table of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get the value representing the accessiblity of an F# type definition or module. - - - - - Get the type parameters for an entity that is a type declaration, otherwise return the empty list. - - Lazy because it may read metadata, must provide a context "range" in case error occurs reading metadata. - - - - - Get a union case of a type by name - - - - - Get a field by name. - - - - - Get a field by index in definition order - - - - - Try to get the details of the module or namespace fragment referred to by this non-local reference. - - - - - Try to link a non-local entity reference to an actual entity - - - - - Get the path into the CCU referenced by the nonlocal reference. - - - - - Get the details of the module or namespace fragment for the entity referred to by this non-local reference. - - - - - Get the mangled name of the last item in the path of the nonlocal reference. - - - - - Get the all-but-last names of the path of the nonlocal reference. - - - - - Dereference the nonlocal reference, and raise an error if this fails. - - - - - Get the CCU referenced by the nonlocal reference. - - - - - Get the name of the assembly referenced by the nonlocal reference. - - - - - Try to find the entity correspondng to the given path, using type-providers to link the data - - - - - Try to find the entity correspondng to the given path in the given CCU - - - - - Index into the namespace/module structure of a particular CCU - - - - - The name of the value, or the full signature of the member - - - - - A reference to the entity containing the value or member. THis will always be a non-local reference - - - - - Gets updated with 'true' if an abstract slot is implemented in the file being typechecked. Internal only. - - - - - Updated with the full implemented slotsig after interface implementation relation is checked - - - - - The parent type. For an extension member this is the type being extended - - - - - XML documentation signature for the value - - - - - XML documentation attached to a value. - - - - - Custom attributes attached to the value. These contain references to other values (i.e. constructors in types). Mutable to fixup - these value references after copying a colelction of values. - - - - - Is the value actually an instance method/property/event that augments - a type, and if so what name does it take in the IL? - - - - - How visible is this? - - - - - What is the original, unoptimized, closed-term definition, if any? - Used to implement [<ReflectedDefinition>] - - - - - See vflags section further below for encoding/decodings here - - - - -Get the signature for the value's XML documentation - - - - -Get the signature for the value's XML documentation - - - - - Get the declared documentation for the value - - - - - Records the "extra information" for a value compiled as a method. - - This indicates the number of arguments in each position for a curried - functions, and relates to the F# spec for arity analysis. - For module-defined values, the currying is based - on the number of lambdas, and in each position the elements are - based on attempting to deconstruct the type of the argument as a - tuple-type. - - The field is mutable because arities for recursive - values are only inferred after the r.h.s. is analyzed, but the - value itself is created before the r.h.s. is analyzed. - - TLR also sets this for inner bindings that it wants to - represent as "top level" bindings. - - - - - Get the type of the value including any generic type parameters - - - - - The type of the value. - May be a TType_forall for a generic value. - May be a type variable or type containing type variables during type inference. - - - - - Get the generic type parameters for the value - - - - - Get the actual parent entity for the value (a module or a type), i.e. the entity under which the - value will appear in compiled code. For extension members this is the module where the extension member - is declared. - - - - - Get the type of the value after removing any generic type parameters - - - - - A unique stamp within the context of this invocation of the compiler process - - - - - The quotation expression associated with a value given the [<ReflectedDefinition>] tag - - - - - Get the information about the value used during type inference - - - - - The place where the value was defined. - - - - - Get the public path to the value, if any? Should be set if and only if - IsMemberOrModuleBinding is set. - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the property implemented by the abstract slot - - - - - Indicates if this is allows the use of an explicit type instantiation (i.e. does it itself have explciti type arguments, - or does it have a signature?) - - - - - Get the number of 'this'/'self' object arguments for the member. Instance extension members return '1'. - - - - - Indicates whether the inline declaration for the value indicate that the value must be inlined? - - - - - Is this a member, if so some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Get the apparent parent entity for a member - - - - - Indicates if this is inferred to be a method or function that definitely makes no critical tailcalls? - - - - - The name of the method. - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an extension member then this will be the simple name - - - - - The value of a value or member marked with [<LiteralAttribute>] - - - - - The partial information used to index the methods of all those in a ModuleOrNamespace. - - - - - The full information used to identify a specific overloaded method amongst all those in a ModuleOrNamespace. - - - - - Indicates if this value was a member declared 'override' or an implementation of an interface slot - - - - - Indicates if this is declared 'mutable' - - - - - Indicates if this is an F#-defined value in a module, or an extension member, but excluding compiler generated bindings from optimizations - - - - - Is this a member definition or module definition? - - - - - Indicates if this is a member, and if so, gives some more data about the member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Indicates if a value is linked to backing data yet. Only used during unpickling of F# metadata. - - - - - Indicates if this is a member, excluding extension members - - - - - Indicates if this is an F#-defined instance member. - - Note, the value may still be (a) an extension member or (b) and abtract slot without - a true body. These cases are often causes of bugs in the compiler. - - - - - Indicates if this is a member generated from the de-sugaring of 'let' function bindings in the implicit class syntax? - - - - - Indicates if this is a constructor member generated from the de-sugaring of implicit constructor for a class type? - - - - - Indicates if this is an F#-defined extension member - - - - - Indicates if this member is an F#-defined dispatch slot. - - - - - Indicates if this is an F#-defined 'new' constructor member - - - - - Indicates whether this value was generated by the compiler. - - Note: this is true for the overrides generated by hash/compare augmentations - - - - - Indicates if this is something compiled into a module, i.e. a user-defined value, an extension member or a compiler-generated value - - - - - Is this represented as a "top level" static binding (i.e. a static field, static member, - instance member), rather than an "inner" binding that may result in a closure. - - This is implied by IsMemberOrModuleBinding, however not vice versa, for two reasons. - Some optimizations mutate this value when they decide to change the representation of a - binding to be IsCompiledAsTopLevel. Second, even immediately after type checking we expect - some non-module, non-member bindings to be marked IsCompiledAsTopLevel, e.g. 'y' in - 'let x = let y = 1 in y + y' (NOTE: check this, don't take it as gospel) - - - - - Indicates if the backing field for a static value is suppressed. - - - - - Indicates if this is a compiler-generated class constructor member - - - - - Get the inline declaration on the value - - - - - Indicates if this is ever referenced? - - - - - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is '(+)' - - - - - Range of the definition (implementation) of the value, used by Visual Studio - Updated by mutation when the implementation is matched against the signature. - - - - - The name of the method. - - If this is a property then this is 'Foo' - - If this is an implementation of an abstract slot then this is the name of the method implemented by the abstract slot - - If this is an operator then this is 'op_Addition' - - - - - The name of the method in compiled code (with some exceptions where ilxgen.fs decides not to use a method impl) - - If this is a property then this is 'get_Foo' or 'set_Foo' - - If this is an implementation of an abstract slot then this may be a mangled name - - If this is an extension member then this will be a mangled name - - If this is an operator then this is 'op_Addition' - - - - - Indicates if this is a 'base' or 'this' value? - - - - - Get the declared attributes for the value - - - - - Get the apparent parent entity for the value, i.e. the entity under with which the - value is associated. For extension members this is the nominal type the member extends. - For other values it is just the actual parent. - - - - - The parent type or module, if any (None for expression bindings and parameters) - - - - - How visible is this value, function or member? - - - - - Create a new value with empty, unlinked data. Only used during unpickling of F# metadata. - - - - - Create a new value with the given backing data. Only used during unpickling of F# metadata. - - - - - Link a value based on empty, unlinked data to the given data. Only used during unpickling of F# metadata. - - - - - The full type of the value for the purposes of linking. May be None for non-members, since they can't be overloaded. - - - - - The partial information used to index the value in a ModuleOrNamespace. - - - - - The full information used to identify a specific overloaded method - amongst all those in a ModuleOrNamespace. - - - - - Indicates the total argument count of the member. - - - - - Indicates the logical name of the member. - - - - - Indicates if the member is an override. - - - - - The name of the type with which the member is associated. None for non-member values. - - - - - The partial information used to index the methods of all those in a ModuleOrNamespace. - - - - - Indicates a trait is solved by a 'fake' instance of an operator, like '+' on integers - - - - - ClosedExprSln(expr) - - Indicates a trait is solved by an erased provided expression - - - - - ILMethSln(typ, extOpt, ilMethodRef, minst) - - Indicates a trait is solved by a .NET method. - typ -- the type and its instantiation - extOpt -- information about an extension member, if any - ilMethodRef -- the method that solves the trait constraint - minst -- the generic method instantiation - - - - - FSRecdFieldSln(tinst, rfref, isSetProp) - - Indicates a trait is solved by an F# record field. - tinst -- the instantiation of the declaring type - rfref -- the reference to the record field - isSetProp -- indicates if this is a set of a record field - - - - - FSMethSln(typ, vref, minst) - - Indicates a trait is solved by an F# method. - typ -- the type and its instantiation - vref -- the method that solves the trait constraint - minst -- the generic method instantiation - - - - - Indicates the solution of a member constraint during inference. - - - - - TTrait(tys,nm,memFlags,argtys,rty,colution) - - Indicates the signature of a member constraint. Contains a mutable solution cell - to store the inferred solution of the constraint. - - - - - Get or set the solution of the member constraint during inference - - - - - Get or set the solution of the member constraint during inference - - - - - Get the return type recorded in the member constraint. - - - - - Get the member name associated with the member constraint. - - - - - The specification of a member constraint that must be solved - - - - - Indicates a constraint that a type is .NET unmanaged type - - - - - Indicates a constraint that a type is a delegate from the given tuple of args to the given return type - - - - - Indicates a constraint that a type does not have the Equality(false) attribute, or is not a structural type with this attribute, with special rules for some known structural container types - - - - - Indicates a constraint that a type implements IComparable, with special rules for some known structural container types - - - - - Indicates a constraint that a type is an enum with the given underlying - - - - - Indicates a constraint that a type has a parameterless constructor - - - - - Indicates a constraint that a type is a simple choice between one of the given ground types. Only arises from 'printf' format strings. See format.fs - - - - - Indicates a constraint that a type is a reference type - - - - - Indicates a constraint that a type is a non-Nullable value type - These are part of .NET's model of generic constraints, and in order to - generate verifiable code we must attach them to F# generalzied type variables as well. - - - - - Indicates a constraint that a type has a member with the given signature - - - - - Indicates a constraint that a type has a 'null' value - - - - - Indicates a default value for an inference type variable should it be netiher generalized nor solved - - - - - Indicates a constraint that a type is a subtype of the given type - - - - - A cached TAST type used when this type variable is used as type. - - - - - Indicates if the type variable has a static "head type" requirement, i.e. ^a variables used in FSharp.Core and member constraints. - - - - - The unique stamp of the typar definition - - - - - The inferred equivalence for the type inference variable, if any. - - - - - Indicates if the type variable can be sovled or given new constraints. The status of a type variable - generally always evolves towards being either rigid or solved. - - - - - Indicates whether a type variable can be instantiated by types or units-of-measure. - - - - - Indicates if a type variable has been solved. - - - - - Indicates if a type variable has been linked. Only used during unpickling of F# metadata. - - - - - Indicates if the type inference variable was generated after an error when type checking expressions or patterns - - - - - Indicates whether a type variable is erased in compiled .NET IL code, i.e. whether it is a unit-of-measure variable - - - - - Indicates if the type variable is compiler generated, i.e. is an implicit type inference variable - - - - - Indicates that whether or not a generic type definition satisfies the equality constraint is dependent on whether this type variable satisfies the equality constraint. - - - - - Indicates if a type parameter is needed at runtime and may not be eliminated - - - - - Indicates the display name of a type variable - - - - - The inferred constraints for the type inference variable, if any - - - - - Indicates that whether or not a generic type definition satisfies the comparison constraint is dependent on whether this type variable satisfies the comparison constraint. - - - - - The declared attributes of the type parameter. Empty for type inference variables and parameters from .NET - - - - - Sets whether a type variable has a static requirement - - - - - Sets the rigidity of a type variable - - - - - Sets the identifier assocaited with a type variable - - - - - Sets whether the equality constraint of a type definition depends on this type variable - - - - - Sets whether a type variable is required at runtime - - - - - Sets whether a type variable is compiler generated - - - - - Sets whether the comparison constraint of a type definition depends on this type variable - - - - - Creates a type variable that contains empty data, and is not yet linked. Only used during unpickling of F# metadata. - - - - - Creates a type variable based on the given data. Only used during unpickling of F# metadata. - - - - - Links a previously unlinked type variable to the given data. Only used during unpickling of F# metadata. - - - - - Adjusts the constraints associated with a type variable - - - - - A declared generic type/measure parameter, or a type/measure inference variable. - - - - - The inferred constraints for the type inference variable - - - - - An inferred equivalence for a type inference variable. - - - - - The declared attributes of the type parameter. Empty for type inference variables. - - - - - The documentation for the type parameter. Empty for type inference variables. - - - - - The unique stamp of the typar blob. - - - - - MUTABILITY: we set the names of generalized inference type parameters to make the look nice for IL code generation - - - - - MUTABILITY: we set the names of generalized inference type parameters to make the look nice for IL code generation - - - - - Backing data for type parameters and type inference variables - - - - - Indicates the construct can only be accessed from any code in the given type constructor, module or assembly. [] indicates global scope. - - - - - A set of static methods for constructing types. - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - Get a table of types defined within this module, namespace or type. The - table is indexed by both name and, for generic types, also by mangled name. - - - - - Get a list of types defined within this module, namespace or type. - - - - - Get a list of type and exception definitions defined within this module, namespace or type. - - - - - Get a table of nested module and namespace fragments indexed by demangled name (so 'ListModule' becomes 'List') - - - - - Namespace or module-compiled-as-type? - - - - - Get a list of module and namespace definitions defined within this module, namespace or type. - - - - - Get a table of F# exception definitions indexed by demangled name, so 'FailureException' is indexed by 'Failure' - - - - - Get a list of F# exception definitions defined within this module, namespace or type. - - - - - Get a table of values indexed by logical name - - - - - Get a table of values and members indexed by partial linkage key, which includes name, the mangled name of the parent type (if any), - and the method argument count (if any). - - - - - Compute a table of values and members indexed by logical name. - - - - - Values, including members in F# types in this module-or-namespace-fragment. - - - - - Get a table of entities indexed by both logical name - - - - - Get a table of entities indexed by both logical and compiled names - - - - - Type, mapping mangled name to Tycon, e.g. - - - - - Get a table of the active patterns defined in this module. - - - - - Get a table of types defined within this module, namespace or type. The - table is indexed by both name and generic arity. This means that for generic - types "List`1", the entry (List,1) will be present. - - - - - Try to find the member with the given linkage key in the given module. - - - - - Return a new module or namespace type with a value added. - - - - - Mutation used in hosting scenarios to hold the hosted types in this module or namespace - - - - - Mutation used during compilation of FSharp.Core.dll - - - - - Return a new module or namespace type with an entity added. - - - - - Indicates that an exception is abstract, i.e. is in a signature file, and we do not know the representation - - - - - Indicates that an exception carries the given record of values - - - - - Indicates that an exception is shorthand for the given .NET exception type - - - - - Indicates that an exception is an abbreviation for the given exception - - - - - Name/declaration-location of the field - - - - - Attributes attached to generated field - - - - - Attributes attached to generated property - - - - - Indicates the declared visibility of the field, not taking signatures into account - - - - - The default initialization info, for static literals - - - - - Indicates a compiler generated field, not visible to Intellisense or name resolution - - - - - Indicates a volatile field - - - - - Indicates a static field - - - - - The type of the field, w.r.t. the generic parameters of the enclosing type constructor - - - - - XML Documentation signature for the field - - - - - Documentation for the field - - - - - Is the field declared mutable in F#? - - - - - This may represent a "field" in either a struct, class, record or union - It is normally compiled to a property. - - - - - Attributes, attached to the generated static method to make instances of the case - - - - - Indicates the declared visibility of the union constructor, not taking signatures into account - - - - - Name/range of the case - - - - - XML documentation signature for the case - - - - - Documentation for the case - - - - - Name of the case in generated IL code - - - - - Return type constructed by the case. Normally exactly the type of the enclosing type, sometimes an abbreviation of it - - - - - Data carried by the case. - - - - - The ILX data structure representing the discriminated union. - - - - - The cases contained in the discriminated union. - - - - - The cases of the discriminated union, indexed by name. - - - - - The cases of the discriminated union, in declaration order. - - - - - The fields of the record, indexed by name. - - - - - The fields of the record, in declaration order. - - - - - The fields of the class, struct or enum - - - - - The declared abstract slots of the class, interface or struct - - - - - Indicates whether the type declaration is a class, interface, enum, delegate or struct - - - - - Indicates the type is an enumeration - - - - - Indicates the type is a delegate with the given Invoke signature - - - - - Indicates the type is a struct - - - - - Indicates the type is an interface - - - - - Indicates the type is a class (also used for units-of-measure) - - - - - Indicates the type is generated, but type-relocation is suppressed - - - - - A flag read from the provided type and used to compute basic properties of the type definition. - Reading is delayed, since it looks at the .BaseType - - - - - A type read from the provided type and used to compute basic properties of the type definition. - Reading is delayed, since it does an import on the underlying type - - - - - A flag read eagerly from the provided type and used to compute basic properties of the type definition. - - - - - A flag read eagerly from the provided type and used to compute basic properties of the type definition. - - - - - A flag read eagerly from the provided type and used to compute basic properties of the type definition. - - - - - A flag read eagerly from the provided type and used to compute basic properties of the type definition. - - - - - A flag read eagerly from the provided type and used to compute basic properties of the type definition. - - - - - The base type of the type. We use it to compute the compiled representation of the type for erased types. - Reading is delayed, since it does an import on the underlying type - - - - - The underlying System.Type (wrapped as a ProvidedType to make sure we don't call random things on - System.Type, and wrapped as Tainted to make sure we track which provider this came from, for reporting - error messages) - - - - - The parameters given to the provider that provided to this type. - - - - - The information kept about a provided type - - - - - The 'NoRepr' value here has four meanings: - (1) it indicates 'not yet known' during the first 2 phases of establishing type definitions - (2) it indicates 'no representation', i.e. 'type X' in signatures - (3) it is the setting used for exception definitions (!) - (4) it is the setting used for modules and namespaces. - - It would be better to separate the "not yet known" and other cases out. - The information for exception definitions should be folded into here. - - - - - Indicates the representation information for a provided namespace. - - - - - TProvidedTypeExtensionPoint - - Indicates the representation information for a provided type. - - - - - Indicates the type is parameterized on a measure (e.g. float<_>) but erases to some other type (e.g. float) - - - - - Indicates the type is implemented as IL assembly code using the given closed Abstract IL type - - - - - TILObjModelRepr(scope, nesting, definition) - - Indicates the type is a type from a .NET assembly without F# metadata. - - - - - Indicates the type is a discriminated union - - - - - Indicates the type is a record - - - - - Indicates the type is a class, struct, enum, delegate or interface - - - - - The information for the contents of a type. Also used for a provided namespace. - - - - - Set to true if the type is determined to be abstract - - - - - Set to true at the end of the scope where proper augmentations are allowed - - - - - Super type, if any - - - - - Interface implementations - boolean indicates compiler-generated - - - - - Properties, methods etc. as lookup table - - - - - Properties, methods etc. in declaration order. The boolean flag for each indicates if the - member is known to be an explicit interface implementation. This must be computed and - saved prior to remapping assembly information. - - - - - True if the type defined an Object.GetHashCode method. In this - case we give a warning if we auto-generate a hash method since the semantics may not match up - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralEquatable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated equality - semantics if any. It is not present if the type defines its own implementation - of Object.Equals or if the type doesn't override Object.Equals implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IStructuralComparable or if the type doesn't implement IComparable implicitly. - - - - - This is the value implementing the auto-generated comparison - semantics if any. It is not present if the type defines its own implementation - of IComparable or if the type doesn't implement IComparable implicitly. - - - - - Used during codegen to hold the ILX representation indicating how to access the type - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - Indicates how visible is the entitiy is. - - - - - The stable path to the type, e.g. Microsoft.FSharp.Core.FSharpFunc`2 - - - - - The XML document signature for this entity - - - - - The declared documentation for the type or module - - - - - This field is used when the 'tycon' is really a module definition. It holds statically nested type definitions and nested modules - - - - - Field used when the 'tycon' is really an exception definition - - - - - The methods and properties of the type - - - - - If non-None, indicates the type is an abbreviation for another type. - - - - - The declared representation of the type, i.e. record, union, class etc. - - - - - The declared attributes for the type - - - - - The declared accessibility of the representation, not taking signatures into account - - - - - The declaration location for the type constructor - - - - - The name of the type, possibly with `n mangling - - - - - The name of the type, possibly with `n mangling - - - - - The unique stamp of the "tycon blob". Note the same tycon in signature and implementation get different stamps - - - - - The declared type parameters of the type - - - - - The XML documentation sig-string of the entity, if any, to use to lookup an .xml doc file. This also acts - as a cache for this sig-string computation. - - - - - The XML documentation sig-string of the entity, if any, to use to lookup an .xml doc file. This also acts - as a cache for this sig-string computation. - - - - - The XML documentation of the entity, if any. If the entity is backed by provided metadata - then this _does_ include this documentation. If the entity is backed by Abstract IL metadata - or comes from another F# assembly then it does not (because the documentation will get read from - an XML file). - - - - - Get the union cases and other union-type information for a type, if any - - - - - Get the union cases for a type, if any, as a list - - - - - Get the union cases for a type, if any - - - - - The information about the r.h.s. of a type definition, if any. For example, the r.h.s. of a union or record type. - - - - - Get the value representing the accessiblity of the r.h.s. of an F# type definition. - - - - - The kind of the type definition - is it a measure definition or a type definition? - - - - - The logical contents of the entity when it is a type definition. - - - - - Get the type abbreviated by this type definition, if it is an F# type abbreviation definition - - - - - Get the type parameters for an entity that is a type declaration, otherwise return the empty list. - - - - - Get a list of all instance fields for F#-defined record, struct and class fields in this type definition, - excluding compiler-generate fields. - - - - - Get a list of all fields for F#-defined record, struct and class fields in this type definition, - including static fields, but excluding compiler-generate fields. - - - - - A unique stamp for this module, namespace or type definition within the context of this compilation. - Note that because of signatures, there are situations where in a single compilation the "same" - module, namespace or type may have two distinct Entity objects that have distinct stamps. - - - - - The code location where the module, namespace or type is defined. - - - - - Get a blob of data indicating how this type is nested in other namespaces, modules or types. - - - - - Indicates if we have pre-determined that a type definition has a default constructor. - - - - - The logical contents of the entity when it is a module or namespace fragment. - - - - - Gets the immediate members of an F# type definition, excluding compiler-generated ones. - Note: result is alphabetically sorted, then for each name the results are in declaration order - - - - - Gets all immediate members of an F# type definition keyed by name, including compiler-generated ones. - Note: result is a indexed table, and for each name the results are in reverse declaration order - - - - - The name of the namespace, module or type, possibly with mangling, e.g. List`1, List or FailureException - - - - - Indicate if this is a type whose r.h.s. is known to be a union type definition. - - - - - Indicates if this entity is an F# type abbreviation definition - - - - - Indicates if this is a struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is an F# type definition whose r.h.s. is known to be a record type definition. - - - - - Indicates if the entity is a provided namespace fragment - - - - - Indicates if the entity is a generated provided type definition, i.e. not erased. - - - - - Indicates if the entity is an erased provided type definition - - - - - Indicates if the entity is a provided type or namespace definition - - - - - Indicates the type prefers the "tycon<a,b>" syntax for display etc. - - - - - Indicates if the entity is a namespace - - - - - Indicates the "tycon blob" is actually a module - - - - - Indicates if the entity is an F# module definition - - - - - Indicates if this is an F# type definition which is one of the special types in FSharp.Core.dll like 'float<_>' which - defines a measure type with a relation to an existing non-measure type as a representation. - - - - - Indicates if the entity is linked to backing data. Only used during unpickling of F# metadata. - - - - - Indicate if this is a type definition backed by Abstract IL metadata. - - - - - Indicates if this is a .NET-defined struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is a .NET-defined enum type definition - - - - - Indicates if this is an F# type definition whose r.h.s. definition is unknown (i.e. a traditional ML 'abstract' type in a signature, - which in F# is called a 'unknown representation' type). - - - - - Indicates if this is an F#-defined struct or enum type definition , i.e. a value type definition - - - - - Indicates if this is an F# type definition whose r.h.s. is known to be some kind of F# object model definition - - - - - Indicates if this is an F#-defined interface type definition - - - - - Indicates if this is an F#-defined enum type definition - - - - - Indicates if this is an F#-defined delegate type definition - - - - - Indicates if this is an F#-defined class type definition - - - - - Indicates if the entity represents an F# exception declaration. - - - - - Indicates if the entity is erased, either a measure definition, or an erased provided type definition - - - - - Indicates if this is an enum type definition - - - - - Indicates if this is an F# type definition which is one of the special types in FSharp.Core.dll which uses - an assembly-code representation for the type, e.g. the primitive array type constructor. - - - - - Gets the immediate interface definitions of an F# type definition. Further interfaces may be supported through class and interface inheritance. - - - - - Gets the immediate interface types of an F# type definition. Further interfaces may be supported through class and interface inheritance. - - - - - The identifier at the point of declaration of the type definition. - - - - - Get the Abstract IL metadata for this type definition, assuming it is backed by Abstract IL metadata. - - - - - Get the Abstract IL scope, nesting and metadata for this - type definition, assuming it is backed by Abstract IL metadata. - - - - - Indicates if we have pre-determined that a type definition has a self-referential constructor using 'as x' - - - - - Gets any implicit hash/equals (with comparer argument) methods added to an F# record, union or struct type definition. - - - - - Gets any implicit hash/equals methods added to an F# record, union or struct type definition. - - - - - Gets any implicit CompareTo (with comparer argument) methods added to an F# record, union or struct type definition. - - - - - Gets any implicit CompareTo methods added to an F# record, union or struct type definition. - - - - - Get the blob of information associated with an F# object-model type definition, i.e. class, interface, struct etc. - - - - - The information about the r.h.s. of an F# exception definition, if any. - - - - - The display name of the namespace, module or type with <_,_,_> added for generic types, plus static parameters if any - - - - - The display name of the namespace, module or type, e.g. List instead of List`1, including static parameters if any - - - - - The display name of the namespace, module or type, e.g. List instead of List`1, and no static parameters - - - - - Demangle the module name, if FSharpModuleWithSuffix is used - - - - - Gets the data indicating the compiled representation of a named type or module in terms of Abstract IL data structures. - - - - - Gets the data indicating the compiled representation of a type or module in terms of Abstract IL data structures. - - - - - Get the cache of the compiled ILTypeRef representation of this module or type. - - - - - The compiled name of the namespace, module or type, e.g. FSharpList`1, ListModule or FailureException - - - - - Get a blob of data indicating how this type is nested inside other namespaces, modules and types. - - - - - Get a blob of data indicating how this type is nested inside other namespaces, modules and types. - - - - - The F#-defined custom attributes of the entity, if any. If the entity is backed by Abstract IL or provided metadata - then this does not include any attributes from those sources. - - - - - Get a list of all instance fields for F#-defined record, struct and class fields in this type definition. - including hidden fields from the compilation of implicit class constructions. - - - - - Gets all implicit hash/equals/compare methods added to an F# record, union or struct type definition. - - - - - Get a list of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get an array of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get a table of fields for all the F#-defined record, struct and class fields in this type definition, including - static fields, 'val' declarations and hidden fields from the compilation of implicit class constructions. - - - - - Get the value representing the accessiblity of an F# type definition or module. - - - - - Get the type parameters for an entity that is a type declaration, otherwise return the empty list. - - Lazy because it may read metadata, must provide a context "range" in case error occurs reading metadata. - - - - - Set the custom attributes on an F# type definition. - - - - - Create a new entity with empty, unlinked data. Only used during unpickling of F# metadata. - - - - - Create a new entity with the given backing data. Only used during unpickling of F# metadata. - - - - - Link an entity based on empty, unlinked data to the given data. Only used during unpickling of F# metadata. - - - - - Get a union case of a type by name - - - - - Get a field by name. - - - - - Get a field by index in definition order - - - - - String 'Module' off an F# module name, if FSharpModuleWithSuffix is used - - - - - A public path records where a construct lives within the global namespace - of a CCU. - - - - - The information ILXGEN needs about the location of an item - - - - - Indicates that a 'module' is really a namespace - - - - - Indicates that a module is compiled to a class with the same name as the original module - - - - - Indicates that a module is compiled to a class with the "Module" suffix added. - - - - - This bit is reserved for us in the pickle format, see pickle.fs, it's bing listed here to stop it ever being used for anything else - - - - - Get the flags as included in the F# binary metadata - - - - - Encode entity flags into a bit field. We leave lots of space to allow for future expansion. - - - - - Indicates if the type variable has a static "head type" requirement, i.e. ^a variables used in FSharp.Core and member constraints. - - - - - Indicates if the type variable can be sovled or given new constraints. The status of a type variable - generally always evolves towards being either rigid or solved. - - - - - Get the flags as included in the F# binary metadata. We pickle this as int64 to allow for future expansion - - - - - Indicates whether a type variable can be instantiated by types or units-of-measure. - - - - - Indicates if the type inference variable was generated after an error when type checking expressions or patterns - - - - - Indicates if the type variable is compiler generated, i.e. is an implicit type inference variable - - - - - Indicates that whether or not a generic type definition satisfies the equality constraint is dependent on whether this type variable satisfies the equality constraint. - - - - - Indicates if a type parameter is needed at runtime and may not be eliminated - - - - - Indicates that whether or not a generic type definition satisfies the comparison constraint is dependent on whether this type variable satisfies the comparison constraint. - - - - - Encode typar flags into a bit field - - - - - Indicates the type parameter derives from an '_' anonymous type - For units-of-measure, we give a warning if this gets solved to '1' - - - - - Indicates the type parameter is an inference variable may be solved - - - - - Indicates we give a warning if the type parameter is ever solved - - - - - Indicates the type parameter can't be solved, but the variable is not set to "rigid" until after inference is complete - - - - - Indicates the type parameter can't be solved - - - - - Indicates if the type variable can be sovled or given new constraints. The status of a type variable - evolves towards being either rigid or solved. - - - - - Get the flags as included in the F# binary metadata - - - - - Indicates the 'this' value specified in a memberm e.g. 'x' in 'member x.M() = 1' - - - - - Indicates a normal value - - - - - Indicates the value called 'base' available for calling base class members - - - - - Indicates a ref-cell holding 'this' or the implicit 'this' used throughout an - implicit constructor to access and set values - - - - - Indicates the type parameter is needed at runtime and may not be eliminated - - - - - Indicates the type parameter is not needed at runtime and may be eliminated - - - - - Indicates if a type parameter is needed at runtime and may not be eliminated - - - - - The normal value for this flag when the value is not within its recursive scope - - - - - Set while the value is within its recursive scope. The flag indicates if the value has been eagerly generalized and accepts generic-recursive calls - - - - - A flag associated with values that indicates whether the recursive scope of the value is currently being processed, and - if the value has been generalized or not as yet. - - - - - Indicates the value must never be inlined by the optimizer - - - - - Indicates the value may optionally be inlined by the optimizer - - - - - Indicates the value is inlined but the .NET IL code for the function still exists, e.g. to satisfy interfaces on objects, but that it is also always inlined - - - - - Indicates the value must always be inlined and no .NET IL code is generated for the value/function - - - - - Unique name generator for stamps attached to lambdas and object expressions - - - - - Combine module types when multiple namespace fragments contribute to the - same namespace, making new module specs as we go. - - - - - Combine two maps where the given function reconciles entries that have the same key - - - - - Create a Val based on an existing one using the function 'f'. - We require that we be given the parent for the new Val. - - - - - Create a module Tycon based on an existing one using the function 'f'. - We require that we be given the parent for the new module. - We pass the new module to 'f' in case it needs to reparent the - contents of the module. - - - - - Create a tycon based on an existing one using the function 'f'. - We require that we be given the new parent for the new tycon. - We pass the new tycon to 'f' in case it needs to reparent the - contents of the tycon. - - - - - Given (newPath,oldPath) replace oldPath by newPath in the TAccess. - - - - - Primitive routine to compare two ValRef's for equality. On the whol value identity is not particularly - significant in F#. However it is significant for - (a) Active Patterns - (b) detecting uses of "special known values" from FSharp.Core.dll, such as 'seq' - and quotation splicing - - Note this routine doesn't take type forwarding into account - - - - - Primitive routine to compare two UnionCaseRef's for equality - - - - - Primitive routine to compare two EntityRef's for equality - This takes into account the possibility that they may have type forwarders - - - - - This predicate tests if non-local resolution paths are definitely known to resolve - to different entities. All references with different named paths always resolve to - different entities. Two references with the same named paths may resolve to the same - entities even if they reference through different CCUs, because one reference - may be forwarded to another via a .NET TypeForwarder. - - - - - From Ref_private to Ref_nonlocal when exporting data. - - - - - From Ref_private to Ref_nonlocal when exporting data. - - - - - Make a reference to a union case for type in a module or namespace - - - - - For derefencing in the middle of a pattern - - - - - Equality on CCU references, implemented as reference equality except when unresolved - - - - - Equality on value specs, implemented as reference equality - - - - - Equality on type varialbes, implemented as reference equality. This should be equivalent to using typarEq. - - - - - Generic types can be accessed either by 'List' or 'List`1'. This lists both keys. The second form should really be deprecated. - - - - - Returns true if the implementation of a value must always be inlined - - - - - A global generator of stable compiler generated names - - - - - A global generator of compiler generated names - - - - - Unique name generator for stamps attached to to val_specs, tycon_specs etc. - - - - - Metadata on values (names of arguments etc. - - - - - Maps TyconRef to list of T based on stamp keys - - - - - Maps TyconRef to T based on stamp keys - - - - - Maps Typar to T based on stamp keys - - - - - Maps Val's to list of T based on stamp keys - - - - - Mutable data structure mapping Val's to T based on stamp keys - - - - - Maps Val to T, based on stamps - - - - - TypeSchme (generalizedTypars, tauTy) - - generalizedTypars -- the truly generalized type parameters - tauTy -- the body of the generalized type. A 'tau' type is one with its type paramaeters stripped off. - - - - - Determines types that are potentially known to satisfy the 'comparable' constraint and returns - a set of residual types that must also satisfy the constraint - - - - - returns Some(assemblyName) for success - - - - - Try to find the AttributeUsage attribute, looking for the value of the AllowMultiple named parameter - - - - - Try to find a specific attribute on a type definition - - - - - Try to find a specific attribute on a type definition, where the attribute accepts a bool argument. - - - - - Try to find a specific attribute on a type definition, where the attribute accepts a string argument. - - This is used to detect the 'DefaultMemberAttribute' and 'ConditionalAttribute' attributes (on type definitions) - - - - - For "type Class as self", 'self' is fixed up after initialization. To support this, - it is converted behind the scenes to a ref. This function strips off the ref and - returns the underlying type. - - - - - Get the rank of an array type - - - - - Get the element type of an array type - - - - - &localv - - - - - *localv_ptr - - - - - *localv_ptr = e - - - - - localv <- e - - - - - Query SignatureRepackageInfo - - - - - Get the free variables in the right hand side of a binding. - - - - - Get the free variables in an expression. - - - - - Get the free variables in a module definition. - - - - - A unique qualified name for each type definition, used to qualify the names of interface implementation methods - - - - - Return the full text for an item as we want it displayed to the user as a fully qualified entity - - - - - Returns (parentTypars,memberParentTypars,memberMethodTypars,memberToParentInst,tinst) - - - - - Returns (parentTypars,memberParentTypars,memberMethodTypars,memberToParentInst,tinst) - - - - - Returns (parentTypars,memberParentTypars,memberMethodTypars,memberToParentInst,tinst) - - - - - Try to get a TyconRef for a type without erasing type abbreviations - - - - - See through F# exception abbreviations - - - - - set bool to 'true' to allow shortcutting of type parameter equation chains during stripping - - - - - Return the local and an expression to reference it - - - - - Note: try to use exprForValRef or the expression returned from mkLocal instead of this. - - - - - Utilities used in simplifying types for visual presentation - - - - - Derived expression manipulation and construction functions. - - - - - unnamed called out args: return these as part of the return tuple - - - - - unnamed called optional args: pass defaults for these - - - - - unassigned args - - - - - return type - - - - - the method we're attempting to call - - - - - the formal instantiation of the method we're attempting to call - - - - - The types of the actual object arguments, if any - - - - - the instantiation of the method we're attempting to call - - - - - args assigned to specifiy values for attribute fields and properties (these are not necessarily "property sets") - - - - - the property related to the method we're attempting to call, if any - - - - - named setters - - - - - The argument analysis for each set of curried arguments - - - - - Represents the syntactic matching between a caller of a method and the called method. - - The constructor takes all the information about the caller and called side of a method, match up named arguments, property setters etc., - and returns a CalledMeth object for further analysis. - - - - - Named args - - - - - Any unnamed caller arguments assigned to a "param array" argument - - - - - The called "ParamArray" argument, if any - - - - - Any unnamed caller arguments not otherwise assigned - - - - - The called arguments corresponding to "unnamed" arguments - - - - - Represents the resolution of a caller argument as a named-setter argument - - - - - Represents the possibilities for a named-setter argument (a property, field , or a record field setter) - - - - - The argument on the caller side - - - - - The called argument in the method - - - - - The identifier for a named argument, if any - - - - - Represents a match between a caller argument and a called argument, arising from either - a named argument or an unnamed argument. - - - - - Represents the information about an argument in the method being called - - - - - CallerArg(ty, range, isOpt, exprInfo) - - - - - In the following, 'T gets instantiated to: - 1. the expression being supplied for an argument - 2. "unit", when simply checking for the existence of an overload that satisfies - a signature, or when finding the corresponding witness. - Note the parametricity helps ensure that overload resolution doesn't depend on the - expression on the callside (though it is in some circumstances allowed - to depend on some type information inferred syntactically from that - expression, e.g. a lambda expression may be converted to a delegate as - an adhoc conversion. - - The bool indicates if named using a '?' - - - - - The overall information about a method implementation in a class or object expression - - - - - Implements the elaborated form of adhoc conversions from functions to delegates at member callsites - - - - - Build an expression that calls a given method info. - This is called after overload resolution, and also to call other - methods such as 'setters' for properties. - - - - - Adjust the 'this' pointer before making a call - Take the address of a struct, and coerce to an interface/base/constraint type if necessary - - - - - Compute whether we insert a 'coerce' on the 'this' pointer for an object model call - For example, when calling an interface method on a struct, or a method on a constrained - variable type. - - - - - Is this a 'base' call (in the sense of C#) - - - - - Get the proeprties relevant to deterimining if a uniquely-identified-override exists based on the syntactic information - at the member signature prior to type inference. This is used to pre-assign type information if it does - - - - - Get the methods relevant to deterimining if a uniquely-identified-override exists based on the syntactic information - at the member signature prior to type inference. This is used to pre-assign type information if it does - - - - - "Single Feasible Type" inference - Look for the unique supertype of ty2 for which ty2 :> ty1 might feasibly hold - - - - - "Type Completion" inference and a few other checks at the end of the inference scope - - - - - Do AdjustArityOfLambdaBody for a series of - iterated lambdas, producing one method. - The required iterated function arity (List.length topValInfo) must be identical - to the iterated function arity of the input lambda (List.length vsl) - - - - - Break apart lambdas. Needs ChooseTyparSolutionsForFreeChoiceTypars because it's used in - PostTypecheckSemanticChecks before we've eliminated these nodes. - - - - - Choose solutions for Expr.TyChoose type "hidden" variables introduced - by letrec nodes. Also used by the pattern match compiler to choose type - variables when compiling patterns at generalized bindings. - e.g. let ([],x) = ([],[]) - Here x gets a generalized type "list<'T>". - - - - - The feasible coercion relation. Part of the language spec. - - - - - The feasible equivalence relation. Part of the language spec. - - - - - Erasure over System.Type. - - This is a reimplementation of the logic of provided-type erasure, working entirely over (tainted, provided) System.Type - values. This is used when preparing ParameterInfo objects to give to the provider in GetInvokerExpression. - These ParameterInfo have erased ParameterType - giving the provider an erased type makes it considerably easier - to implement a correct GetInvokerExpression. - - Ideally we would implement this operation by converting to an F# TType using ImportSystemType, and then erasing, and then converting - back to System.Type. However, there is currently no way to get from an arbitrary F# TType (even the TType for - System.Object) to a System.Type to give to the type provider. - - - - - Check that a type definition implements all its required interfaces after processing all declarations - within a file. - - - - - Get the slots of a type that can or must be implemented. This depends - partly on the full set of interface types that are being implemented - simultaneously, e.g. - { new C with interface I2 = ... interface I3 = ... } - allReqdTys = {C;I2;I3} - - allReqdTys can include one class/record/union type. - - - - - Check all implementations implement some dispatch slot. - - - - - Check all dispatch slots are implemented by some override. - - - - - Check if a dispatch slot is already implemented - - - - - Check if an override implements a dispatch slot - - - - - Check if an override exactly matches the requirements for a dispatch slot - - - - - Compose two instantiations of type parameters. - - - - - Compute the reverse of a type parameter renaming. - - - - - Check if an override is a partial match for the requirements for a dispatch slot - - - - - Check if the kinds of type parameters match between a dispatch slot and an override. - - - - - Check if an override matches a dispatch slot by name - - - - - Check if an override matches a dispatch slot by name - - - - - Get the override information for an object expression method being used to implement dispatch slots - - - - - Get the override info for a value being used to implement a dispatch slot. - - - - - Get the override info for an existing (inherited) method being used to implement a dispatch slot. - - - - - Format the signature of a MethInfo as a string as part of an error message - - - - - Format the signature of an override as a string as part of an error message - - - - - Print the signature of a MethInfo to a buffer as part of an error message - - - - - Print the signature of an override to a buffer as part of an error message - - - - - Check the names add up between a signature and its implementation. We check this first. - - - - - Containment relation for module types - - - - - Primary relations on types and signatures, with the exception of - constraint solving and method overload resolution. - - - - - assuming this assembly is already in the debuggee process, then Viz.Visualiable.Make(foo) in the Watch window will make a visualizer for foo - - - - - This type exists to have a concrete 'Target' type for a DebuggerVisualizerAttribute. - Ideally it would be out in its own assembly, but then the compiler would need to take a dependency on that assembly, so instead we - pragmatically just shove this into the compiler assembly itself. - - - - diff --git a/source/Calamari.Scripting/FSharp/FSharp.Core.dll b/source/Calamari.Scripting/FSharp/FSharp.Core.dll deleted file mode 100644 index ae969cedb..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Core.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Core.optdata b/source/Calamari.Scripting/FSharp/FSharp.Core.optdata deleted file mode 100644 index 61f480299..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Core.optdata and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Core.sigdata b/source/Calamari.Scripting/FSharp/FSharp.Core.sigdata deleted file mode 100644 index 33f7be934..000000000 Binary files a/source/Calamari.Scripting/FSharp/FSharp.Core.sigdata and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/FSharp.Core.xml b/source/Calamari.Scripting/FSharp/FSharp.Core.xml deleted file mode 100644 index 2482a2574..000000000 --- a/source/Calamari.Scripting/FSharp/FSharp.Core.xml +++ /dev/null @@ -1,11118 +0,0 @@ - - -FSharp.Core - - - Gets the tail of the list, which is a list containing all the elements of the list, excluding the first element - - - Gets the number of items contained in the list - - - Gets the element of the list at the given position. - Lists are represented as linked lists so this is an O(n) operation. - The index. - The value at the given index. - - - Gets a value indicating if the list contains no entries - - - Gets the first element of the list - - - Returns an empty list of a particular type - - - Gets a slice of the list, the elements of the list from the given start index to the given end index. - The start index. - The end index. - The sub list specified by the input indices. - - - Returns a list with head as its first element and tail as its subsequent elements - A new head value for the list. - The existing list. - The list with head appended to the front of tail. - - - The type of immutable singly-linked lists. - - Use the constructors [] and :: (infix) to create values of this type, or - the notation [1;2;3]. Use the values in the List module to manipulate - values of this type, or pattern match against the values directly. - - - Lookup an element in the map. Raise KeyNotFoundException if no binding - exists in the map. - The input key. - Thrown when the key is not found. - The value mapped to the key. - - - Returns true if there are no bindings in the map. - - - The number of bindings in the map. - - - Lookup an element in the map, returning a Some value if the element is in the domain - of the map and None if not. - The input key. - The mapped value, or None if the key is not in the map. - - - Removes an element from the domain of the map. No exception is raised if the element is not present. - The input key. - The resulting map. - - - Tests if an element is in the domain of the map. - The input key. - True if the map contains the given key. - - - Returns a new map with the binding added to the given map. - The input key. - The resulting map. - - - Builds a map that contains the bindings of the given IEnumerable. - The input sequence of key/value pairs. - The resulting map. - - - Immutable maps. Keys are ordered by F# generic comparison. - - Maps based on generic comparison are efficient for small keys. They are not a suitable choice if keys are recursive data structures - or if keys require bespoke comparison semantics. - - All members of this class are thread-safe and may be used concurrently from multiple threads. - - - An abbreviation for the CLI type System.Collections.Generic.List<_> - - - Returns a new set with the elements of the second set removed from the first. - The first input set. - The second input set. - A set containing elements of the first set that are not contained in the second set. - - - Compute the union of the two sets. - The first input set. - The second input set. - The union of the two input sets. - - - Returns the lowest element in the set according to the ordering being used for the set. - - - Returns the highest element in the set according to the ordering being used for the set. - - - A useful shortcut for Set.isEmpty. See the Set module for further operations on sets. - - - The number of elements in the set - - - A useful shortcut for Set.remove. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - The value to remove from the set. - The result set. - - - Evaluates to "true" if all elements of the second set are in the first. - The set to test against. - True if this set is a superset of otherSet. - - - Evaluates to "true" if all elements of the first set are in the second. - The set to test against. - True if this set is a subset of otherSet. - - - Evaluates to "true" if all elements of the second set are in the first, and at least - one element of the first is not in the second. - The set to test against. - True if this set is a proper superset of otherSet. - - - Evaluates to "true" if all elements of the first set are in the second, and at least - one element of the second is not in the first. - The set to test against. - True if this set is a proper subset of otherSet. - - - A useful shortcut for Set.contains. See the Set module for further operations on sets. - The value to check. - True if the set contains value. - - - A useful shortcut for Set.add. Note this operation produces a new set - and does not mutate the original set. The new set will share many storage - nodes with the original. See the Set module for further operations on sets. - The value to add to the set. - The result set. - - - Create a set containing elements drawn from the given sequence. - The input sequence. - The result set. - - - Immutable sets based on binary trees, where comparison is the - F# structural comparison function, potentially using implementations - of the IComparable interface on key values. - - See the Set module for further operations on sets. - - All members of this class are thread-safe and may be used concurrently from multiple threads. - - - An abbreviation for the type of immutable singly-linked lists. - - Use the constructors [] and :: (infix) to create values of this type, or - the notation [1;2;3]. Use the values in the List module to manipulate - values of this type, or pattern match against the values directly. - - - An abbreviation for the CLI type System.Collections.Generic.IEnumerable<_> - - - Fetches an element from a 2D array. You can also use the syntax array.[index1,index2]. - - The input array. - The index along the first dimension. - The index along the second dimension. - - The value of the array at the given index. - Thrown when the indices are negative or exceed the bounds of the array. - - - Sets the value of an element in an array. You can also use the syntax array.[index1,index2] <- value. - - The input array. - The index along the first dimension. - The index along the second dimension. - The value to set in the array. - Thrown when the indices are negative or exceed the bounds of the array. - - - Builds a new array whose elements are the same as the input array but - where a non-zero-based input array generates a corresponding zero-based - output array. - - The input array. - - The zero-based output array. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer indices passed to the - function indicates the element being transformed. - - For non-zero-based arrays the basing on an input array will be propagated to the output - array. - - A function that is applied to transform each element of the array. The two integers - provide the index of the element. - The input array. - - An array whose elements have been transformed by the given mapping. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - - A function that is applied to transform each item of the input array. - The input array. - - An array whose elements have been transformed by the given mapping. - - - Returns the length of an array in the second dimension. - - The input array. - - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension. - - The input array. - - The length of the array in the first dimension. - - - Applies the given function to each element of the array. The integer indices passed to the - function indicates the index of element. - - A function to apply to each element of the array with the indices available as an argument. - The input array. - - - Applies the given function to each element of the array. - - A function to apply to each element of the array. - The input array. - - - Creates a based array where the entries are initially Unchecked.defaultof<'T>. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates a based array whose elements are all initially the given value. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - The value to populate the new array. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates a based array given the dimensions and a generator function to compute the elements. - - The base for the first dimension of the array. - The base for the second dimension of the array. - The length of the first dimension of the array. - The length of the second dimension of the array. - A function to produce elements of the array given the two indices. - - The created array. - Thrown when base1, base2, length1, or length2 is negative. - - - Creates an array where the entries are initially Unchecked.defaultof<'T>. - - The length of the first dimension of the array. - The length of the second dimension of the array. - - The created array. - Thrown when length1 or length2 is negative. - - - Creates an array whose elements are all initially the given value. - - The length of the first dimension of the array. - The length of the second dimension of the array. - The value to populate the new array. - - The created array. - Thrown when length1 or length2 is negative. - - - Creates an array given the dimensions and a generator function to compute the elements. - - The length of the first dimension of the array. - The length of the second dimension of the array. - A function to produce elements of the array given the two indices. - - The generated array. - Thrown when either of the lengths is negative. - - - Reads a range of elements from the first array and write them into the second. - - The source array. - The first-dimension index to begin copying from in the source array. - The second-dimension index to begin copying from in the source array. - The target array. - The first-dimension index to begin copying into in the target array. - The second-dimension index to begin copying into in the target array. - The number of elements to copy across the first dimension of the arrays. - The number of elements to copy across the second dimension of the arrays. - Thrown when any of the indices are negative or if either of - the counts are larger than the dimensions of the array allow. - - - Builds a new array whose elements are the same as the input array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - - The input array. - - A copy of the input array. - - - Fetches the base-index for the second dimension of the array. - - The input array. - - The base-index of the second dimension of the array. - - - Fetches the base-index for the first dimension of the array. - - The input array. - - The base-index of the first dimension of the array. - - - Basic operations on 2-dimensional arrays. - - F# and CLI multi-dimensional arrays are typically zero-based. - However, CLI multi-dimensional arrays used in conjunction with external - libraries (e.g. libraries associated with Visual Basic) be - non-zero based, using a potentially different base for each dimension. - The operations in this module will accept such arrays, and - the basing on an input array will be propagated to a matching output - array on the Array2D.map and Array2D.mapi operations. - Non-zero-based arrays can also be created using Array2D.zeroCreateBased, - Array2D.createBased and Array2D.initBased. - - - Creates an array where the entries are initially the "default" value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The created array. - - - Sets the value of an element in an array. You can also - use the syntax 'array.[index1,index2,index3] <- value'. - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The value to set at the given index. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer indices passed to the - function indicates the element being transformed. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - The function to transform the elements at each index in the array. - The input array. - The array created from the transformed elements. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - - For non-zero-based arrays the basing on an input array will be propogated to the output - array. - The function to transform each element of the array. - The input array. - The array created from the transformed elements. - - - Returns the length of an array in the third dimension. - The input array. - The length of the array in the third dimension. - - - Returns the length of an array in the second dimension. - The input array. - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension - The input array. - The length of the array in the first dimension. - - - Applies the given function to each element of the array. The integer indicies passed to the - function indicates the index of element. - The function to apply to each element of the array. - The input array. - - - Applies the given function to each element of the array. - The function to apply to each element of the array. - The input array. - - - Fetches an element from a 3D array. You can also use the syntax 'array.[index1,index2,index3]' - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The value at the given index. - - - Creates an array given the dimensions and a generator function to compute the elements. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The function to create an initial value at each index into the array. - The created array. - - - Creates an array whose elements are all initially the given value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The value of the array elements. - The created array. - - - Basic operations on rank 3 arrays. - - - Sets the value of an element in an array. You can also - use the syntax 'array.[index1,index2,index3,index4] <- value'. - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The index along the fourth dimension. - The value to set. - - - Fetches an element from a 4D array. You can also use the syntax 'array.[index1,index2,index3,index4]' - The input array. - The index along the first dimension. - The index along the second dimension. - The index along the third dimension. - The index along the fourth dimension. - The value at the given index. - - - Creates an array where the entries are initially the "default" value. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The created array. - - - Returns the length of an array in the fourth dimension. - The input array. - The length of the array in the fourth dimension. - - - Returns the length of an array in the third dimension. - The input array. - The length of the array in the third dimension. - - - Returns the length of an array in the second dimension. - The input array. - The length of the array in the second dimension. - - - Returns the length of an array in the first dimension - The input array. - The length of the array in the first dimension. - - - Creates an array given the dimensions and a generator function to compute the elements. - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The function to create an initial value at each index in the array. - The created array. - - - Creates an array whose elements are all initially the given value - The length of the first dimension. - The length of the second dimension. - The length of the third dimension. - The length of the fourth dimension. - The initial value for each element of the array. - The created array. - - - Basic operations on rank 4 arrays. - - - Combines three arrays into an array of pairs. The three arrays must have equal lengths, otherwise an ArgumentException is - raised. - The first input array. - The second input array. - The third input array. - Thrown when any of the input arrays are null. - Thrown when the input arrays differ in length. - The array of tupled elements. - - - Combines the two arrays into an array of pairs. The two arrays must have equal lengths, otherwise an ArgumentException is - raised. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - The array of tupled elements. - - - Returns an array of sliding windows containing elements drawn from the input - array. Each window is returned as a fresh array. - The number of elements in each window. - The input array. - The result array. - Thrown when the input array is null. - Thrown when windowSize is not positive. - - - Returns a new array containing only the elements of the array - for which the given predicate returns "true". - The function to test the input elements. - The input array. - An array containing the elements for which the given predicate returns true. - - Thrown when the input array is null. - - - Splits an array of triples into three arrays. - The input array. - The tuple of three arrays. - Thrown when the input array is null. - - - Splits an array of pairs into two arrays. - The input array. - The two arrays. - Thrown when the input array is null. - - - Returns an array that contains the elements generated by the given computation. - The given initial state argument is passed to the element generator. - A function that takes in the current state and returns an option tuple of the next - element of the array and the next state value. - The initial state value. - The result array. - - - Returns the index of the last element in the array - that satisfies the given predicate. - The function to test the input elements. - The input array. - Thrown when the input array is null. - The index of the last element that satisfies the predicate, or None. - - - Tries to find the nth element in the array. - Returns None if index is negative or the input array does not contain enough elements. - The index of element to retrieve. - The input array. - The nth element of the array or None. - Thrown when the input array is null. - - - Returns the index of the first element in the array - that satisfies the given predicate. - The function to test the input elements. - The input array. - Thrown when the input array is null. - The index of the first element that satisfies the predicate, or None. - - - Returns the last element for which the given function returns true. - Return None if no such element exists. - The function to test the input elements. - The input array. - Thrown when the input array is null. - The last element that satisfies the predicate, or None. - - - Returns the first element for which the given function returns true. - Return None if no such element exists. - The function to test the input elements. - The input array. - The first element that satisfies the predicate, or None. - Thrown when the input array is null. - - - Returns at most N elements in a new array. - The maximum number of items to return. - The input array. - The result array. - Thrown when the input array is null. - - - Views the given array as a sequence. - The input array. - The sequence of array elements. - Thrown when the input array is null. - - - Builds a list from the given array. - The input array. - The list of array elements. - Thrown when the input array is null. - - - Returns a new array containing the elements of the original except the first element. - - The input array. - Thrown when the array is empty. - Thrown when the input array is null. - A new array containing the elements of the original except the first element. - - - Returns an array that contains all elements of the original array while the - given predicate returns true, and then returns no further elements. - - A function that evaluates to false when no more items should be returned. - The input array. - - The result array. - - Thrown when the input array is null. - - - Returns the first N elements of the array. - Throws InvalidOperationException - if the count exceeds the number of elements in the array. Array.truncate - returns as many items as the array contains instead of throwing an exception. - - The number of items to take. - The input array. - - The result array. - - Thrown when the input array is null. - Thrown when the input array is empty. - Thrown when count exceeds the number of elements - in the list. - - - Returns the sum of the results generated by applying the function to each element of the array. - The function to transform the array elements into the type to be summed. - The input array. - The resulting sum. - Thrown when the input array is null. - - - Returns the sum of the elements in the array. - The input array. - The resulting sum. - Thrown when the input array is null. - - - Sorts the elements of an array, in descending order, using the given projection for the keys and returning a new array. - Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to transform array elements into the type that is compared. - The input array. - The sorted array. - - - Sorts the elements of an array, in descending order, returning a new array. Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The input array. - The sorted array. - - - Splits an array into two arrays, at the given index. - The index at which the array is split. - The input array. - The two split arrays. - - Thrown when the input array is null. - Thrown when split index exceeds the number of elements - in the array. - - - Sorts the elements of an array by mutating the array in-place, using the given comparison function. - Elements are compared using Operators.compare. - The input array. - Thrown when the input array is null. - - - Sorts the elements of an array by mutating the array in-place, using the given comparison function as the order. - The function to compare pairs of array elements. - The input array. - Thrown when the input array is null. - - - Sorts the elements of an array by mutating the array in-place, using the given projection for the keys. - Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to transform array elements into the type that is compared. - The input array. - Thrown when the input array is null. - - - Sorts the elements of an array, using the given comparison function as the order, returning a new array. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to compare pairs of array elements. - The input array. - The sorted array. - Thrown when the input array is null. - - - Sorts the elements of an array, using the given projection for the keys and returning a new array. - Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The function to transform array elements into the type that is compared. - The input array. - The sorted array. - Thrown when the input array is null. - - - Sorts the elements of an array, returning a new array. Elements are compared using Operators.compare. - - This is not a stable sort, i.e. the original order of equal elements is not necessarily preserved. - For a stable sort, consider using Seq.sort. - The input array. - The sorted array. - Thrown when the input array is null. - - - Builds a new array that contains the given subrange specified by - starting index and length. - The input array. - The index of the first element of the sub array. - The length of the sub array. - The created sub array. - Thrown when the input array is null. - Thrown when either startIndex or count is negative, - or when there aren't enough elements in the input array. - - - Bypasses elements in an array while the given predicate returns true, and then returns - the remaining elements in a new array. - A function that evaluates an element of the array to a boolean value. - The input array. - The created sub array. - Thrown when the input array is null. - - - Builds a new array that contains the elements of the given array, excluding the first N elements. - The number of elements to skip. - The input array. - A copy of the input array, after removing the first N elements. - Thrown when the input array is null. - Thrown when count is negative or exceeds the number of - elements in the array. - - - Sets an element of an array. - The input array. - The input index. - The input value. - Thrown when the input array is null. - Thrown when the index is negative or the input array does not contain enough elements. - - - Returns an array that contains one item only. - - The input item. - - The result array of one item. - - - Like foldBack, but return both the intermediary and final results. - The function to update the state given the input elements. - The input array. - The initial state. - The array of state values. - Thrown when the input array is null. - - - Like fold, but return the intermediary and final results. - The function to update the state given the input elements. - The initial state. - The input array. - The array of state values. - Thrown when the input array is null. - - - Returns a new array with the elements in reverse order. - The input array. - The reversed array. - Thrown when the input array is null. - - - Creates an array by replicating the given initial value. - The number of elements to replicate. - The value to replicate - The generated array. - Thrown when count is negative. - - - Applies a function to each element of the array, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f i0 (...(f iN-1 iN)). - A function that takes in the next-to-last element of the list and the - current accumulated result to produce the next accumulated result. - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The final result of the reductions. - - - Applies a function to each element of the array, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f (... (f i0 i1)...) iN. - Raises ArgumentException if the array has size zero. - The function to reduce a pair of elements to a single element. - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The final result of the redcutions. - - - Returns an array with all elements permuted according to the - specified permutation. - The function that maps input indices to output indices. - The input array. - The output array. - Thrown when the input array is null. - Thrown when indexMap does not produce a valid permutation. - - - Splits the collection into two collections, containing the - elements for which the given predicate returns "true" and "false" - respectively. - The function to test the input elements. - The input array. - A pair of arrays. The first containing the elements the predicate evaluated to true, - and the second containing those evaluated to false. - Thrown when the input array is null. - - - Returns an array of each element in the input array and its predecessor, with the - exception of the first element which is only returned as the predecessor of the second element. - - The input array. - - The result array. - - Thrown when the input sequence is null. - - - Builds a new array from the given enumerable object. - The input sequence. - The array of elements from the sequence. - Thrown when the input sequence is null. - - - Builds an array from the given list. - The input list. - The array of elements from the list. - - - Returns the lowest of all elements of the array, compared via Operators.min on the function result. - - Throws ArgumentException for empty arrays. - The function to transform the elements into a type supporting comparison. - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The minimum element. - - - Returns the lowest of all elements of the array, compared via Operators.min. - - Throws ArgumentException for empty arrays - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The minimum element. - - - Returns the greatest of all elements of the array, compared via Operators.max on the function result. - - Throws ArgumentException for empty arrays. - The function to transform the elements into a type supporting comparison. - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The maximum element. - - - Returns the greatest of all elements of the array, compared via Operators.max on the function result. - - Throws ArgumentException for empty arrays. - The input array. - Thrown when the input array is null. - Thrown when the input array is empty. - The maximum element. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer index passed to the - function indicates the index of element being transformed. - The function to transform elements and their indices. - The input array. - The array of transformed elements. - Thrown when the input array is null. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise, also passing the index of - the elements. The two input arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to transform pairs of input elements and their indices. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - The array of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding triples from the three collections. The three input - arrays must have the same length, otherwise an ArgumentException is - raised. - The function to transform the pairs of the input elements. - The first input array. - The second input array. - The third input array. - Thrown when the input arrays differ in length. - Thrown when any of the input arrays is null. - The array of transformed elements. - - - Combines map and foldBack. Builds a new array whose elements are the results of applying the given function - to each of the elements of the input array. The function is also used to accumulate a final value. - The function to transform elements from the input array and accumulate the final value. - The input array. - The initial state. - Thrown when the input array is null. - The array of transformed elements, and the final accumulated value. - - - Combines map and fold. Builds a new array whose elements are the results of applying the given function - to each of the elements of the input array. The function is also used to accumulate a final value. - The function to transform elements from the input array and accumulate the final value. - The initial state. - The input array. - Thrown when the input array is null. - The array of transformed elements, and the final accumulated value. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to transform the pairs of the input elements. - The first input array. - The second input array. - Thrown when the input arrays differ in length. - Thrown when either of the input arrays is null. - The array of transformed elements. - - - Builds a new array whose elements are the results of applying the given function - to each of the elements of the array. - The function to transform elements of the array. - The input array. - The array of transformed elements. - Thrown when the input array is null. - - - Returns the last element of the array. - Return None if no such element exists. - The input array. - The last element of the array or None. - Thrown when the input sequence is null. - - - Returns the length of an array. You can also use property arr.Length. - The input array. - The length of the array. - Thrown when the input array is null. - - - Gets an element from an array. - The input index. - The input array. - The value of the array at the given index. - Thrown when the input array is null. - Thrown when the index is negative or the input array does not contain enough elements. - - - Returns the last element of the array. - The input array. - The last element of the array. - Thrown when the input array is null. - Thrown when the input does not have any elements. - - - Applies the given function to pair of elements drawn from matching indices in two arrays, - also passing the index of the elements. The two arrays must have the same lengths, - otherwise an ArgumentException is raised. - The function to apply to each index and pair of elements. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - - - Applies the given function to each element of the array. The integer passed to the - function indicates the index of element. - The function to apply to each index and element. - The input array. - Thrown when the input array is null. - - - Applies the given function to pair of elements drawn from matching indices in two arrays. The - two arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to apply. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - - - Applies the given function to each element of the array. - The function to apply. - The input array. - Thrown when the input array is null. - - - Returns true if the given array is empty, otherwise false. - The input array. - True if the array is empty. - Thrown when the input array is null. - - - Creates an array where the entries are initially the default value Unchecked.defaultof<'T>. - The length of the array to create. - The created array. - Thrown when count is negative. - - - Creates an array given the dimension and a generator function to compute the elements. - The number of elements to initialize. - The function to generate the initial values for each index. - The created array. - Thrown when count is negative. - - - Builds a new array whose elements are the corresponding elements of the input array - paired with the integer index (from 0) of each element. - The input array. - The array of indexed elements. - Thrown when the input array is null. - - - Applies a key-generating function to each element of an array and yields an array of - unique keys. Each unique key contains an array of all elements that match - to this key. - - A function that transforms an element of the array into a comparable key. - The input array. - - The result array. - - Thrown when the input array is null. - - - Returns the first element of the array. - - The input array. - - The first element of the array. - - Thrown when the input array is null. - Thrown when the input array is empty. - - - Gets an element from an array. - The input array. - The input index. - The value of the array at the given index. - Thrown when the input array is null. - Thrown when the index is negative or the input array does not contain enough elements. - - - Apply a function to pairs of elements drawn from the two collections, right-to-left, - threading an accumulator argument through the computation. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to update the state given the input elements. - The first input array. - The second input array. - The initial state. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - The final state. - - - Applies a function to pairs of elements drawn from the two collections, - left-to-right, threading an accumulator argument - through the computation. The two input - arrays must have the same lengths, otherwise an ArgumentException is - raised. - The function to update the state given the input elements. - The initial state. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - The final state. - - - Applies a function to each element of the array, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f i0 (...(f iN s)) - The function to update the state given the input elements. - The input array. - The initial state. - The state object after the folding function is applied to each element of the array. - Thrown when the input array is null. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f (... (f s i0)...) iN - The function to update the state given the input elements. - The initial state. - The input array. - The final state. - Thrown when the input array is null. - - - Tests if all corresponding elements of the array satisfy the given predicate pairwise. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns false then the overall result is - false and no further elements are tested. Otherwise, if one collection is longer - than the other then the ArgumentException exception is raised. - Otherwise, true is returned. - The function to test the input elements. - The first input array. - The second input array. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - True if all of the array elements satisfy the predicate. - - - Tests if all elements of the array satisfy the given predicate. - - The predicate is applied to the elements of the input collection. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - The function to test the input elements. - The input array. - True if all of the array elements satisfy the predicate. - Thrown when the input array is null. - - - Returns the index of the last element in the array - that satisfies the given predicate. Raise KeyNotFoundException if - none of the elements satisfy the predicate. - The function to test the input elements. - The input array. - Thrown if predicate - never returns true. - Thrown when the input array is null. - The index of the last element in the array that satisfies the given predicate. - - - Returns the index of the first element in the array - that satisfies the given predicate. Raise KeyNotFoundException if - none of the elements satisfy the predicate. - The function to test the input elements. - The input array. - Thrown if predicate - never returns true. - Thrown when the input array is null. - The index of the first element in the array that satisfies the given predicate. - - - Returns the last element for which the given function returns 'true'. - Raise KeyNotFoundException if no such element exists. - The function to test the input elements. - The input array. - Thrown if predicate - never returns true. - Thrown when the input array is null. - The last element for which predicate returns true. - - - Returns the first element for which the given function returns 'true'. - Raise KeyNotFoundException if no such element exists. - The function to test the input elements. - The input array. - Thrown when the input array is null. - Thrown if predicate - never returns true. - The first element for which predicate returns true. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". - The function to test the input elements. - The input array. - An array containing the elements for which the given predicate returns true. - Thrown when the input array is null. - - - Tests if any pair of corresponding elements of the arrays satisfies the given predicate. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, if one collections is longer - than the other then the ArgumentException exception is raised. - Otherwise, false is returned. - The function to test the input elements. - The first input array. - The second input array. - True if any result from predicate is true. - Thrown when either of the input arrays is null. - Thrown when the input arrays differ in length. - - - Tests if any element of the array satisfies the given predicate. - - The predicate is applied to the elements of the input array. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - The function to test the input elements. - The input array. - True if any result from predicate is true. - Thrown when the input array is null. - - - Returns a new list with the distinct elements of the input array which do not appear in the itemsToExclude sequence, - using generic hash and equality comparisons to compare values. - - A sequence whose elements that also occur in the input array will cause those elements to be - removed from the result. - An array whose elements that are not also in itemsToExclude will be returned. - - An array that contains the distinct elements of array that do not appear in itemsToExclude. - - Thrown when either itemsToExclude or array is null. - - - Returns the only element of the array. - - The input array. - - The only element of the array. - - Thrown when the input array is null. - Thrown when the input does not have precisely one element. - - - Returns an empty array of the given type. - The empty array. - - - Splits the input array into at most count chunks. - The maximum number of chunks. - The input array. - The array split into chunks. - Thrown when the input array is null. - Thrown when count is not positive. - - - Returns an array that contains no duplicate entries according to the - generic hash and equality comparisons on the keys returned by the given key-generating function. - If an element occurs multiple times in the array then the later occurrences are discarded. - - A function transforming the array items into comparable keys. - The input array. - - The result array. - - Thrown when the input array is null. - - - Returns an array that contains no duplicate entries according to generic hash and - equality comparisons on the entries. - If an element occurs multiple times in the array then the later occurrences are discarded. - - The input array. - - The result array. - - Thrown when the input array is null. - - - Divides the input array into chunks of size at most chunkSize. - The maximum size of each chunk. - The input array. - The array divided into chunks. - Thrown when the input array is null. - Thrown when chunkSize is not positive. - - - Applies the given function to each element of the array. Returns - the array comprised of the results "x" for each element where - the function returns Some(x) - The function to generate options from the elements. - The input array. - The array of results. - Thrown when the input array is null. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If the function - never returns Some(x) then KeyNotFoundException is raised. - The function to generate options from the elements. - The input array. - Thrown when the input array is null. - Thrown if every result from - chooser is None. - The first result. - - - Fills a range of elements of the array with the given value. - The target array. - The index of the first element to set. - The number of elements to set. - The value to set. - Thrown when the input array is null. - Thrown when either targetIndex or count is negative. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If the function - never returns Some(x) then None is returned. - The function to transform the array elements into options. - The input array. - The first transformed element that is Some(x). - Thrown when the input array is null. - - - Returns the first element of the array, or - None if the array is empty. - The input array. - Thrown when the input array is null. - The first element of the array or None. - - - Creates an array whose elements are all initially the given value. - The length of the array to create. - The value for the elements. - The created array. - Thrown when count is negative. - - - Applies a key-generating function to each element of an array and returns an array yielding unique - keys and their number of occurrences in the original array. - - A function transforming each item of the input array into a key to be - compared against the others. - The input array. - - The result array. - - Thrown when the input array is null. - - - Builds a new array that contains the elements of the given array. - The input array. - A copy of the input array. - Thrown when the input array is null. - - - Tests if the array contains the specified element. - The value to locate in the input array. - The input array. - True if the input array contains the specified element; false otherwise. - Thrown when the input array is null. - - - Builds a new array that contains the elements of each of the given sequence of arrays. - The input sequence of arrays. - The concatenation of the sequence of input arrays. - Thrown when the input sequence is null. - - - Compares two arrays using the given comparison function, element by element. - Returns the first non-zero result from the comparison function. If the end of an array - is reached it returns a -1 if the first array is shorter and a 1 if the second array - is shorter. - - A function that takes an element from each array and returns an int. - If it evaluates to a non-zero value iteration is stopped and that value is returned. - The first input array. - The second input array. - - The first non-zero value from the comparison function. - - Thrown when either of the input arrays - is null. - - - For each element of the array, applies the given function. Concatenates all the results and return the combined array. - The function to create sub-arrays from the input array elements. - The input array. - The concatenation of the sub-arrays. - Thrown when the input array is null. - - - Reads a range of elements from the first array and write them into the second. - The source array. - The starting index of the source array. - The target array. - The starting index of the target array. - The number of elements to copy. - Thrown when either of the input arrays is null. - Thrown when any of sourceIndex, targetIndex or count are negative, - or when there aren't enough elements in source or target. - - - Returns the average of the elements generated by applying the function to each element of the array. - The function to transform the array elements before averaging. - The input array. - Thrown when array is empty. - The computed average. - Thrown when the input array is null. - - - Returns the average of the elements in the array. - The input array. - Thrown when array is empty. - The average of the elements in the array. - Thrown when the input array is null. - - - Builds a new array that contains the elements of the first array followed by the elements of the second array. - The first input array. - The second input array. - The resulting array. - Thrown when either of the input arrays is null. - - - Split the collection into two collections, containing the - elements for which the given predicate returns "true" and "false" - respectively - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to indicies is not specified. - The function to test the input elements. - The input array. - 'T[] * 'T[] - Thrown when the input array is null. - - - Create an array given the dimension and a generator function to compute the elements. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to indicies is not specified. - - - 'T[] - - - Apply the given function to each element of the array. The integer passed to the - function indicates the index of element. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - Thrown when the input array is null. - - - Apply the given function to each element of the array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - Thrown when the input array is null. - - - Build a new array whose elements are the results of applying the given function - to each of the elements of the array. The integer index passed to the - function indicates the index of element being transformed. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - Thrown when the input array is null. - - - Build a new array whose elements are the results of applying the given function - to each of the elements of the array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - Thrown when the input array is null. - - - For each element of the array, apply the given function. Concatenate all the results and return the combined array. - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - - The input array. - 'U[] - Thrown when the input array is null. - - - Apply the given function to each element of the array. Return - the array comprised of the results "x" for each element where - the function returns Some(x). - - Performs the operation in parallel using System.Threading.Parallel.For. - The order in which the given function is applied to elements of the input array is not specified. - The function to generate options from the elements. - The input array. - 'U[] - Thrown when the input array is null. - - - Provides parallel operations on arrays - - - Basic operations on arrays. - - - Compare using the given comparer function. - A function to compare two values. - An object implementing IComparer using the supplied comparer. - - - Non-structural comparison. Compare using NonStructuralComparison.compare. - - - Structural comparison. Compare using Operators.compare. - - - Common notions of comparison identity used with sorted data structures. - - - Hash using the given hashing and equality functions. - A function to generate a hash code from a value. - A function to test equality of two values. - An object implementing IEqualityComparer using the supplied functions. - - - Physical hashing (hash on reference identity of objects, and the contents of value types). - Hash using LanguagePrimitives.PhysicalEquality and LanguagePrimitives.PhysicalHash, - That is, for value types use GetHashCode and Object.Equals (if no other optimization available), - and for reference types use System.Runtime.CompilerServices.RuntimeHelpers.GetHashCode and - reference equality. - - - Non-structural hashing. Equality using NonStructuralComparison.(=) and NonStructuralComparison.hash. - - - Structural hashing. Hash using Operators.(=) and Operators.hash. - - - Common notions of value identity used with hash tables. - - - Combines the three lists into a list of triples. The lists must have equal lengths. - The first input list. - The second input list. - The third input list. - A single list containing triples of matching elements from the input lists. - - - Combines the two lists into a list of pairs. The two lists must have equal lengths. - The first input list. - The second input list. - A single list containing pairs of matching elements from the input lists. - - - Returns a list of sliding windows containing elements drawn from the input - list. Each window is returned as a fresh list. - The number of elements in each window. - The input list. - The result list. - Thrown when windowSize is not positive. - - - Returns a new list containing only the elements of the list - for which the given predicate returns "true" - The function to test the input elements. - The input list. - A list containing only the elements that satisfy the predicate. - - - Splits a list of triples into three lists. - The input list. - Three lists of split elements. - - - Splits a list of pairs into two lists. - The input list. - Two lists of split elements. - - - Returns a list that contains the elements generated by the given computation. - The given initial state argument is passed to the element generator. - A function that takes in the current state and returns an option tuple of the next - element of the list and the next state value. - The initial state value. - The result list. - - - Returns the index of the last element in the list - that satisfies the given predicate. - Return None if no such element exists. - The function to test the input elements. - The input list. - The index of the last element for which the predicate returns true, or None if - every element evaluates to false. - - - Tries to find the nth element in the list. - Returns None if index is negative or the list does not contain enough elements. - The index to retrieve. - The input list. - The value at the given index or None. - - - Returns the index of the first element in the list - that satisfies the given predicate. - Return None if no such element exists. - The function to test the input elements. - The input list. - The index of the first element for which the predicate returns true, or None if - every element evaluates to false. - - - Returns the last element for which the given function returns true.. - Return None if no such element exists. - The function to test the input elements. - The input list. - The last element for which the predicate returns true, or None if - every element evaluates to false. - - - Returns the first element for which the given function returns true.. - Return None if no such element exists. - The function to test the input elements. - The input list. - The first element for which the predicate returns true, or None if - every element evaluates to false. - - - Applies the given function to successive elements, returning Some(x) the first - result where function returns Some(x) for some x. If no such element - exists then return None. - The function to generate options from the elements. - The input list. - The first resulting value or None. - - - Returns at most N elements in a new list. - The maximum number of items to return. - The input list. - The result list. - - - Returns the first element of the list, or - None if the list is empty. - The input list. - The first element of the list or None. - - - Views the given list as a sequence. - The input list. - The sequence of elements in the list. - - - Builds an array from the given list. - The input list. - The array containing the elements of the list. - - - Returns a list that contains all elements of the original list while the - given predicate returns true, and then returns no further elements. - - A function that evaluates to false when no more items should be returned. - The input list. - - The result list. - - - Returns the first N elements of the list. - Throws InvalidOperationException - if the count exceeds the number of elements in the list. List.truncate - returns as many items as the list contains instead of throwing an exception. - - The number of items to take. - The input list. - - The result list. - - Thrown when the input list is empty. - Thrown when count exceeds the number of elements - in the list. - - - Returns the list after removing the first element. - - The input list. - Thrown when the list is empty. - The list after removing the first element. - - - Returns the sum of the results generated by applying the function to each element of the list. - The function to transform the list elements into the type to be summed. - The input list. - The resulting sum. - - - Returns the sum of the elements in the list. - The input list. - The resulting sum. - - - Sorts the given list in descending order using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The input list. - The sorted list. - - - Sorts the given list in descending order using keys given by the given projection. Keys are compared using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The function to transform the list elements into the type to be compared. - The input list. - The sorted list. - - - Splits a list into two lists, at the given index. - The index at which the list is split. - The input list. - The two split lists. - - Thrown when split index exceeds the number of elements - in the list. - - - Sorts the given list using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The input list. - The sorted list. - - - Sorts the given list using keys given by the given projection. Keys are compared using Operators.compare. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The function to transform the list elements into the type to be compared. - The input list. - The sorted list. - - - Sorts the given list using the given comparison function. - - This is a stable sort, i.e. the original order of equal elements is preserved. - The function to compare the list elements. - The input list. - The sorted list. - - - Bypasses elements in a list while the given predicate returns true, and then returns - the remaining elements of the list. - A function that evaluates an element of the list to a boolean value. - The input list. - The result list. - - - Returns the list after removing the first N elements. - The number of elements to skip. - The input list. - The list after removing the first N elements. - Thrown when count is negative or exceeds the number of - elements in the list. - - - Returns a list that contains one item only. - - The input item. - - The result list of one item. - - - Like foldBack, but returns both the intermediary and final results - The function to update the state given the input elements. - The input list. - The initial state. - The list of states. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. Take the second argument, and apply the function to it - and the first element of the list. Then feed this result into the function along - with the second element and so on. Returns the list of intermediate results and the final result. - The function to update the state given the input elements. - The initial state. - The input list. - The list of states. - - - Returns a new list with the elements in reverse order. - The input list. - The reversed list. - - - Creates a list by replicating the given initial value. - The number of elements to replicate. - The value to replicate - The generated list. - - - Applies a function to each element of the collection, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then computes - f i0 (...(f iN-1 iN)). - A function that takes in the next-to-last element of the list and the - current accumulated result to produce the next accumulated result. - The input list. - Thrown when the list is empty. - The final result of the reductions. - - - Apply a function to each element of the collection, threading an accumulator argument - through the computation. Apply the function to the first two elements of the list. - Then feed this result into the function along with the third element and so on. - Return the final result. If the input function is f and the elements are i0...iN then computes - f (... (f i0 i1) i2 ...) iN. - - Raises System.ArgumentException if list is empty - The function to reduce two list elements to a single element. - The input list. - Thrown when the list is empty. - The final reduced value. - - - Returns a list with all elements permuted according to the - specified permutation. - The function to map input indices to output indices. - The input list. - The permuted list. - Thrown when indexMap does not produce a valid permutation. - - - Applies the given function to successive elements, returning the first - result where function returns Some(x) for some x. If no such - element exists then raise System.Collections.Generic.KeyNotFoundException - The function to generate options from the elements. - The input list. - Thrown when the list is empty. - The first resulting value. - - - Splits the collection into two collections, containing the - elements for which the given predicate returns true and false - respectively. Element order is preserved in both of the created lists. - The function to test the input elements. - The input list. - A list containing the elements for which the predicate evaluated to false and a list - containing the elements for which the predicate evaluated to true. - - - Returns a list of each element in the input list and its predecessor, with the - exception of the first element which is only returned as the predecessor of the second element. - - The input list. - - The result list. - - - Builds a new list from the given enumerable object. - The input sequence. - The list of elements from the sequence. - - - Builds a list from the given array. - The input array. - The list of elements from the array. - - - Indexes into the list. The first element has index 0. - The input list. - The index to retrieve. - The value at the given index. - Thrown when the index is negative or the input list does not contain enough elements. - - - Returns the lowest of all elements of the list, compared via Operators.min on the function result - - Raises System.ArgumentException if list is empty. - The function to transform list elements into the type to be compared. - The input list. - Thrown when the list is empty. - The minimum value. - - - Returns the lowest of all elements of the list, compared via Operators.min. - - Raises System.ArgumentException if list is empty - The input list. - Thrown when the list is empty. - The minimum value. - - - Returns the greatest of all elements of the list, compared via Operators.max on the function result. - - Raises System.ArgumentException if list is empty. - The function to transform the list elements into the type to be compared. - The input list. - Thrown when the list is empty. - The maximum element. - - - Return the greatest of all elements of the list, compared via Operators.max. - - Raises System.ArgumentException if list is empty - The input list. - Thrown when the list is empty. - The maximum element. - - - Like mapi, but mapping corresponding elements from two lists of equal length. - The function to transform pairs of elements from the two lists and their index. - The first input list. - The second input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The integer index passed to the - function indicates the index (from 0) of element being transformed. - The function to transform elements and their indices. - The input list. - The list of transformed elements. - - - Combines map and foldBack. Builds a new list whose elements are the results of applying the given function - to each of the elements of the input list. The function is also used to accumulate a final value. - The function to transform elements from the input list and accumulate the final value. - The input list. - The initial state. - The list of transformed elements, and the final accumulated value. - - - Combines map and fold. Builds a new list whose elements are the results of applying the given function - to each of the elements of the input list. The function is also used to accumulate a final value. - The function to transform elements from the input list and accumulate the final value. - The initial state. - The input list. - The list of transformed elements, and the final accumulated value. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the three collections simultaneously. - The function to transform triples of elements from the input lists. - The first input list. - The second input list. - The third input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding elements of the two collections pairwise. - The function to transform pairs of elements from the input lists. - The first input list. - The second input list. - The list of transformed elements. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. - The function to transform elements from the input list. - The input list. - The list of transformed elements. - - - Returns the last element of the list. - Return None if no such element exists. - The input list. - The last element of the list or None. - - - Returns the length of the list. - The input list. - The length of the list. - - - Returns the last element of the list. - The input list. - The last element of the list. - Thrown when the input does not have any elements. - - - Applies the given function to two collections simultaneously. The - collections must have identical size. The integer passed to the - function indicates the index of element. - The function to apply to a pair of elements from the input lists along with their index. - The first input list. - The second input list. - - - Applies the given function to each element of the collection. The integer passed to the - function indicates the index of element. - The function to apply to the elements of the list along with their index. - The input list. - - - Applies the given function to two collections simultaneously. The - collections must have identical size. - The function to apply to pairs of elements from the input lists. - The first input list. - The second input list. - - - Applies the given function to each element of the collection. - The function to apply to elements from the input list. - The input list. - - - Indexes into the list. The first element has index 0. - The index to retrieve. - The input list. - The value at the given index. - Thrown when the index is negative or the input list does not contain enough elements. - - - Returns true if the list contains no elements, false otherwise. - The input list. - True if the list is empty. - - - Creates a list by calling the given generator on each index. - The length of the list to generate. - The function to generate an element from an index. - The list of generated elements. - - - Returns a new list whose elements are the corresponding elements - of the input list paired with the index (from 0) of each element. - The input list. - The list of indexed elements. - - - Returns the first element of the list. - - The input list. - Thrown when the list is empty. - The first element of the list. - - - Applies a key-generating function to each element of a list and yields a list of - unique keys. Each unique key contains a list of all elements that match - to this key. - - A function that transforms an element of the list into a comparable key. - The input list. - - The result list. - - - Tests if all corresponding elements of the collection satisfy the given predicate pairwise. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns false then the overall result is - false and no further elements are tested. Otherwise, if one collection is longer - than the other then the System.ArgumentException exception is raised. - Otherwise, true is returned. - The function to test the input elements. - The first input list. - The second input list. - Thrown when the input lists differ in length. - True if all of the pairs of elements satisfy the predicate. - - - Tests if all elements of the collection satisfy the given predicate. - - The predicate is applied to the elements of the input list. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - The function to test the input elements. - The input list. - True if all of the elements satisfy the predicate. - - - Applies a function to corresponding elements of two collections, threading an accumulator argument - through the computation. The collections must have identical sizes. - If the input function is f and the elements are i0...iN and j0...jN - then computes f i0 j0 (...(f iN jN s)). - The function to update the state given the input elements. - The first input list. - The second input list. - The initial state. - The final state value. - - - Applies a function to each element of the collection, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN then - computes f i0 (...(f iN s)). - The function to update the state given the input elements. - The input list. - The initial state. - The state object after the folding function is applied to each element of the list. - - - Applies a function to corresponding elements of two collections, threading an accumulator argument - through the computation. The collections must have identical sizes. - If the input function is f and the elements are i0...iN and j0...jN - then computes f (... (f s i0 j0)...) iN jN. - The function to update the state given the input elements. - The initial state. - The first input list. - The second input list. - The final state value. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. Take the second argument, and apply the function to it - and the first element of the list. Then feed this result into the function along - with the second element and so on. Return the final result. - If the input function is f and the elements are i0...iN then - computes f (... (f s i0) i1 ...) iN. - The function to update the state given the input elements. - The initial state. - The input list. - The final state value. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true" - The function to test the input elements. - The input list. - A list containing only the elements that satisfy the predicate. - - - Returns the index of the last element in the list - that satisfies the given predicate. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for all the - elements of the list. - The index of the last element that satisfies the predicate. - - - Returns the index of the first element in the list - that satisfies the given predicate. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for all the - elements of the list. - The index of the first element that satisfies the predicate. - - - Returns the last element for which the given function returns true. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for - all the elements of the list. - The last element that satisfies the predicate. - - - Returns the first element for which the given function returns true. - Raises KeyNotFoundException if no such element exists. - The function to test the input elements. - The input list. - Thrown if the predicate evaluates to false for - all the elements of the list. - The first element that satisfies the predicate. - - - Tests if any pair of corresponding elements of the lists satisfies the given predicate. - - The predicate is applied to matching elements in the two collections up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, if one collections is longer - than the other then the System.ArgumentException exception is raised. - Otherwise, false is returned. - The function to test the input elements. - The first input list. - The second input list. - Thrown when the input lists differ in length. - True if any pair of elements satisfy the predicate. - - - Tests if any element of the list satisfies the given predicate. - - The predicate is applied to the elements of the input list. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - The function to test the input elements. - The input list. - True if any element satisfies the predicate. - - - Returns the only element of the list. - - The input list. - - The only element of the list. - - Thrown when the input does not have precisely one element. - - - Returns a new list with the distinct elements of the input list which do not appear in the itemsToExclude sequence, - using generic hash and equality comparisons to compare values. - - A sequence whose elements that also occur in the input list will cause those elements to be - removed from the result. - A list whose elements that are not also in itemsToExclude will be returned. - - A list that contains the distinct elements of list that do not appear in itemsToExclude. - - Thrown when itemsToExclude is null. - - - Returns an empty list of the given type. - - - Splits the input list into at most count chunks. - The maximum number of chunks. - The input list. - The list split into chunks. - Thrown when count is not positive. - - - Applies a key-generating function to each element of a list and returns a list yielding unique - keys and their number of occurrences in the original list. - - A function transforming each item of the input list into a key to be - compared against the others. - The input list. - - The result list. - - - Returns a list that contains no duplicate entries according to the - generic hash and equality comparisons on the keys returned by the given key-generating function. - If an element occurs multiple times in the list then the later occurrences are discarded. - - A function transforming the list items into comparable keys. - The input list. - - The result list. - - - Returns a list that contains no duplicate entries according to generic hash and - equality comparisons on the entries. - If an element occurs multiple times in the list then the later occurrences are discarded. - - The input list. - - The result list. - - - Tests if the list contains the specified element. - The value to locate in the input list. - The input list. - True if the input list contains the specified element; false otherwise. - - - Returns a new list that contains the elements of each the lists in order. - The input sequence of lists. - The resulting concatenated list. - - - Compares two lists using the given comparison function, element by element. - Returns the first non-zero result from the comparison function. If the end of a list - is reached it returns a -1 if the first list is shorter and a 1 if the second list - is shorter. - - A function that takes an element from each list and returns an int. - If it evaluates to a non-zero value iteration is stopped and that value is returned. - The first input list. - The second input list. - - The first non-zero value from the comparison function. - - - For each element of the list, applies the given function. Concatenates all the results and return the combined list. - The function to transform each input element into a sublist to be concatenated. - The input list. - The concatenation of the transformed sublists. - - - Divides the input list into chunks of size at most chunkSize. - The maximum size of each chunk. - The input list. - The list divided into chunks. - Thrown when chunkSize is not positive. - - - Applies the given function to each element of the list. Returns - the list comprised of the results x for each element where - the function returns Some(x) - The function to generate options from the elements. - The input list. - The list comprising the values selected from the chooser function. - - - Returns the average of the elements generated by applying the function to each element of the list. - - Raises System.ArgumentException if list is empty. - The function to transform the list elements into the type to be averaged. - The input list. - Thrown when the list is empty. - The resulting average. - - - Returns the average of the elements in the list. - - Raises System.ArgumentException if list is empty. - The input list. - Thrown when the list is empty. - The resulting average. - - - Returns a new list that contains the elements of the first list - followed by elements of the second. - The first input list. - The second input list. - The resulting list. - - - Basic operations on lists. - - - Returns the key of the first mapping in the collection that satisfies the given predicate. - Returns 'None' if no such element exists. - The function to test the input elements. - The input map. - The first key for which the predicate returns true or None if the predicate evaluates to false for each key/value pair. - - - Evaluates the function on each mapping in the collection. Returns the key for the first mapping - where the function returns 'true'. Raise KeyNotFoundException if no such element exists. - The function to test the input elements. - The input map. - Thrown if the key does not exist in the map. - The first key for which the predicate evaluates true. - - - Lookup an element in the map, returning a Some value if the element is in the domain - of the map and None if not. - The input key. - The input map. - The found Some value or None. - - - Removes an element from the domain of the map. No exception is raised if the element is not present. - The input key. - The input map. - The resulting map. - - - Builds two new maps, one containing the bindings for which the given predicate returns 'true', - and the other the remaining bindings. - The function to test the input elements. - The input map. - A pair of maps in which the first contains the elements for which the predicate returned true - and the second containing the elements for which the predicated returned false. - - - Tests if an element is in the domain of the map. - The input key. - The input map. - True if the map contains the key. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The key passed to the - function indicates the key of element being transformed. - The function to transform the key/value pairs. - The input map. - The resulting map of keys and transformed values. - - - Returns true if the given predicate returns true for all of the - bindings in the map. - The function to test the input elements. - The input map. - True if the predicate evaluates to true for all of the bindings in the map. - - - Builds a new map containing only the bindings for which the given predicate returns 'true'. - The function to test the key/value pairs. - The input map. - The filtered map. - - - Returns true if the given predicate returns true for one of the - bindings in the map. - The function to test the input elements. - The input map. - True if the predicate returns true for one of the key/value pairs. - - - Applies the given function to each binding in the dictionary - The function to apply to each key/value pair. - The input map. - - - Folds over the bindings in the map - The function to update the state given the input key/value pairs. - The initial state. - The input map. - The final state value. - - - Folds over the bindings in the map. - The function to update the state given the input key/value pairs. - The input map. - The initial state. - The final state value. - - - Searches the map looking for the first element where the given function returns a Some value - The function to generate options from the key/value pairs. - The input map. - The first result. - - - Searches the map looking for the first element where the given function returns a Some value. - The function to generate options from the key/value pairs. - The input map. - The first result. - - - Lookup an element in the map, raising KeyNotFoundException if no binding - exists in the map. - The input key. - The input map. - Thrown when the key does not exist in the map. - The value mapped to the given key. - - - The empty map. - - - Is the map empty? - The input map. - True if the map is empty. - - - Returns an array of all key-value pairs in the mapping. - The array will be ordered by the keys of the map. - The input map. - The array of key/value pairs. - - - Returns a list of all key-value pairs in the mapping. - The list will be ordered by the keys of the map. - The input map. - The list of key/value pairs. - - - Views the collection as an enumerable sequence of pairs. - The sequence will be ordered by the keys of the map. - The input map. - The sequence of key/value pairs. - - - Returns a new map made from the given bindings. - The input sequence of key/value pairs. - The resulting map. - - - Returns a new map made from the given bindings. - The input array of key/value pairs. - The resulting map. - - - Returns a new map made from the given bindings. - The input list of key/value pairs. - The resulting map. - - - Returns a new map with the binding added to the given map. - The input key. - The input value. - The input map. - The resulting map. - - - Functional programming operators related to the Map<_,_> type. - - - Combines the three sequences into a list of triples. The sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequences are ignored. - - The first input sequence. - The second input sequence. - The third input sequence. - - The result sequence. - - Thrown when any of the input sequences is null. - - - Combines the two sequences into a list of pairs. The two sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other - sequence are ignored. - - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Returns a sequence that yields sliding windows containing elements drawn from the input - sequence. Each window is returned as a fresh array. - The number of elements in each window. - The input sequence. - The result sequence. - Thrown when the input sequence is null. - Thrown when windowSize is not positive. - - - Returns a sequence that contains the elements generated by the given computation. - The given initial state argument is passed to the element generator. - For each IEnumerator elements in the stream are generated on-demand by applying the element - generator, until a None value is returned by the element generator. Each call to the element - generator returns a new residual state. - - The stream will be recomputed each time an IEnumerator is requested and iterated for the Seq. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function that takes in the current state and returns an option tuple of the next - element of the sequence and the next state value. - The initial state value. - - The result sequence. - - - Returns a sequence that when enumerated returns at most N elements. - - The maximum number of items to enumerate. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to successive elements, returning the first - result where the function returns "Some(x)". - - A function that transforms items from the input sequence into options. - The input sequence. - - The chosen element or None. - - Thrown when the input sequence is null. - - - Returns the index of the last element in the sequence - that satisfies the given predicate. Return None if no such element exists. - This function digests the whole initial sequence as soon as it is called. As a - result this function should not be used with large or infinite sequences. - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - The found index or None. - Thrown when the input sequence is null. - - - Tries to find the nth element in the sequence. - Returns None if index is negative or the input sequence does not contain enough elements. - The index of element to retrieve. - The input sequence. - The nth element of the sequence or None. - Thrown when the input sequence is null. - - - Returns the index of the first element in the sequence - that satisfies the given predicate. Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The found index or None. - - Thrown when the input sequence is null. - - - Returns the last element for which the given function returns true. - Return None if no such element exists. - This function digests the whole initial sequence as soon as it is called. As a - result this function should not be used with large or infinite sequences. - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - The found element or None. - Thrown when the input sequence is null. - - - Returns the first element for which the given function returns true. - Return None if no such element exists. - - A function that evaluates to a Boolean when given an item in the sequence. - The input sequence. - - The found element or None. - - Thrown when the input sequence is null. - - - Builds a list from the given collection. - - The input sequence. - - The result list. - - Thrown when the input sequence is null. - - - Builds an array from the given collection. - - The input sequence. - - The result array. - - Thrown when the input sequence is null. - - - Returns a sequence that, when iterated, yields elements of the underlying sequence while the - given predicate returns true, and then returns no further elements. - - A function that evaluates to false when no more items should be returned. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the first N elements of the sequence. - Throws InvalidOperationException - if the count exceeds the number of elements in the sequence. Seq.truncate - returns as many items as the sequence contains instead of throwing an exception. - - The number of items to take. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - Thrown when count exceeds the number of elements - in the sequence. - - - Returns a sequence that skips 1 element of the underlying sequence and then yields the - remaining elements of the sequence. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the sum of the results generated by applying the function to each element of the sequence. - The generated elements are summed using the + operator and Zero property associated with the generated type. - - A function to transform items from the input sequence into the type that will be summed. - The input sequence. - - The computed sum. - - - Returns the sum of the elements in the sequence. - - The elements are summed using the + operator and Zero property associated with the generated type. - - The input sequence. - - The computed sum. - - - Applies a key-generating function to each element of a sequence and yield a sequence ordered - descending by keys. The keys are compared using generic comparison as implemented by Operators.compare. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - A function to transform items of the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Yields a sequence ordered descending by keys. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies a key-generating function to each element of a sequence and yield a sequence ordered - by keys. The keys are compared using generic comparison as implemented by Operators.compare. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - A function to transform items of the input sequence into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Yields a sequence ordered using the given comparison function. - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - The function to compare the collection elements. - The input sequence. - The result sequence. - - - Yields a sequence ordered by keys. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - This is a stable sort, that is the original order of equal elements is preserved. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that, when iterated, skips elements of the underlying sequence while the - given predicate returns true, and then yields the remaining elements of the sequence. - - A function that evaluates an element of the sequence to a boolean value. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that skips N elements of the underlying sequence and then yields the - remaining elements of the sequence. - - The number of items to skip. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when count exceeds the number of elements - in the sequence. - - - Returns a sequence that yields one item only. - - The input item. - - The result sequence of one item. - - - Like foldBack, but returns the sequence of intermediary and final results. - This function returns a sequence that digests the whole initial sequence as soon as that - sequence is iterated. As a result this function should not be used with large or infinite sequences. - - A function that updates the state with each element from the sequence. - The input sequence. - The initial state. - The resulting sequence of computed states. - Thrown when the input sequence is null. - - - Like fold, but computes on-demand and returns the sequence of intermediary and final results. - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The resulting sequence of computed states. - - Thrown when the input sequence is null. - - - Returns a new sequence with the elements in reverse order. - The input sequence. - The reversed sequence. - Thrown when the input sequence is null. - - - Applies a function to each element of the sequence, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f i0 (...(f iN-1 iN)). - A function that takes in the next-to-last element of the sequence and the - current accumulated result to produce the next accumulated result. - The input sequence. - The final result of the reductions. - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Creates a sequence by replicating the given initial value. - The number of elements to replicate. - The value to replicate - The generated sequence. - - - Applies a function to each element of the sequence, threading an accumulator argument - through the computation. Begin by applying the function to the first two elements. - Then feed this result into the function along with the third element and so on. - Return the final result. - - A function that takes in the current accumulated result and the next - element of the sequence to produce the next accumulated result. - The input sequence. - - The final result of the reduction function. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Builds a new sequence object that delegates to the given sequence object. This ensures - the original sequence cannot be rediscovered and mutated by a type cast. For example, - if given an array the returned sequence will return the elements of the array, but - you cannot cast the returned sequence object to an array. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Applies the given function to successive elements, returning the first - x where the function returns "Some(x)". - - A function to transform each item of the input sequence into an option of the output type. - The input sequence. - - The selected element. - - Thrown when the input sequence is null. - Thrown when every item of the sequence - evaluates to None when the given function is applied. - - - Returns a sequence with all elements permuted according to the - specified permutation. - - Note that this function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. - - The function that maps input indices to output indices. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - Thrown when indexMap does not produce a valid permutation. - - - Returns a sequence of each element in the input sequence and its predecessor, with the - exception of the first element which is only returned as the predecessor of the second element. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Views the given list as a sequence. - - The input list. - - The result sequence. - - - Views the given array as a sequence. - - The input array. - - The result sequence. - - Thrown when the input sequence is null. - - - Computes the nth element in the collection. - - The index of element to retrieve. - The input sequence. - - The nth element of the sequence. - - Thrown when the input sequence is null. - Thrown when the index is negative or the input sequence does not contain enough elements. - - - Returns the lowest of all elements of the sequence, compared via Operators.min on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The smallest element of the sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the lowest of all elements of the sequence, compared via Operators.min. - - The input sequence. - - The smallest element of the sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the greatest of all elements of the sequence, compared via Operators.max on the function result. - - A function to transform items from the input sequence into comparable keys. - The input sequence. - - The largest element of the sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - - Returns the greatest of all elements of the sequence, compared via Operators.max - - The input sequence. - - Thrown when the input sequence is null. - Thrown when the input sequence is empty. - - The largest element of the sequence. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. The integer index passed to the - function indicates the index (from 0) of element being transformed. - - A function to transform pairs of items from the input sequences that also supplies the current index. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The integer index passed to the - function indicates the index (from 0) of element being transformed. - - A function to transform items from the input sequence that also supplies the current index. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding triples of elements from the three sequences. If one input sequence if shorter than - the others then the remaining elements of the longer sequences are ignored. - - The function to transform triples of elements from the input sequences. - The first input sequence. - The second input sequence. - The third input sequence. - - The result sequence. - - Thrown when any of the input sequences is null. - - - Combines map and foldBack. Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The function is also used to accumulate a final value. - This function digests the whole initial sequence as soon as it is called. As a result this function should - not be used with large or infinite sequences. - The function to transform elements from the input collection and accumulate the final value. - The input collection. - The initial state. - Thrown when the input collection is null. - The collection of transformed elements, and the final accumulated value. - - - Combines map and fold. Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The function is also used to accumulate a final value. - This function digests the whole initial sequence as soon as it is called. As a result this function should - not be used with large or infinite sequences. - The function to transform elements from the input collection and accumulate the final value. - The initial state. - The input collection. - Thrown when the input collection is null. - The collection of transformed elements, and the final accumulated value. - - - Builds a new collection whose elements are the results of applying the given function - to the corresponding pairs of elements from the two sequences. If one input sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to transform pairs of items from the input sequences. - The first input sequence. - The second input sequence. - - The result sequence. - - Thrown when either of the input sequences is null. - - - Builds a new collection whose elements are the results of applying the given function - to each of the elements of the collection. The given function will be applied - as elements are demanded using the MoveNext method on enumerators retrieved from the - object. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - A function to transform items from the input sequence. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the length of the sequence - - The input sequence. - - The length of the sequence. - - Thrown when the input sequence is null. - - - Applies the given function to two collections simultaneously. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. The integer passed to the - function indicates the index of element. - - A function to apply to each pair of elements from the input sequences along with their index. - The first input sequence. - The second input sequence. - - Thrown when either of the input sequences is null. - - - Applies the given function to two collections simultaneously. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to apply to each pair of elements from the input sequences. - The first input sequence. - The second input sequence. - - Thrown when either of the input sequences is null. - - - Applies the given function to each element of the collection. The integer passed to the - function indicates the index of element. - - A function to apply to each element of the sequence that can also access the current index. - The input sequence. - - Thrown when the input sequence is null. - - - Applies the given function to each element of the collection. - - A function to apply to each element of the sequence. - The input sequence. - - Thrown when the input sequence is null. - - - Computes the element at the specified index in the collection. - The index of the element to retrieve. - The input sequence. - The element at the specified index of the sequence. - Thrown when the input sequence is null. - Thrown when the index is negative or the input sequence does not contain enough elements. - - - Generates a new sequence which, when iterated, will return successive - elements by calling the given function. The results of calling the function - will not be saved, that is the function will be reapplied as necessary to - regenerate the elements. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - Iteration can continue up to Int32.MaxValue. - - A function that generates an item in the sequence from a given index. - - The result sequence. - - - Generates a new sequence which, when iterated, will return successive - elements by calling the given function, up to the given count. Each element is saved after its - initialization. The function is passed the index of the item being - generated. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The maximum number of items to generate for the sequence. - A function that generates an item in the sequence from a given index. - - The result sequence. - - Thrown when count is negative. - - - Builds a new collection whose elements are the corresponding elements of the input collection - paired with the integer index (from 0) of each element. - The input sequence. - The result sequence. - Thrown when the input sequence is null. - - - Returns true if the sequence contains no elements, false otherwise. - - The input sequence. - - True if the sequence is empty; false otherwise. - - Thrown when the input sequence is null. - - - Returns the only element of the sequence. - - The input sequence. - - The only element of the sequence. - - Thrown when the input sequence is null. - Thrown when the input does not have precisely one element. - - - Returns the last element of the sequence. - Return None if no such element exists. - - The input sequence. - - The last element of the sequence or None. - - Thrown when the input sequence is null. - - - Returns the last element of the sequence. - The input sequence. - The last element of the sequence. - Thrown when the input sequence is null. - Thrown when the input does not have any elements. - - - Returns the first element of the sequence, or None if the sequence is empty. - - The input sequence. - - The first element of the sequence or None. - - Thrown when the input sequence is null. - - - Returns the first element of the sequence. - - The input sequence. - - The first element of the sequence. - - Thrown when the input sequence is null. - Thrown when the input does not have any elements. - - - Applies a key-generating function to each element of a sequence and yields a sequence of - unique keys. Each unique key contains a sequence of all elements that match - to this key. - - This function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function that transforms an element of the sequence into a comparable key. - The input sequence. - - The result sequence. - - - Tests the all pairs of elements drawn from the two sequences satisfy the - given predicate. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test pairs of elements from the input sequences. - The first input sequence. - The second input sequence. - - True if all pairs satisfy the predicate; false otherwise. - - Thrown when either of the input sequences is null. - - - Tests if all elements of the sequence satisfy the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns false then the overall result is false and no further elements are tested. - Otherwise, true is returned. - - A function to test an element of the input sequence. - The input sequence. - - True if every element of the sequence satisfies the predicate; false otherwise. - - Thrown when the input sequence is null. - - - Applies a function to corresponding elements of two collections, starting from the end of the shorter collection, - threading an accumulator argument through the computation. The two sequences need not have equal lengths. - If the input function is f and the elements are i0...iN and j0...jM, N < M - then computes f i0 j0 (... (f iN jN s)...). - The function to update the state given the input elements. - The first input sequence. - The second input sequence. - The initial state. - The final state value. - Thrown when the either of the input sequences is null. - - - Applies a function to each element of the collection, starting from the end, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f i0 (... (f iN s)...) - The function to update the state given the input elements. - The input sequence. - The initial state. - The state object after the folding function is applied to each element of the sequence. - Thrown when the input sequence is null. - - - Applies a function to corresponding elements of two collections, threading an accumulator argument - through the computation. The two sequences need not have equal lengths: - when one sequence is exhausted any remaining elements in the other sequence are ignored. - If the input function is f and the elements are i0...iN and j0...jN - then computes f (... (f s i0 j0)...) iN jN. - The function to update the state given the input elements. - The initial state. - The first input sequence. - The second input sequence. - The final state value. - Thrown when the either of the input sequences is null. - - - Applies a function to each element of the collection, threading an accumulator argument - through the computation. If the input function is f and the elements are i0...iN - then computes f (... (f s i0)...) iN - - A function that updates the state with each element from the sequence. - The initial state. - The input sequence. - - The state object after the folding function is applied to each element of the sequence. - - Thrown when the input sequence is null. - - - Returns the index of the last element for which the given function returns true. - This function digests the whole initial sequence as soon as it is called. As a - result this function should not be used with large or infinite sequences. - A function to test whether the index of a particular element should be returned. - The input sequence. - The index of the last element for which the predicate returns true. - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns the index of the first element for which the given function returns true. - - A function to test whether the index of a particular element should be returned. - The input sequence. - - The index of the first element for which the predicate returns true. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns the last element for which the given function returns true. - This function digests the whole initial sequence as soon as it is called. As a - result this function should not be used with large or infinite sequences. - A function to test whether an item in the sequence should be returned. - The input sequence. - The last element for which the predicate returns true. - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns the first element for which the given function returns true. - - A function to test whether an item in the sequence should be returned. - The input sequence. - - The first element for which the predicate returns true. - - Thrown if no element returns true when - evaluated by the predicate - Thrown when the input sequence is null - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A synonym for Seq.filter. - - A function to test whether each item in the input sequence should be included in the output. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns "true". This is a synonym for Seq.where. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to test whether each item in the input sequence should be included in the output. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Tests if any pair of corresponding elements of the input sequences satisfies the given predicate. - - The predicate is applied to matching elements in the two sequences up to the lesser of the - two lengths of the collections. If any application returns true then the overall result is - true and no further elements are tested. Otherwise, false is returned. If one sequence is shorter than - the other then the remaining elements of the longer sequence are ignored. - - A function to test each pair of items from the input sequences. - The first input sequence. - The second input sequence. - - True if any result from the predicate is true; false otherwise. - - Thrown when either of the two input sequences is null. - - - Tests if any element of the sequence satisfies the given predicate. - - The predicate is applied to the elements of the input sequence. If any application - returns true then the overall result is true and no further elements are tested. - Otherwise, false is returned. - - A function to test each item of the input sequence. - The input sequence. - - True if any result from the predicate is true; false otherwise. - - Thrown when the input sequence is null. - - - Returns a new sequence with the distinct elements of the second sequence which do not apear in the first sequence, - using generic hash and equality comparisons to compare values. - - Note that this function returns a sequence that digests the whole of the first input sequence as soon as - the result sequence is iterated. As a result this function should not be used with - large or infinite sequences in the first parameter. The function makes no assumption on the ordering of the first input - sequence. - - A sequence whose elements that also occur in the second sequence will cause those elements to be - removed from the returned sequence. - A sequence whose elements that are not also in first will be returned. - - A sequence that contains the set difference of the elements of two sequences. - - Thrown when either of the two input sequences is null. - - - Creates an empty sequence. - - An empty sequence. - - - Splits the input sequence into at most count chunks. - This function returns a sequence that digests the whole initial sequence as soon as that - sequence is iterated. As a result this function should not be used with large or infinite sequences. - The maximum number of chunks. - The input sequence. - The sequence split into chunks. - Thrown when the input sequence is null. - Thrown when count is not positive. - - - Returns a sequence that contains no duplicate entries according to the - generic hash and equality comparisons on the keys returned by the given key-generating function. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - A function transforming the sequence items into comparable keys. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that contains no duplicate entries according to generic hash and - equality comparisons on the entries. - If an element occurs multiple times in the sequence then the later occurrences are discarded. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that is built from the given delayed specification of a - sequence. - - The input function is evaluated each time an IEnumerator for the sequence - is requested. - - The generating function for the sequence. - - - Applies a key-generating function to each element of a sequence and returns a sequence yielding unique - keys and their number of occurrences in the original sequence. - - Note that this function returns a sequence that digests the whole initial sequence as soon as - that sequence is iterated. As a result this function should not be used with - large or infinite sequences. The function makes no assumption on the ordering of the original - sequence. - - A function transforming each item of the input sequence into a key to be - compared against the others. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Tests if the sequence contains the specified element. - The value to locate in the input sequence. - The input sequence. - True if the input sequence contains the specified element; false otherwise. - Thrown when the input sequence is null. - - - Combines the given enumeration-of-enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input enumeration-of-enumerations. - - The result sequence. - - Thrown when the input sequence is null. - - - Compares two sequences using the given comparison function, element by element. - Returns the first non-zero result from the comparison function. If the end of a sequence - is reached it returns a -1 if the first sequence is shorter and a 1 if the second sequence - is shorter. - - A function that takes an element from each sequence and returns an int. - If it evaluates to a non-zero value iteration is stopped and that value is returned. - The first input sequence. - The second input sequence. - - The first non-zero value from the comparison function. - - Thrown when either of the input sequences - is null. - - - Applies the given function to each element of the sequence and concatenates all the - results. - - Remember sequence is lazy, effects are delayed until it is enumerated. - - A function to transform elements of the input sequence into the sequences - that will then be concatenated. - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Divides the input sequence into chunks of size at most chunkSize. - The maximum size of each chunk. - The input sequence. - The sequence divided into chunks. - Thrown when the input sequence is null. - Thrown when chunkSize is not positive. - - - Applies the given function to each element of the list. Return - the list comprised of the results "x" for each element where - the function returns Some(x). - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not - be accessed concurrently. - - A function to transform items of type T into options of type U. - The input sequence of type T. - - The result sequence. - - Thrown when the input sequence is null. - - - Wraps a loosely-typed System.Collections sequence as a typed sequence. - - The use of this function usually requires a type annotation. - An incorrect type annotation may result in runtime type - errors. - Individual IEnumerator values generated from the returned sequence should not be accessed concurrently. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns a sequence that corresponds to a cached version of the input sequence. - This result sequence will have the same elements as the input sequence. The result - can be enumerated multiple times. The input sequence will be enumerated at most - once and only as far as is necessary. Caching a sequence is typically useful when repeatedly - evaluating items in the original sequence is computationally expensive or if - iterating the sequence causes side-effects that the user does not want to be - repeated multiple times. - - Enumeration of the result sequence is thread safe in the sense that multiple independent IEnumerator - values may be used simultaneously from different threads (accesses to - the internal lookaside table are thread safe). Each individual IEnumerator - is not typically thread safe and should not be accessed concurrently. - - Once enumeration of the input sequence has started, - it's enumerator will be kept live by this object until the enumeration has completed. - At that point, the enumerator will be disposed. - - The enumerator may be disposed and underlying cache storage released by - converting the returned sequence object to type IDisposable, and calling the Dispose method - on this object. The sequence object may then be re-enumerated and a fresh enumerator will - be used. - - The input sequence. - - The result sequence. - - Thrown when the input sequence is null. - - - Returns the average of the results generated by applying the function to each element - of the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the generated type. - - A function applied to transform each element of the sequence. - The input sequence. - - The average. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Returns the average of the elements in the sequence. - - The elements are averaged using the + operator, DivideByInt method and Zero property - associated with the element type. - - The input sequence. - - The average. - - Thrown when the input sequence is null. - Thrown when the input sequence has zero elements. - - - Wraps the two given enumerations as a single concatenated - enumeration. - - The returned sequence may be passed between threads safely. However, - individual IEnumerator values generated from the returned sequence should not be accessed - concurrently. - - The first sequence. - The second sequence. - - The result sequence. - - Thrown when either of the two provided sequences is - null. - - - Basic operations on IEnumerables. - - - Returns a new set with the elements of the second set removed from the first. - The first input set. - The set whose elements will be removed from set1. - The set with the elements of set2 removed from set1. - - - Builds a new collection from the given enumerable object. - The input sequence. - The set containing elements. - - - Returns an ordered view of the collection as an enumerable object. - The input set. - An ordered sequence of the elements of set. - - - Builds an array that contains the elements of the set in order. - The input set. - An ordered array of the elements of set. - - - Builds a set that contains the same elements as the given array. - The input array. - A set containing the elements of array. - - - Builds a list that contains the elements of the set in order. - The input set. - An ordered list of the elements of set. - - - Builds a set that contains the same elements as the given list. - The input list. - A set containing the elements form the input list. - - - Returns the highest element in the set according to the ordering being used for the set. - The input set. - The max value from the set. - - - Returns the lowest element in the set according to the ordering being used for the set. - The input set. - The min value from the set. - - - Returns a new set with the given element removed. No exception is raised if - the set doesn't contain the given element. - The element to remove. - The input set. - The input set with value removed. - - - Splits the set into two sets containing the elements for which the given predicate - returns true and false respectively. - The function to test set elements. - The input set. - A pair of sets with the first containing the elements for which predicate returns - true and the second containing the elements for which predicate returns false. - - - Applies the given function to each element of the set, in order according - to the comparison function. - The function to apply to each element. - The input set. - - - Returns "true" if the set is empty. - The input set. - True if set is empty. - - - Computes the union of a sequence of sets. - The sequence of sets to untion. - The union of the input sets. - - - Computes the union of the two sets. - The first input set. - The second input set. - The union of set1 and set2. - - - Computes the intersection of a sequence of sets. The sequence must be non-empty. - The sequence of sets to intersect. - The intersection of the input sets. - - - Computes the intersection of the two sets. - The first input set. - The second input set. - The intersection of set1 and set2. - - - Tests if all elements of the collection satisfy the given predicate. - If the input function is f and the elements are i0...iN and "j0...jN" - then computes p i0 && ... && p iN. - The function to test set elements. - The input set. - True if all elements of set satisfy predicate. - - - Applies the given accumulating function to all the elements of the set. - The accumulating function. - The input set. - The initial state. - The final state. - - - Applies the given accumulating function to all the elements of the set - The accumulating function. - The initial state. - The input set. - The final state. - - - Returns a new collection containing the results of applying the - given function to each element of the input set. - The function to transform elements of the input set. - The input set. - A set containing the transformed elements. - - - Returns a new collection containing only the elements of the collection - for which the given predicate returns true. - The function to test set elements. - The input set. - The set containing only the elements for which predicate returns true. - - - Tests if any element of the collection satisfies the given predicate. - If the input function is predicate and the elements are i0...iN - then computes p i0 or ... or p iN. - The function to test set elements. - The input set. - True if any element of set satisfies predicate. - - - Returns the number of elements in the set. Same as size. - The input set. - The number of elements in the set. - - - Evaluates to "true" if all elements of the second set are in the first, and at least - one element of the first is not in the second. - The potential superset. - The set to test against. - True if set1 is a proper superset of set2. - - - Evaluates to "true" if all elements of the second set are in the first. - The potential superset. - The set to test against. - True if set1 is a superset of set2. - - - Evaluates to "true" if all elements of the first set are in the second, and at least - one element of the second is not in the first. - The potential subset. - The set to test against. - True if set1 is a proper subset of set2. - - - Evaluates to "true" if all elements of the first set are in the second - The potential subset. - The set to test against. - True if set1 is a subset of set2. - - - Evaluates to "true" if the given element is in the given set. - The element to test. - The input set. - True if element is in set. - - - Returns a new set with an element added to the set. No exception is raised if - the set already contains the given element. - The value to add. - The input set. - A new set containing value. - - - The set containing the given element. - The value for the set to contain. - The set containing value. - - - The empty set for the type 'T. - - - Functional programming operators related to the Set<_> type. - - - Gets the default cancellation token for executing asynchronous computations. - The default CancellationToken. - - - Creates an asynchronous computation that returns the CancellationToken governing the execution - of the computation. - In async { let! token = Async.CancellationToken ...} token can be used to initiate other - asynchronous operations that will cancel cooperatively with this workflow. - An asynchronous computation capable of retrieving the CancellationToken from a computation - expression. - - - Creates an asynchronous computation that executes computation. - If this computation is cancelled before it completes then the computation generated by - running compensation is executed. - The input asynchronous computation. - The function to be run if the computation is cancelled. - An asynchronous computation that runs the compensation if the input computation - is cancelled. - - - Creates an asynchronous computation that queues a work item that runs - its continuation. - A computation that generates a new work item in the thread pool. - - - Creates an asynchronous computation that creates a new thread and runs - its continuation in that thread. - A computation that will execute on a new thread. - - - Creates an asynchronous computation that runs - its continuation using syncContext.Post. If syncContext is null - then the asynchronous computation is equivalent to SwitchToThreadPool(). - The synchronization context to accept the posted computation. - An asynchronous computation that uses the syncContext context to execute. - - - Runs an asynchronous computation, starting immediately on the current operating system - thread. Call one of the three continuations when the operation completes. - If no cancellation token is provided then the default cancellation token - is used. - The asynchronous computation to execute. - The function called on success. - The function called on exception. - The function called on cancellation. - The CancellationToken to associate with the computation. - The default is used if this parameter is not provided. - - - Runs an asynchronous computation, starting immediately on the current operating system - thread. - If no cancellation token is provided then the default cancellation token is used. - The asynchronous computation to execute. - The CancellationToken to associate with the computation. - The default is used if this parameter is not provided. - - - Creates an asynchronous computation which starts the given computation as a System.Threading.Tasks.Task - - - Starts a child computation within an asynchronous workflow. - This allows multiple asynchronous computations to be executed simultaneously. - - This method should normally be used as the immediate - right-hand-side of a let! binding in an F# asynchronous workflow, that is, - - async { ... - let! completor1 = childComputation1 |> Async.StartChild - let! completor2 = childComputation2 |> Async.StartChild - ... - let! result1 = completor1 - let! result2 = completor2 - ... } - - When used in this way, each use of StartChild starts an instance of childComputation - and returns a completor object representing a computation to wait for the completion of the operation. - When executed, the completor awaits the completion of childComputation. - The child computation. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - A new computation that waits for the input computation to finish. - - - Executes a computation in the thread pool. - If no cancellation token is provided then the default cancellation token is used. - A System.Threading.Tasks.Task that will be completed - in the corresponding state once the computation terminates (produces the result, throws exception or gets canceled) - - - - Starts the asynchronous computation in the thread pool. Do not await its result. - - If no cancellation token is provided then the default cancellation token is used. - The computation to run asynchronously. - The cancellation token to be associated with the computation. - If one is not supplied, the default cancellation token is used. - - - Creates an asynchronous computation that will sleep for the given time. This is scheduled - using a System.Threading.Timer object. The operation will not block operating system threads - for the duration of the wait. - The number of milliseconds to sleep. - An asynchronous computation that will sleep for the given time. - Thrown when the due time is negative - and not infinite. - - - Runs the asynchronous computation and await its result. - - If an exception occurs in the asynchronous computation then an exception is re-raised by this - function. - - If no cancellation token is provided then the default cancellation token is used. - - The timeout parameter is given in milliseconds. A value of -1 is equivalent to - System.Threading.Timeout.Infinite. - The computation to run. - The amount of time in milliseconds to wait for the result of the - computation before raising a System.TimeoutException. If no value is provided - for timeout then a default of -1 is used to correspond to System.Threading.Timeout.Infinite. - The cancellation token to be associated with the computation. - If one is not supplied, the default cancellation token is used. - The result of the computation. - - - Creates an asynchronous computation that executes all the given asynchronous computations, - initially queueing each as work items and using a fork/join pattern. - - If all child computations succeed, an array of results is passed to the success continuation. - - If any child computation raises an exception, then the overall computation will trigger an - exception, and cancel the others. - - The overall computation will respond to cancellation while executing the child computations. - If cancelled, the computation will cancel any remaining child computations but will still wait - for the other child computations to complete. - A sequence of distinct computations to be parallelized. - A computation that returns an array of values from the sequence of input computations. - - - Generates a scoped, cooperative cancellation handler for use within an asynchronous workflow. - - For example, - async { use! holder = Async.OnCancel interruption ... } - generates an asynchronous computation where, if a cancellation happens any time during - the execution of the asynchronous computation in the scope of holder, then action - interruption is executed on the thread that is performing the cancellation. This can - be used to arrange for a computation to be asynchronously notified that a cancellation - has occurred, e.g. by setting a flag, or deregistering a pending I/O action. - The function that is executed on the thread performing the - cancellation. - An asynchronous computation that triggers the interruption if it is cancelled - before being disposed. - - - Creates an asynchronous computation that runs the given computation and ignores - its result. - The input computation. - A computation that is equivalent to the input computation, but disregards the result. - - - Creates an asynchronous computation that captures the current - success, exception and cancellation continuations. The callback must - eventually call exactly one of the given continuations. - The function that accepts the current success, exception, and cancellation - continuations. - An asynchronous computation that provides the callback with the current continuations. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by three arguments. For example, - Async.FromBeginEnd(arg1,arg2,arg3,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The first argument for the operation. - The second argument for the operation. - The third argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by two arguments. For example, - Async.FromBeginEnd(arg1,arg2,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The first argument for the operation. - The second argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. This overlaod should be used if the operation is - qualified by one argument. For example, - Async.FromBeginEnd(place,ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The argument for the operation. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation in terms of a Begin/End pair of actions in - the style used in CLI APIs. For example, - Async.FromBeginEnd(ws.BeginGetWeather,ws.EndGetWeather) - When the computation is run, beginFunc is executed, with - a callback which represents the continuation of the computation. - When the callback is invoked, the overall result is fetched using endFunc. - - The computation will respond to cancellation while waiting for the completion - of the operation. If a cancellation occurs, and cancelAction is specified, then it is - executed, and the computation continues to wait for the completion of the operation. - - If cancelAction is not specified, then cancellation causes the computation - to stop immediately, and subsequent invocations of the callback are ignored. - The function initiating a traditional CLI asynchronous operation. - The function completing a traditional CLI asynchronous operation. - An optional function to be executed when a cancellation is requested. - An asynchronous computation wrapping the given Begin/End functions. - - - Creates an asynchronous computation that executes computation. - If this computation completes successfully then return Choice1Of2 with the returned - value. If this computation raises an exception before it completes then return Choice2Of2 - with the raised exception. - The input computation that returns the type T. - A computation that returns a choice of type T or exception. - - - Raises the cancellation condition for the most recent set of asynchronous computations started - without any specific CancellationToken. Replaces the global CancellationTokenSource with a new - global token source for any asynchronous computations created after this point without any - specific CancellationToken. - - - Creates an asynchronous computation that will wait on the given WaitHandle. - - The computation returns true if the handle indicated a result within the given timeout. - The WaitHandle that can be signalled. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - An asynchronous computation that waits on the given WaitHandle. - - - - Return an asynchronous computation that will wait for the given task to complete and return - its result. - - - - - Return an asynchronous computation that will wait for the given task to complete and return - its result. - - - - Creates an asynchronous computation that will wait on the IAsyncResult. - - The computation returns true if the handle indicated a result within the given timeout. - The IAsyncResult to wait on. - The timeout value in milliseconds. If one is not provided - then the default value of -1 corresponding to System.Threading.Timeout.Infinite. - An asynchronous computation that waits on the given IAsyncResult. - - - Creates an asynchronous computation that waits for a single invocation of a CLI - event by adding a handler to the event. Once the computation completes or is - cancelled, the handler is removed from the event. - - The computation will respond to cancellation while waiting for the event. If a - cancellation occurs, and cancelAction is specified, then it is executed, and - the computation continues to wait for the event. - - If cancelAction is not specified, then cancellation causes the computation - to cancel immediately. - The event to handle once. - An optional function to execute instead of cancelling when a - cancellation is issued. - An asynchronous computation that waits for the event to be invoked. - - - Creates three functions that can be used to implement the .NET Asynchronous - Programming Model (APM) for a given asynchronous computation. - - The functions should normally be published as members with prefix Begin, - End and Cancel, and can be used within a type definition as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg -> computation) - member x.BeginSomeOperation(arg,callback,state:obj) = beginAction(arg,callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - If the asynchronous computation takes no arguments, then AsBeginEnd is used as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun () -> computation) - member x.BeginSomeOperation(callback,state:obj) = beginAction((),callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - - If the asynchronous computation takes two arguments, then AsBeginEnd is used as follows: - - let beginAction,endAction,cancelAction = Async.AsBeginEnd (fun arg1 arg2 -> computation) - member x.BeginSomeOperation(arg1,arg2,callback,state:obj) = beginAction((),callback,state) - member x.EndSomeOperation(iar) = endAction(iar) - member x.CancelSomeOperation(iar) = cancelAction(iar) - - - In each case, the resulting API will be familiar to programmers in other CLI languages and - is a useful way to publish asynchronous computations in CLI components. - A function generating the asynchronous computation to split into the traditional - .NET Asynchronous Programming Model. - A tuple of the begin, end, and cancel members. - - - This static class holds members for creating and manipulating asynchronous computations. - - - Creates an asynchronous computation that just returns (). - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of empty else branches in the - async { ... } computation expression syntax. - An asynchronous computation that returns (). - - - Creates an asynchronous computation that runs computation repeatedly - until guard() becomes false. - - A cancellation check is performed whenever the computation is executed. - - The existence of this method permits the use of while in the - async { ... } computation expression syntax. - The function to determine when to stop executing computation. - The function to be executed. Equivalent to the body - of a while expression. - An asynchronous computation that behaves similarly to a while loop when run. - - - Creates an asynchronous computation that runs binder(resource). - The action resource.Dispose() is executed as this computation yields its result - or if the asynchronous computation exits by an exception or by cancellation. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of use and use! in the - async { ... } computation expression syntax. - The resource to be used and disposed. - The function that takes the resource and returns an asynchronous - computation. - An asynchronous computation that binds and eventually disposes resource. - - - Creates an asynchronous computation that runs computation and returns its result. - If an exception happens then catchHandler(exn) is called and the resulting computation executed instead. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of try/with in the - async { ... } computation expression syntax. - The input computation. - The function to run when computation throws an exception. - An asynchronous computation that executes computation and calls catchHandler if an - exception is thrown. - - - Creates an asynchronous computation that runs computation. The action compensation is executed - after computation completes, whether computation exits normally or by an exception. If compensation raises an exception itself - the original exception is discarded and the new exception becomes the overall result of the computation. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of try/finally in the - async { ... } computation expression syntax. - The input computation. - The action to be run after computation completes or raises an - exception (including cancellation). - An asynchronous computation that executes computation and compensation aftewards or - when an exception is raised. - - - Delegates to the input computation. - - The existence of this method permits the use of return! in the - async { ... } computation expression syntax. - The input computation. - The input computation. - - - Creates an asynchronous computation that returns the result v. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of return in the - async { ... } computation expression syntax. - The value to return from the computation. - An asynchronous computation that returns value when executed. - - - Creates an asynchronous computation that enumerates the sequence seq - on demand and runs body for each element. - - A cancellation check is performed on each iteration of the loop. - - The existence of this method permits the use of for in the - async { ... } computation expression syntax. - The sequence to enumerate. - A function to take an item from the sequence and create - an asynchronous computation. Can be seen as the body of the for expression. - An asynchronous computation that will enumerate the sequence and run body - for each element. - - - Creates an asynchronous computation that runs generator. - - A cancellation check is performed when the computation is executed. - The function to run. - An asynchronous computation that runs generator. - - - Creates an asynchronous computation that first runs computation1 - and then runs computation2, returning the result of computation2. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of expression sequencing in the - async { ... } computation expression syntax. - The first part of the sequenced computation. - The second part of the sequenced computation. - An asynchronous computation that runs both of the computations sequentially. - - - Creates an asynchronous computation that runs computation, and when - computation generates a result T, runs binder res. - - A cancellation check is performed when the computation is executed. - - The existence of this method permits the use of let! in the - async { ... } computation expression syntax. - The computation to provide an unbound result. - The function to bind the result of computation. - An asynchronous computation that performs a monadic bind on the result - of computation. - - - - Generate an object used to build asynchronous computations using F# computation expressions. The value - 'async' is a pre-defined instance of this type. - - A cancellation check is performed when the computation is executed. - - - - The type of the async operator, used to build workflows for asynchronous computations. - - - Sends a reply to a PostAndReply message. - The value to send. - - - A handle to a capability to reply to a PostAndReply message. - - - A compositional asynchronous computation, which, when run, will eventually produce a value - of type T, or else raises an exception. - - Asynchronous computations are normally specified using an F# computation expression. - - When run, asynchronous computations have two modes: as a work item (executing synchronous - code), or as a wait item (waiting for an event or I/O completion). - - When run, asynchronous computations can be governed by CancellationToken. This can usually - be specified when the async computation is started. The associated CancellationTokenSource - may be used to cancel the asynchronous computation. Asynchronous computations built using - computation expressions can check the cancellation condition regularly. Synchronous - computations within an asynchronous computation do not automatically check this condition. - - - Publishes the event as a first class event value. - - - Triggers the event using the given parameters. - The parameters for the event. - - - Creates an event object suitable for implementing an arbitrary type of delegate. - The event object. - - - Event implementations for an arbitrary type of delegate. - - - Publishes an observation as a first class value. - - - Triggers an observation using the given parameters. - The event parameters. - - - Creates an observable object. - The created event. - - - Event implementations for the IEvent<_> type. - - - Publishes the event as a first class event value. - - - Triggers the event using the given sender object and parameters. The sender object may be null. - The object triggering the event. - The parameters for the event. - - - Creates an event object suitable for delegate types following the standard .NET Framework convention of a first 'sender' argument. - The created event. - - - Event implementations for a delegate types following the standard .NET Framework convention of a first 'sender' argument. - - - A delegate type associated with the F# event type IEvent<_> - The object that fired the event. - The event arguments. - - - Remove a listener delegate from an event listener store. - The delegate to be removed from the event listener store. - - - Connect a handler delegate object to the event. A handler can - be later removed using RemoveHandler. The listener will - be invoked when the event is fired. - A delegate to be invoked when the event is fired. - - - First class event values for arbitrary delegate types. - - F# gives special status to member properties compatible with type IDelegateEvent and - tagged with the CLIEventAttribute. In this case the F# compiler generates approriate - CLI metadata to make the member appear to other CLI languages as a CLI event. - - - First-class listening points (i.e. objects that permit you to register a callback - activated when the event is triggered). - - - First class event values for CLI events conforming to CLI Framework standards. - - - The type of delayed computations. - - Use the values in the Lazy module to manipulate - values of this type, and the notation lazy expr to create values - of type . - - - Raises a timeout exception if a message not received in this amount of time. By default - no timeout is used. - - - Occurs when the execution of the agent results in an exception. - - - Occurs when the execution of the agent results in an exception. - - - Raises a timeout exception if a message not received in this amount of time. By default - no timeout is used. - - - Returns the number of unprocessed messages in the message queue of the agent. - - - Occurs when the execution of the agent results in an exception. - - - Scans for a message by looking through messages in arrival order until scanner - returns a Some value. Other messages remain in the queue. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - The function to return None if the message is to be skipped - or Some if the message is to be processed and removed from the queue. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that scanner built off the read message. - - - Waits for a message. This will consume the first message in arrival order. - - This method is for use within the body of the agent. - - Returns None if a timeout is given and the timeout is exceeded. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - An optional timeout in milliseconds. Defaults to -1 which - corresponds to System.Threading.Timeout.Infinite. - An asynchronous computation that returns the received message or - None if the timeout is exceeded. - - - Like PostAndReply, but returns None if no reply within the timeout period. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - The reply from the agent or None if the timeout expires. - - - Starts the agent. - - - Creates and starts an agent. The body function is used to generate the asynchronous - computation executed by the agent. - The function to produce an asynchronous computation that will be executed - as the read loop for the MailboxProcessor when Start is called. - An optional cancellation token for the body. - Defaults to Async.DefaultCancellationToken. - The created MailboxProcessor. - - - Scans for a message by looking through messages in arrival order until scanner - returns a Some value. Other messages remain in the queue. - - Returns None if a timeout is given and the timeout is exceeded. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - The function to return None if the message is to be skipped - or Some if the message is to be processed and removed from the queue. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that scanner built off the read message. - Thrown when the timeout is exceeded. - - - Waits for a message. This will consume the first message in arrival order. - - This method is for use within the body of the agent. - - This method is for use within the body of the agent. For each agent, at most - one concurrent reader may be active, so no more than one concurrent call to - Receive, TryReceive, Scan and/or TryScan may be active. - An optional timeout in milliseconds. Defaults to -1 which corresponds - to System.Threading.Timeout.Infinite. - An asynchronous computation that returns the received message. - Thrown when the timeout is exceeded. - - - Like AsyncPostAndReply, but returns None if no reply within the timeout period. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - An asynchronous computation that will return the reply or None if the timeout expires. - - - Posts a message to an agent and await a reply on the channel, synchronously. - - The message is generated by applying buildMessage to a new reply channel - to be incorporated into the message. The receiving agent must process this - message and invoke the Reply method on this reply channel precisely once. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - The reply from the agent. - - - Posts a message to an agent and await a reply on the channel, asynchronously. - - The message is generated by applying buildMessage to a new reply channel - to be incorporated into the message. The receiving agent must process this - message and invoke the Reply method on this reply channel precisely once. - The function to incorporate the AsyncReplyChannel into - the message to be sent. - An optional timeout parameter (in milliseconds) to wait for a reply message. - Defaults to -1 which corresponds to System.Threading.Timeout.Infinite. - An asychronous computation that will wait for the reply from the agent. - - - Posts a message to the message queue of the MailboxProcessor, asynchronously. - The message to post. - - - Creates an agent. The body function is used to generate the asynchronous - computation executed by the agent. This function is not executed until - Start is called. - The function to produce an asynchronous computation that will be executed - as the read loop for the MailboxProcessor when Start is called. - An optional cancellation token for the body. - Defaults to Async.DefaultCancellationToken. - The created MailboxProcessor. - - - A message-processing agent which executes an asynchronous computation. - - The agent encapsulates a message queue that supports multiple-writers and - a single reader agent. Writers send messages to the agent by using the Post - method and its variations. - - The agent may wait for messages using the Receive or TryReceive methods or - scan through all available messages using the Scan or TryScan method. - - - Connects a listener function to the observable. The listener will - be invoked for each observation. The listener can be removed by - calling Dispose on the returned IDisposable object. - The function to be called for each observation. - An object that will remove the listener if disposed. - - - Permanently connects a listener function to the observable. The listener will - be invoked for each observation. - The function to be called for each observation. - - - Returns an asynchronous computation that will write the given bytes to the stream. - The buffer to write from. - An optional offset as a number of bytes in the stream. - An optional number of bytes to write to the stream. - An asynchronous computation that will write the given bytes to the stream. - Thrown when the sum of offset and count is longer than - the buffer length. - Thrown when offset or count is negative. - - - Returns an asynchronous computation that will read the given number of bytes from the stream. - The number of bytes to read. - An asynchronous computation that returns the read byte[] when run. - - - Returns an asynchronous computation that will read from the stream into the given buffer. - The buffer to read into. - An optional offset as a number of bytes in the stream. - An optional number of bytes to read from the stream. - An asynchronous computation that will read from the stream into the given buffer. - Thrown when the sum of offset and count is longer than - the buffer length. - Thrown when offset or count is negative. - - - A module of extension members providing asynchronous operations for some basic CLI types related to concurrency and I/O. - - - Returns a new event that triggers on the second and subsequent triggerings of the input event. - The Nth triggering of the input event passes the arguments from the N-1th and Nth triggering as - a pair. The argument passed to the N-1th triggering is held in hidden internal state until the - Nth triggering occurs. - The input event. - An event that triggers on pairs of consecutive values passed from the source event. - - - Runs the given function each time the given event is triggered. - The function to call when the event is triggered. - The input event. - - - Returns a new event consisting of the results of applying the given accumulating function - to successive values triggered on the input event. An item of internal state - records the current value of the state parameter. The internal state is not locked during the - execution of the accumulation function, so care should be taken that the - input IEvent not triggered by multiple threads simultaneously. - The function to update the state with each event value. - The initial state. - The input event. - An event that fires on the updated state values. - - - Returns a new event which fires on a selection of messages from the original event. - The selection function takes an original message to an optional new message. - The function to select and transform event values to pass on. - The input event. - An event that fires only when the chooser returns Some. - - - Returns a new event that listens to the original event and triggers the - first resulting event if the application of the function to the event arguments - returned a Choice1Of2, and the second event if it returns a Choice2Of2. - The function to transform event values into one of two types. - The input event. - A tuple of events. The first fires whenever splitter evaluates to Choice1of1 and - the second fires whenever splitter evaluates to Choice2of2. - - - Returns a new event that listens to the original event and triggers the - first resulting event if the application of the predicate to the event arguments - returned true, and the second event if it returned false. - The function to determine which output event to trigger. - The input event. - A tuple of events. The first is triggered when the predicate evaluates to true - and the second when the predicate evaluates to false. - - - Returns a new event that listens to the original event and triggers the resulting - event only when the argument to the event passes the given function. - The function to determine which triggers from the event to propagate. - The input event. - An event that only passes values that pass the predicate. - - - Returns a new event that passes values transformed by the given function. - The function to transform event values. - The input event. - An event that passes the transformed values. - - - Fires the output event when either of the input events fire. - The first input event. - The second input event. - An event that fires when either of the input events fire. - - - Forces the execution of this value and return its result. Same as Value. Mutual exclusion is used to - prevent other threads also computing the value. - The value of the Lazy object. - - - Creates a lazy computation that evaluates to the given value when forced. - The input value. - The created Lazy object. - - - Creates a lazy computation that evaluates to the result of the given function when forced. - The function to provide the value when needed. - The created Lazy object. - - - Extensions related to Lazy values. - - - Returns a new observable that triggers on the second and subsequent triggerings of the input observable. - The Nth triggering of the input observable passes the arguments from the N-1th and Nth triggering as - a pair. The argument passed to the N-1th triggering is held in hidden internal state until the - Nth triggering occurs. - - For each observer, the registered intermediate observing object is not thread safe. - That is, observations arising from the source must not be triggered concurrently - on different threads. - The input Observable. - An Observable that triggers on successive pairs of observations from the input Observable. - - - Creates an observer which subscribes to the given observable and which calls - the given function for each observation. - The function to be called on each observation. - The input Observable. - An object that will remove the callback if disposed. - - - Creates an observer which permanently subscribes to the given observable and which calls - the given function for each observation. - The function to be called on each observation. - The input Observable. - - - Returns an observable which, for each observer, allocates an item of state - and applies the given accumulating function to successive values arising from - the input. The returned object will trigger observations for each computed - state value, excluding the initial value. The returned object propagates - all errors arising from the source and completes when the source completes. - - For each observer, the registered intermediate observing object is not thread safe. - That is, observations arising from the source must not be triggered concurrently - on different threads. - The function to update the state with each observation. - The initial state. - The input Observable. - An Observable that triggers on the updated state values. - - - Returns an observable which chooses a projection of observations from the source - using the given function. The returned object will trigger observations x - for which the splitter returns Some x. The returned object also propagates - all errors arising from the source and completes when the source completes. - The function that returns Some for observations to be propagated - and None for observations to ignore. - The input Observable. - An Observable that only propagates some of the observations from the source. - - - Returns two observables which split the observations of the source by the - given function. The first will trigger observations x for which the - splitter returns Choice1Of2 x. The second will trigger observations - y for which the splitter returns Choice2Of2 y The splitter is - executed once for each subscribed observer. Both also propagate error - observations arising from the source and each completes when the source - completes. - The function that takes an observation an transforms - it into one of the two output Choice types. - The input Observable. - A tuple of Observables. The first triggers when splitter returns Choice1of2 - and the second triggers when splitter returns Choice2of2. - - - Returns two observables which partition the observations of the source by - the given function. The first will trigger observations for those values - for which the predicate returns true. The second will trigger observations - for those values where the predicate returns false. The predicate is - executed once for each subscribed observer. Both also propagate all error - observations arising from the source and each completes when the source - completes. - The function to determine which output Observable will trigger - a particular observation. - The input Observable. - A tuple of Observables. The first triggers when the predicate returns true, and - the second triggers when the predicate returns false. - - - Returns an observable which filters the observations of the source - by the given function. The observable will see only those observations - for which the predicate returns true. The predicate is executed once for - each subscribed observer. The returned object also propagates error - observations arising from the source and completes when the source completes. - The function to apply to observations to determine if it should - be kept. - The input Observable. - An Observable that filters observations based on filter. - - - Returns an observable which transforms the observations of the source by the - given function. The transformation function is executed once for each - subscribed observer. The returned object also propagates error observations - arising from the source and completes when the source completes. - The function applied to observations from the source. - The input Observable. - An Observable of the type specified by mapping. - - - Returns an observable for the merged observations from the sources. - The returned object propagates success and error values arising - from either source and completes when both the sources have completed. - - For each observer, the registered intermediate observing object is not - thread safe. That is, observations arising from the sources must not - be triggered concurrently on different threads. - The first Observable. - The second Observable. - An Observable that propagates information from both sources. - - - Basic operations on first class event and other observable objects. - - - Returns an asynchronous computation that, when run, will wait for the download of the given URI to specified file. - The URI to retrieve. - The filename to save download to. - An asynchronous computation that will wait for the download of the URI to specified file. - - - Returns an asynchronous computation that, when run, will wait for the download of the given URI. - The URI to retrieve. - An asynchronous computation that will wait for the download of the URI. - - - Returns an asynchronous computation that, when run, will wait for the download of the given URI. - The URI to retrieve. - An asynchronous computation that will wait for the download of the URI. - - - Returns an asynchronous computation that, when run, will wait for a response to the given WebRequest. - An asynchronous computation that waits for response to the WebRequest. - - - A module of extension members providing asynchronous operations for some basic Web operations. - - - Creates an instance of the attribute - AbstractClassAttribute - - - Adding this attribute to class definition makes it abstract, which means it need not - implement all its methods. Instances of abstract classes may not be constructed directly. - - - The value of the attribute, indicating whether the type allows the null literal or not - - - Creates an instance of the attribute with the specified value - AllowNullLiteralAttribute - - - Creates an instance of the attribute - AllowNullLiteralAttribute - - - Adding this attribute to a type lets the 'null' literal be used for the type - within F# code. This attribute may only be added to F#-defined class or - interface types. - - - Indicates the namespace or module to be automatically opened when an assembly is referenced - or an enclosing module opened. - - - Creates an attribute used to mark a namespace or module path to be 'automatically opened' when an assembly is referenced - The namespace or module to be automatically opened when an assembly is referenced - or an enclosing module opened. - AutoOpenAttribute - - - Creates an attribute used to mark a module as 'automatically opened' when the enclosing namespace is opened - AutoOpenAttribute - - - This attribute is used for two purposes. When applied to an assembly, it must be given a string - argument, and this argument must indicate a valid module or namespace in that assembly. Source - code files compiled with a reference to this assembly are processed in an environment - where the given path is automatically opened. - - When applied to a module within an assembly, then the attribute must not be given any arguments. - When the enclosing namespace is opened in user source code, the module is also implicitly opened. - - - The value of the attribute, indicating whether the type is automatically marked serializable or not - - - Creates an instance of the attribute - Indicates whether the type should be serializable by default. - AutoSerializableAttribute - - - Adding this attribute to a type with value 'false' disables the behaviour where F# makes the - type Serializable by default. - - - Creates an instance of the attribute - CLIEventAttribute - - - Adding this attribute to a property with event type causes it to be compiled with as a CLI - metadata event, through a syntactic translation to a pair of 'add_EventName' and - 'remove_EventName' methods. - - - Creates an instance of the attribute - CLIMutableAttribute - - - Adding this attribute to a record type causes it to be compiled to a CLI representation - with a default constructor with property getters and setters. - - - Choice 2 of 2 choices - - - Choice 1 of 2 choices - - - Helper types for active patterns with 2 choices. - - - Choice 3 of 3 choices - - - Choice 2 of 3 choices - - - Choice 1 of 3 choices - - - Helper types for active patterns with 3 choices. - - - Choice 4 of 4 choices - - - Choice 3 of 4 choices - - - Choice 2 of 4 choices - - - Choice 1 of 4 choices - - - Helper types for active patterns with 4 choices. - - - Choice 5 of 5 choices - - - Choice 4 of 5 choices - - - Choice 3 of 5 choices - - - Choice 2 of 5 choices - - - Choice 1 of 5 choices - - - Helper types for active patterns with 5 choices. - - - Choice 6 of 6 choices - - - Choice 5 of 6 choices - - - Choice 4 of 6 choices - - - Choice 3 of 6 choices - - - Choice 2 of 6 choices - - - Choice 1 of 6 choices - - - Helper types for active patterns with 6 choices. - - - Choice 7 of 7 choices - - - Choice 6 of 7 choices - - - Choice 5 of 7 choices - - - Choice 4 of 7 choices - - - Choice 3 of 7 choices - - - Choice 2 of 7 choices - - - Choice 1 of 7 choices - - - Helper types for active patterns with 7 choices. - - - Creates an instance of the attribute - ClassAttribute - - - Adding this attribute to a type causes it to be represented using a CLI class. - - - Creates an instance of the attribute - ComparisonConditionalOnAttribute - - - This attribute is used to indicate a generic container type satisfies the F# 'comparison' - constraint only if a generic argument also satisfies this constraint. For example, adding - this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports - comparison if the type X also supports comparison and all other conditions for C<X> to support - comparison are also met. The type C<'T> can still be used with other type arguments, but a type such - as C<(int -> int)> will not support comparison because the type (int -> int) is an F# function type - and does not support comparison. - - This attribute will be ignored if it is used on the generic parameters of functions or methods. - - - Indicates the number of arguments in each argument group - - - Creates an instance of the attribute - Indicates the number of arguments in each argument group. - CompilationArgumentCountsAttribute - - - This attribute is generated automatically by the F# compiler to tag functions and members - that accept a partial application of some of their arguments and return a residual function - - - Indicates the variant number of the entity, if any, in a linear sequence of elements with F# source code - - - Indicates the type definitions needed to resolve the source construct - - - Indicates the relationship between the compiled entity and F# source code - - - Indicates the sequence number of the entity, if any, in a linear sequence of elements with F# source code - - - Indicates the resource the source construct relates to - - - Creates an instance of the attribute - Indicates the type definitions needed to resolve the source construct. - CompilationMappingAttribute - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - Creates an instance of the attribute - Indicates the type of source construct. - CompilationMappingAttribute - - - This attribute is inserted automatically by the F# compiler to tag types - and methods in the generated CLI code with flags indicating the correspondence - with original source constructs. It is used by the functions in the - Microsoft.FSharp.Reflection namespace to reverse-map compiled constructs to - their original forms. It is not intended for use from user code. - - - Indicates one or more adjustments to the compiled representation of an F# type or member - - - Creates an instance of the attribute - Indicates adjustments to the compiled representation of the type or member. - CompilationRepresentationAttribute - - - This attribute is used to adjust the runtime representation for a type. - For example, it may be used to note that the null representation - may be used for a type. This affects how some constructs are compiled. - - - Compile a property as a CLI event. - - - Permit the use of null as a representation for nullary discriminators in a discriminated union. - - - append 'Module' to the end of a module whose name clashes with a type name in the same namespace. - - - Compile a member as 'instance' even if null is used as a representation for this type. - - - Compile an instance member as 'static' . - - - No special compilation representation. - - - Indicates one or more adjustments to the compiled representation of an F# type or member. - - - Indicates the name of the entity in F# source code - - - Creates an instance of the attribute - The name of the method in source. - CompilationSourceNameAttribute - - - This attribute is inserted automatically by the F# compiler to tag - methods which are given the 'CompiledName' attribute. It is not intended - for use from user code. - - - The name of the value as it appears in compiled code - - - Creates an instance of the attribute - The name to use in compiled code. - CompiledNameAttribute - - - Adding this attribute to a value or function definition in an F# module changes the name used - for the value in compiled CLI code. - - - Indicates if the construct should always be hidden in an editing environment. - - - Indicates if the message should indicate a compiler error. Error numbers less than - 10000 are considered reserved for use by the F# compiler and libraries. - - - Indicates the number associated with the message. - - - Indicates the warning message to be emitted when F# source code uses this construct - - - Indicates if the construct should always be hidden in an editing environment. - - - Indicates if the message should indicate a compiler error. Error numbers less than - 10000 are considered reserved for use by the F# compiler and libraries. - - - Creates an instance of the attribute. - - - Indicates that a message should be emitted when F# source code uses this construct. - - - Creates an instance of the attribute - CustomComparisonAttribute - - - Adding this attribute to a type indicates it is a type with a user-defined implementation of comparison. - - - Creates an instance of the attribute - CustomEqualityAttribute - - - Adding this attribute to a type indicates it is a type with a user-defined implementation of equality. - - - Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation - - - Indicates if the custom operation maintains the variable space of the query of computation expression - - - Indicates the name used for the 'on' part of the custom query operator for join-like operators - - - Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs - - - Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint - - - Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group - - - Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation - - - Get the name of the custom operation when used in a query or other computation expression - - - Indicates if the custom operation maintains the variable space of the query of computation expression through the use of a bind operation - - - Indicates if the custom operation maintains the variable space of the query of computation expression - - - Indicates the name used for the 'on' part of the custom query operator for join-like operators - - - Indicates if the custom operation is an operation similar to a zip in a sequence computation, supporting two inputs - - - Indicates if the custom operation is an operation similar to a join in a sequence computation, supporting two inputs and a correlation constraint - - - Indicates if the custom operation is an operation similar to a group join in a sequence computation, supporting two inputs and a correlation constraint, and generating a group - - - Indicates if the custom operation supports the use of 'into' immediately after the use of the operation in a query or other computation expression to consume the results of the operation - - - Creates an instance of the attribute - CustomOperationAttribute - - - - Indicates that a member on a computation builder type is a custom query operator, - and indicates the name of that operator. - - - - The value of the attribute, indicating whether the type has a default augmentation or not - - - Creates an instance of the attribute - Indicates whether to generate helper members on the CLI class representing a discriminated - union. - DefaultAugmentationAttribute - - - Adding this attribute to a discriminated union with value false - turns off the generation of standard helper member tester, constructor - and accessor members for the generated CLI class for that type. - - - Indicates if a constraint is asserted that the field type supports 'null' - - - Creates an instance of the attribute - Indicates whether to assert that the field type supports null. - DefaultValueAttribute - - - Creates an instance of the attribute - DefaultValueAttribute - - - Adding this attribute to a field declaration means that the field is - not initialized. During type checking a constraint is asserted that the field type supports 'null'. - If the 'check' value is false then the constraint is not asserted. - - - Creates an instance of the attribute - EntryPointAttribute - - - Adding this attribute to a function indicates it is the entrypoint for an application. - If this attribute is not specified for an EXE then the initialization implicit in the - module bindings in the last file in the compilation sequence are used as the entrypoint. - - - Creates an instance of the attribute - EqualityConditionalOnAttribute - - - This attribute is used to indicate a generic container type satisfies the F# 'equality' - constraint only if a generic argument also satisfies this constraint. For example, adding - this attribute to parameter 'T on a type definition C<'T> means that a type C<X> only supports - equality if the type X also supports equality and all other conditions for C<X> to support - equality are also met. The type C<'T> can still be used with other type arguments, but a type such - as C<(int -> int)> will not support equality because the type (int -> int) is an F# function type - and does not support equality. - - This attribute will be ignored if it is used on the generic parameters of functions or methods. - - - Indicates the warning message to be emitted when F# source code uses this construct - - - Creates an instance of the attribute - The warning message to be emitted when code uses this construct. - ExperimentalAttribute - - - This attribute is used to tag values that are part of an experimental library - feature. - - - Convert an value of type System.Converter to a F# first class function value - The input System.Converter. - An F# function of the same type. - - - Convert an F# first class function value to a value of type System.Converter - The input function. - A System.Converter of the function type. - - - Convert an F# first class function value to a value of type System.Converter - The input function. - System.Converter<'T,'U> - - - Invoke an F# first class function value with two curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The function result. - - - Invoke an F# first class function value with three curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The function result. - - - Invoke an F# first class function value with four curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The fourth arg. - The function result. - - - Invoke an F# first class function value with five curried arguments. In some cases this - will result in a more efficient application than applying the arguments successively. - The input function. - The first arg. - The second arg. - The third arg. - The fourth arg. - The fifth arg. - The function result. - - - Invoke an F# first class function value with one argument - - 'U - - - Convert an value of type System.Converter to a F# first class function value - The input System.Converter. - An F# function of the same type. - - - Construct an instance of an F# first class function value - The created F# function. - - - The CLI type used to represent F# function values. This type is not - typically used directly, though may be used from other CLI languages. - - - The release number of the F# version associated with the attribute - - - The minor version number of the F# version associated with the attribute - - - The major version number of the F# version associated with the attribute - - - Creates an instance of the attribute - The major version number. - The minor version number. - The release number. - FSharpInterfaceDataVersionAttribute - - - This attribute is added to generated assemblies to indicate the - version of the data schema used to encode additional F# - specific information in the resource attached to compiled F# libraries. - - - Specialize the type function at a given type - The specialized type. - - - Construct an instance of an F# first class type function value - FSharpTypeFunc - - - The CLI type used to represent F# first-class type function values. This type is for use - by compiled F# code. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - Tuple of values generated by scan or match. - - - Convert the given Converter delegate object to an F# function value - The input Converter. - The F# function. - - - Convert the given Action delegate object to an F# function value - The input action. - The F# function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - A utility function to convert function values from tupled to curried form - The input tupled function. - The output curried function. - - - Helper functions for converting F# first class function values to and from CLI representaions - of functions using delegates. - - - Creates an instance of the attribute - GeneralizableValueAttribute - - - Adding this attribute to a non-function value with generic parameters indicates that - uses of the construct can give rise to generic code through type inference. - - - Creates an instance of the attribute - InterfaceAttribute - - - Adding this attribute to a type causes it to be represented using a CLI interface. - - - Creates an instance of the attribute - LiteralAttribute - - - Adding this attribute to a value causes it to be compiled as a CLI constant literal. - - - Creates an instance of the attribute - MeasureAnnotatedAbbreviationAttribute - - - Adding this attribute to a type causes it to be interpreted as a refined type, currently limited to measure-parameterized types. - This may only be used under very limited conditions. - - - Creates an instance of the attribute - MeasureAttribute - - - Adding this attribute to a type causes it to be interpreted as a unit of measure. - This may only be used under very limited conditions. - - - Creates an instance of the attribute - NoComparisonAttribute - - - Adding this attribute to a type indicates it is a type where comparison is an abnormal operation. - This means that the type does not satisfy the F# 'comparison' constraint. Within the bounds of the - F# type system, this helps ensure that the F# generic comparison function is not instantiated directly - at this type. The attribute and checking does not constrain the use of comparison with base or child - types of this type. - - - Creates an instance of the attribute - NoDynamicInvocationAttribute - - - This attribute is used to tag values that may not be dynamically invoked at runtime. This is - typically added to inlined functions whose implementations include unverifiable code. It - causes the method body emitted for the inlined function to raise an exception if - dynamically invoked, rather than including the unverifiable code in the generated - assembly. - - - Creates an instance of the attribute - NoEqualityAttribute - - - Adding this attribute to a type indicates it is a type where equality is an abnormal operation. - This means that the type does not satisfy the F# 'equality' constraint. Within the bounds of the - F# type system, this helps ensure that the F# generic equality function is not instantiated directly - at this type. The attribute and checking does not constrain the use of comparison with base or child - types of this type. - - - The representation of "Value of type 'T" - The input value. - An option representing the value. - - - The representation of "No value" - - - Get the value of a 'Some' option. A NullReferenceException is raised if the option is 'None'. - - - Create an option value that is a 'None' value. - - - Return 'true' if the option is a 'Some' value. - - - Return 'true' if the option is a 'None' value. - - - Create an option value that is a 'Some' value. - The input value - An option representing the value. - - - The type of optional values. When used from other CLI languages the - empty option is the null value. - - Use the constructors Some and None to create values of this type. - Use the values in the Option module to manipulate values of this type, - or pattern match against the values directly. - - None values will appear as the value null to other CLI languages. - Instance methods on this type will appear as static methods to other CLI languages - due to the use of null as a value representation. - - - Creates an instance of the attribute - OptionalArgumentAttribute - - - This attribute is added automatically for all optional arguments. - - - The raw text of the format string. - - - Construct a format string - The input string. - The PrintfFormat containing the formatted result. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - - - Construct a format string - The input string. - The created format string. - - - Type of a formatting expression. - Function type generated by printf. - Type argument passed to %a formatters - Value generated by the overall printf action (e.g. sprint generates a string) - Value generated after post processing (e.g. failwithf generates a string internally then raises an exception) - Tuple of values generated by scan or match. - - - Creates an instance of the attribute - ProjectionParameterAttribute - - - Indicates that, when a custom operator is used in a computation expression, - a parameter is automatically parameterized by the variable space of the computation expression - - - - The current value of the reference cell - - - - The current value of the reference cell - - - The current value of the reference cell - - - The type of mutable references. Use the functions [:=] and [!] to get and - set values of this type. - - - Creates an instance of the attribute - ReferenceEqualityAttribute - - - Adding this attribute to a record or union type disables the automatic generation - of overrides for 'System.Object.Equals(obj)', 'System.Object.GetHashCode()' - and 'System.IComparable' for the type. The type will by default use reference equality. - - - The value of the attribute, indicating whether to include the evaluated value of the definition as the outer node of the quotation - - - Creates an instance of the attribute - Indicates whether to include the evaluated value of the definition as the outer node of the quotation - ReflectedDefinitionAttribute - - - Creates an instance of the attribute - ReflectedDefinitionAttribute - - - Adding this attribute to the let-binding for the definition of a top-level - value makes the quotation expression that implements the value available - for use at runtime. - - - Creates an instance of the attribute - RequireQualifiedAccessAttribute - - - This attribute is used to indicate that references to the elements of a module, record or union - type require explicit qualified access. - - - Creates an instance of the attribute - RequiresExplicitTypeArgumentsAttribute - - - Adding this attribute to a type, value or member requires that - uses of the construct must explicitly instantiate any generic type parameters. - - - The value of the attribute, indicating whether the type is sealed or not. - - - Creates an instance of the attribute - Indicates whether the class is sealed. - SealedAttribute - - - Creates an instance of the attribute. - The created attribute. - - - Adding this attribute to class definition makes it sealed, which means it may not - be extended or implemented. - - - Indicates that the compiled entity had private or internal representation in F# source code. - - - The mask of values related to the kind of the compiled entity. - - - Indicates that the compiled entity is part of the representation of an F# value declaration. - - - Indicates that the compiled entity is part of the representation of an F# union case declaration. - - - Indicates that the compiled entity is part of the representation of an F# module declaration. - - - Indicates that the compiled entity is part of the representation of an F# closure. - - - Indicates that the compiled entity is part of the representation of an F# exception declaration. - - - Indicates that the compiled entity is part of the representation of an F# record or union case field declaration. - - - Indicates that the compiled entity is part of the representation of an F# class or other object type declaration. - - - Indicates that the compiled entity is part of the representation of an F# record type declaration. - - - Indicates that the compiled entity is part of the representation of an F# union type declaration. - - - Indicates that the compiled entity has no relationship to an element in F# source code. - - - Indicates the relationship between a compiled entity in a CLI binary and an element in F# source code. - - - Creates an instance of the attribute - StructAttribute - - - Adding this attribute to a type causes it to be represented using a CLI struct. - - - Creates an instance of the attribute - StructuralComparisonAttribute - - - Adding this attribute to a record, union, exception, or struct type confirms the - automatic generation of implementations for 'System.IComparable' for the type. - - - Creates an instance of the attribute - StructuralEqualityAttribute - - - Adding this attribute to a record, union or struct type confirms the automatic - generation of overrides for 'System.Object.Equals(obj)' and - 'System.Object.GetHashCode()' for the type. - - - Indicates the text to display by default when objects of this type are displayed - using '%A' printf formatting patterns and other two-dimensional text-based display - layouts. - - - Creates an instance of the attribute - Indicates the text to display when using the '%A' printf formatting. - StructuredFormatDisplayAttribute - - - This attribute is used to mark how a type is displayed by default when using - '%A' printf formatting patterns and other two-dimensional text-based display layouts. - In this version of F# valid values are of the form PreText {PropertyName1} PostText {PropertyName2} ... {PropertyNameX} PostText. - The property names indicate properties to evaluate and to display instead of the object itself. - - - The type 'unit', which has only one value "()". This value is special and - always uses the representation 'null'. - - - Creates an instance of the attribute - UnverifiableAttribute - - - This attribute is used to tag values whose use will result in the generation - of unverifiable code. These values are inevitably marked 'inline' to ensure that - the unverifiable constructs are not present in the actual code for the F# library, - but are rather copied to the source code of the caller. - - - Creates an instance of the attribute - VolatileFieldAttribute - - - Adding this attribute to an F# mutable binding causes the "volatile" - prefix to be used for all accesses to the field. - - - Thirty-two dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Thirty-one dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Thirty dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-nine dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-eight dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-seven dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-six dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-five dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-four dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-three dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-two dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty-one dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twenty dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Nineteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Eighteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Seventeen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Sixteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Fifteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Fourteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Thirteen dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Twelve dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Eleven dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Ten dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Nine dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Eight dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Seven dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Six dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Five dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - - Four dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - Use the values in the Array4D module - to manipulate values of this type, or the notation arr.[x1,x2,x3,x4] to get and set array - values. - - - Three dimensional arrays, typically zero-based. Non-zero-based arrays - can be created using methods on the System.Array type. - - Use the values in the Array3D module - to manipulate values of this type, or the notation arr.[x1,x2,x3] to get and set array - values. - - - Two dimensional arrays, typically zero-based. - - Use the values in the Array2D module - to manipulate values of this type, or the notation arr.[x,y] to get/set array - values. - - Non-zero-based arrays can also be created using methods on the System.Array type. - - - Single dimensional, zero-based arrays, written int[], string[] etc. - Use the values in the Array module to manipulate values - of this type, or the notation arr.[x] to get/set array - values. - - - Single dimensional, zero-based arrays, written int[], string[] etc. - - Use the values in the Array module to manipulate values - of this type, or the notation arr.[x] to get/set array - values. - - - An abbreviation for the CLI type System.Boolean. - - - Represents a managed pointer in F# code. - - - An abbreviation for the CLI type System.Byte. - - - An abbreviation for the CLI type System.Char. - - - An abbreviation for the CLI type System.Decimal. - - - The type of decimal numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Decimal. - - - An abbreviation for the CLI type System.Double. - - - An abbreviation for the CLI type System.Exception. - - - An abbreviation for the CLI type System.Double. - - - An abbreviation for the CLI type System.Single. - - - The type of floating point numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Single. - - - The type of floating point numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Double. - - - This type is for internal use by the F# code generator. - - - An abbreviation for the CLI type System.Int32. - - - An abbreviation for the CLI type System.Int16. - - - The type of 16-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int16. - - - An abbreviation for the CLI type System.Int32. - - - An abbreviation for the CLI type System.Int64. - - - The type of 64-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int64. - - - An abbreviation for the CLI type System.SByte. - - - The type of 32-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.Int32. - - - An abbreviation for the CLI type System.IntPtr. - - - Represents an unmanaged pointer in F# code. - - This type should only be used when writing F# code that interoperates - with native code. Use of this type in F# code may result in - unverifiable code being generated. Conversions to and from the - nativeint type may be required. Values of this type can be generated - by the functions in the NativeInterop.NativePtr module. - - - An abbreviation for the CLI type System.Object. - - - The type of optional values. When used from other CLI languages the - empty option is the null value. - - Use the constructors Some and None to create values of this type. - Use the values in the Option module to manipulate values of this type, - or pattern match against the values directly. - - 'None' values will appear as the value null to other CLI languages. - Instance methods on this type will appear as static methods to other CLI languages - due to the use of null as a value representation. - - - The type of mutable references. Use the functions [:=] and [!] to get and - set values of this type. - - - An abbreviation for the CLI type System.SByte. - - - The type of 8-bit signed integer numbers, annotated with a unit of measure. The unit - of measure is erased in compiled code and when values of this type - are analyzed using reflection. The type is representationally equivalent to - System.SByte. - - - An abbreviation for the CLI type System.Single. - - - An abbreviation for the CLI type System.String. - - - An abbreviation for the CLI type System.UInt16. - - - An abbreviation for the CLI type System.UInt32. - - - An abbreviation for the CLI type System.UInt64. - - - An abbreviation for the CLI type System.Byte. - - - An abbreviation for the CLI type System.UIntPtr. - - - The type 'unit', which has only one value "()". This value is special and - always uses the representation 'null'. - - - Non-exhaustive match failures will raise the MatchFailureException exception - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A new enumerator for the sequence. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A reference to the sequence. - - A 0, 1, and 2 respectively indicate Stop, Yield, and Goto conditions for the sequence generator. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - A new sequence generator for the expression. - - - The F# compiler emits implementations of this type for compiled sequence expressions. - - - - Namespace name the provider injects types into. - - - - - Compilers call this method to query a type provider for a type name. - - Resolver should return a type called name in namespace NamespaceName or null if the type is unknown. - - - - - - The top-level types - - - - - - The sub-namespaces in this namespace. An optional member to prevent generation of namespaces until an outer namespace is explored. - - - - - Represents a namespace provided by a type provider component. - - - - - Triggered when an assumption changes that invalidates the resolutions so far reported by the provider - - - - - Triggered when an assumption changes that invalidates the resolutions so far reported by the provider - - - - - Triggered when an assumption changes that invalidates the resolutions so far reported by the provider - - - - - Get the static parameters for a provided type. - - A type returned by GetTypes or ResolveTypeName - - - - - Namespace name the this TypeProvider injects types into. - - - - - Called by the compiler to ask for an Expression tree to replace the given MethodBase with. - - MethodBase that was given to the compiler by a type returned by a GetType(s) call. - Expressions that represent the parameters to this call. - An expression that the compiler will use in place of the given method base. - - - - Get the physical contents of the given logical provided assembly. - - - - - Apply static arguments to a provided type that accepts static arguments. - - The provider must return a type with the given mangled name. - the provided type definition which has static parameters - the full path of the type, including encoded representations of static parameters - the static parameters, indexed by name - - - - - Represents an instantiation of a type provider component. - - - - - Get the static parameters for a provided method. - - A method returned by GetMethod on a provided type - The static parameters of the provided method, if any - - - - Apply static arguments to a provided method that accepts static arguments. - - The provider must return a provided method with the given mangled name. - the provided method definition which has static parameters - the full name of the method that must be returned, including encoded representations of static parameters - the values of the static parameters, indexed by name - The provided method definition corresponding to the given static parameter values - - - - Represents additional, optional information for a type provider component - - - - Represents the inverse of a measure expressions when returned as a generic argument of a provided type. - - - Represents the '1' measure expression when returned as a generic argument of a provided type. - - - Represents the product of two measure expressions when returned as a generic argument of a provided type. - - - Creates an instance of the attribute - TypeProviderAssemblyAttribute - The name of the design-time assembly for this type provider. - - - Creates an instance of the attribute - TypeProviderAssemblyAttribute - - - Place attribute on runtime assembly to indicate that there is a corresponding design-time - assembly that contains a type provider. Runtime and designer assembly may be the same. - - - Creates an instance of the attribute - TypeProviderAttribute - - - Place on a class that implements ITypeProvider to extend the compiler - - - - Get the full path to use for temporary files for the type provider instance. - - - - - version of referenced system runtime assembly - - - - - Get the full path to referenced assembly that caused this type provider instance to be created. - - - - - Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance. - - - - - Get the referenced assemblies for the type provider instance. - - - - - Indicates if the type provider host responds to invalidation events for type provider instances. - - - - - Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive. - - - - - Get the full path to use for temporary files for the type provider instance. - - - - - version of referenced system runtime assembly - - - - - Get the full path to referenced assembly that caused this type provider instance to be created. - - - - - Get the full path to use to resolve relative paths in any file name arguments given to the type provider instance. - - - - - Get the referenced assemblies for the type provider instance. - - - - - Indicates if the type provider host responds to invalidation events for type provider instances. - - - - - Indicates if the type provider instance is used in an environment which executes provided code such as F# Interactive. - - - - - Checks if given type exists in target system runtime library - - - - - If the class that implements ITypeProvider has a constructor that accepts TypeProviderConfig - then it will be constructed with an instance of TypeProviderConfig. - - - - Creates an instance of the attribute - TypeProviderEditorHideMethodsAttribute - - - Indicates that a code editor should hide all System.Object methods from the intellisense menus for instances of a provided type - - - Additional type attribute flags related to provided types - - - Creates an instance of the attribute - TypeProviderXmlDocAttribute - - - - The TypeProviderXmlDocAttribute attribute can be added to types and members. - The language service will display the CommentText property from the attribute - in the appropriate place when the user hovers over a type or member. - - - - Creates an anonymous event with the given handlers. - - A function to handle adding a delegate for the event to trigger. - A function to handle removing a delegate that the event triggers. - A function to produce the delegate type the event can trigger. - - The initialized event. - - - The F# compiler emits calls to this function to implement the use operator for F# sequence - expressions. - - The resource to be used and disposed. - The input sequence. - - The result sequence. - - - The F# compiler emits calls to this function to implement the compiler-intrinsic - conversions from untyped System.Collections.IEnumerable sequences to typed sequences. - - An initializer function. - A function to iterate and test if end of sequence is reached. - A function to retrieve the current element. - - The resulting typed sequence. - - - The F# compiler emits calls to this function to - implement the try/finally operator for F# sequence expressions. - - The input sequence. - A computation to be included in an enumerator's Dispose method. - - The result sequence. - - - The F# compiler emits calls to this function to - implement the while operator for F# sequence expressions. - - A function that indicates whether iteration should continue. - The input sequence. - - The result sequence. - - - A group of functions used as part of the compiled representation of F# sequence expressions. - - - Builds a query using query syntax and operators. - - - An active pattern to force the execution of values of type Lazy<_>. - - - Special prefix operator for splicing untyped expressions into quotation holes. - - - Special prefix operator for splicing typed expressions into quotation holes. - - - Builds a 2D array from a sequence of sequences of elements. - - - Builds a read-only lookup table from a sequence of key/value pairs. The key objects are indexed using generic hashing and equality. - - - Converts the argument to signed byte. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings. - Otherwise the operation requires and invokes a ToSByte method on the input type. - - - Converts the argument to byte. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type. - - - Converts the argument to 64-bit float. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Double.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToDouble method on the input type. - - - Converts the argument to 32-bit float. - This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Single.Parse() with InvariantCulture settings. Otherwise the operation requires and invokes a ToSingle method on the input type. - - - Builds an aysnchronous workflow using computation expression syntax. - - - Builds a set from a sequence of objects. The objects are indexed using generic comparison. - The input sequence of elements. - The created set. - - - Print to a file using the given format, and add a newline. - The file TextWriter. - The formatter. - The formatted result. - - - Print to a file using the given format. - The file TextWriter. - The formatter. - The formatted result. - - - Print to a string buffer and raise an exception with the given - result. Helper printers must return strings. - The formatter. - The formatted result. - - - Print to a string using the given format. - The formatter. - The formatted result. - - - Print to stderr using the given format, and add a newline. - The formatter. - The formatted result. - - - Print to stderr using the given format. - The formatter. - The formatted result. - - - Print to stdout using the given format, and add a newline. - The formatter. - The formatted result. - - - Print to stdout using the given format. - The formatter. - The formatted result. - - - Converts the argument to signed byte. - This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using SByte.Parse() with InvariantCulture settings. - Otherwise the operation requires and invokes a ToSByte method on the input type. - - - Converts the argument to byte. - This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using Byte.Parse() on strings and otherwise requires a ToByte method on the input type. - - - Divides a value by an integer. - The input value. - The input int. - The division result. - - - Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One' - - - Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero' - - - A compiler intrinsic that implements dynamic invocations for the DivideByInt primitive. - - - A compiler intrinsic that implements dynamic invocations to the checked '*' operator. - - - A compiler intrinsic that implements dynamic invocations to the '*' operator. - - - A compiler intrinsic that implements dynamic invocations to the checked '+' operator. - - - A compiler intrinsic that implements dynamic invocations to the '+' operator. - - - Resolves to the value 'one' for any primitive numeric type or any type with a static member called 'One'. - - - Resolves to the zero value for any primitive numeric type or any type with a static member called 'Zero'. - - - Parse an uint64 according to the rules used by the overloaded 'uint64' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an int64 according to the rules used by the overloaded 'int64' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an uint32 according to the rules used by the overloaded 'uint32' conversion operator when applied to strings - The input string. - The parsed value. - - - Parse an int32 according to the rules used by the overloaded 'int32' conversion operator when applied to strings - The input string. - The parsed value. - - - Creates an sbyte value with units-of-measure - The input sbyte. - The sbyte with units-of-measure. - - - Creates an int16 value with units-of-measure - The input int16. - The int16 with units-of-measure. - - - Creates an int64 value with units-of-measure - The input int64. - The int64 with units of measure. - - - Creates an int32 value with units-of-measure - The input int. - The int with units of measure. - - - Creates a decimal value with units-of-measure - The input decimal. - The decimal with units of measure. - - - Creates a float32 value with units-of-measure - The input float. - The float with units-of-measure. - - - Creates a float value with units-of-measure - The input float. - The float with units-of-measure. - - - Get the underlying value for an enum value - The input enum. - The enumeration as a value. - - - Build an enum value from an underlying value - The input value. - The value as an enumeration. - - - Recursively hash a part of a value according to its structure. - The comparison function. - The input object. - The hashed value. - - - Hash a value according to its structure. Use the given limit to restrict the hash when hashing F# - records, lists and union types. - The limit on the number of nodes. - The input object. - The hashed value. - - - Hash a value according to its structure. This hash is not limited by an overall node count when hashing F# - records, lists and union types. - The input object. - The hashed value. - - - Make an F# comparer object for the given type - - - Make an F# hash/equality object for the given type - - - Make an F# hash/equality object for the given type using node-limited hashing when hashing F# - records, lists and union types. - The input limit on the number of nodes. - System.Collections.Generic.IEqualityComparer<'T> - - - Make an F# hash/equality object for the given type - - - Make an F# comparer object for the given type, where it can be null if System.Collections.Generic.Comparer<'T>.Default - - - Make an F# comparer object for the given type - - - A static F# comparer object - - - Return an F# comparer object suitable for hashing and equality. This hashing behaviour - of the returned comparer is not limited by an overall node count when hashing F# - records, lists and union types. This equality comparer has equivalence - relation semantics ([nan] = [nan]). - - - Return an F# comparer object suitable for hashing and equality. This hashing behaviour - of the returned comparer is not limited by an overall node count when hashing F# - records, lists and union types. - - - The physical hash. Hashes on the object identity, except for value types, - where we hash on the contents. - The input object. - The hashed value. - - - Reference/physical equality. - True if the inputs are reference-equal, false otherwise. - The first value. - The second value. - The result of the comparison. - - - Take the maximum of two values structurally according to the order given by GenericComparison - The first value. - The second value. - The maximum value. - - - Take the minimum of two values structurally according to the order given by GenericComparison - The first value. - The second value. - The minimum value. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values. May be called as a recursive case from an implementation of System.IComparable to - ensure consistent NaN comparison semantics. - The function to compare the values. - The first value. - The second value. - The result of the comparison. - - - Compare two values - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality - - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality using equivalence relation semantics ([nan] = [nan]) - The first value. - The second value. - The result of the comparison. - - - Compare two values for equality using partial equivalence relation semantics ([nan] <> [nan]) - The first value. - The second value. - The result of the comparison. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - A primitive entry point used by the F# compiler for optimization purposes. - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - - The standard overloaded associative (4-indexed) mutation operator - - - - The standard overloaded associative (3-indexed) mutation operator - - - The standard overloaded associative (2-indexed) mutation operator - - - The standard overloaded associative (indexed) mutation operator - - - The standard overloaded associative (4-indexed) lookup operator - - - The standard overloaded associative (3-indexed) lookup operator - - - The standard overloaded associative (2-indexed) lookup operator - - - The standard overloaded associative (indexed) lookup operator - - - A compiler intrinsic for checking initialization soundness of recursive bindings - - - A compiler intrinsic for checking initialization soundness of recursive static bindings - - - A compiler intrinsic for checking initialization soundness of recursive bindings - - - A compiler intrinsic for the efficient compilation of sequence expressions - - - This function implements parsing of decimal constants - - - This function implements calls to default constructors - acccessed by 'new' constraints. - - - Primitive used by pattern match compilation - - - A compiler intrinsic that implements the ':?' operator - - - A compiler intrinsic that implements the ':?' operator - - - A compiler intrinsic that implements the ':?>' operator - - - A compiler intrinsic that implements the ':?>' operator - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - Address-of. Uses of this value may result in the generation of unverifiable code. - The input object. - The unmanaged pointer. - - - Address-of. Uses of this value may result in the generation of unverifiable code. - The input object. - The managed pointer. - - - Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand - The first value. - The second value. - The result of the operation. - - - Binary 'or'. When used as a binary operator the right hand value is evaluated only on demand. - - - Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand - The first value. - The second value. - The result of the operation. - - - Binary 'and'. When used as a binary operator the right hand value is evaluated only on demand. - - - The F# compiler emits calls to some of the functions in this module as part of the compiled form of some language constructs - - - For compiler use only - - - Language primitives associated with the F# language - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - - Provides a default implementations of F# numeric literal syntax for literals fo the form 'dddI' - - - - An active pattern to match values of type System.Collections.Generic.KeyValuePair - The input key/value pair. - A tuple containing the key and value. - - - Converts the argument to character. Numeric inputs are converted according to the UTF-16 - encoding for characters. String inputs must be exactly one character long. For other - input types the operation requires an appropriate static conversion method on the input type. - The input value. - The converted char. - - - Converts the argument to System.Decimal using a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted decimal. - - - Converts the argument to a string using ToString. - - For standard integer and floating point values the ToString conversion - uses CultureInfo.InvariantCulture. - The input value. - The converted string. - - - Converts the argument to unsigned native integer using a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted unativeint - - - Converts the argument to signed native integer. This is a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted nativeint - - - Converts the argument to 64-bit float. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Double.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float - - - Converts the argument to 32-bit float. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Single.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float32 - - - Converts the argument to unsigned 64-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint64 - - - Converts the argument to signed 64-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int64 - - - Converts the argument to unsigned 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint32 - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int32 - - - Converts the argument to a particular enum type. - The input value. - The converted enum type. - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int - - - Converts the argument to unsigned 16-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using UInt16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint16 - - - Converts the argument to signed 16-bit integer. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Int16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int16 - - - Converts the argument to signed byte. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using SByte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to byte. This is a direct conversion for all - primitive numeric types. For strings, the input is converted using Byte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - Overloaded power operator. If n > 0 then equivalent to x*...*x for n occurrences of x. - The input base. - The input exponent. - The base raised to the exponent. - - - Overloaded power operator. - The input base. - The input exponent. - The base raised to the exponent. - - - Overloaded truncate operator. - The input value. - The truncated value. - - - Hyperbolic tangent of the given number - The input value. - The hyperbolic tangent of the input. - - - Tangent of the given number - The input value. - The tangent of the input. - - - Hyperbolic sine of the given number - The input value. - The hyperbolic sine of the input. - - - Sine of the given number - The input value. - The sine of the input. - - - Hyperbolic cosine of the given number - The input value. - The hyperbolic cosine of the input. - - - Cosine of the given number - The input value. - The cosine of the input. - - - Square root of the given number - The input value. - The square root of the input. - - - Logarithm to base 10 of the given number - The input value. - The logarithm to base 10 of the input. - - - Natural logarithm of the given number - The input value. - The natural logarithm of the input. - - - Round the given number - The input value. - The nearest integer to the input value. - - - Sign of the given number - The input value. - -1, 0, or 1 depending on the sign of the input. - - - Floor of the given number - The input value. - The floor of the input. - - - Exponential of the given number - The input value. - The exponential of the input. - - - Ceiling of the given number - The input value. - The ceiling of the input. - - - Inverse tangent of x/y where x and y are specified separately - The y input value. - The x input value. - The inverse tangent of the input ratio. - - - Inverse tangent of the given number - The input value. - The inverse tangent of the input. - - - Inverse sine of the given number - The input value. - The inverse sine of the input. - - - Inverse cosine of the given number - The input value. - The inverse cosine of the input. - - - Absolute value of the given number. - The input value. - The absolute value of the input. - - - A generic hash function. This function has the same behaviour as 'hash', - however the default structural hashing for F# union, record and tuple - types stops when the given limit of nodes is reached. The exact behaviour of - the function can be adjusted on a type-by-type basis by implementing - GetHashCode for each type. - The limit of nodes. - The input object. - The computed hash. - - - A generic hash function, designed to return equal hash values for items that are - equal according to the "=" operator. By default it will use structural hashing - for F# union, record and tuple types, hashing the complete contents of the - type. The exact behaviour of the function can be adjusted on a - type-by-type basis by implementing GetHashCode for each type. - The input object. - The computed hash. - - - Returns the internal size of a type in bytes. For example, sizeof<int> returns 4. - - - Generate a System.Type representation for a type definition. If the - input type is a generic type instantiation then return the - generic type definition associated with all such instantiations. - - - An internal, library-only compiler intrinsic for compile-time - generation of a RuntimeMethodHandle. - - - Generate a System.Type runtime representation of a static type. - - - Clean up resources associated with the input object after the completion of the given function. - Cleanup occurs even when an exception is raised by the protected - code. - The resource to be disposed after action is called. - The action that accepts the resource. - The resulting value. - - - Execute the function as a mutual-exclusion region using the input value as a lock. - The object to be locked. - The action to perform during the lock. - The resulting value. - - - The standard overloaded skip range operator, e.g. [n..skip..m] for lists, seq {n..skip..m} for sequences - The start value of the range. - The step value of the range. - The end value of the range. - The sequence spanning the range using the specified step size. - - - The standard overloaded range operator, e.g. [n..m] for lists, seq {n..m} for sequences - The start value of the range. - The end value of the range. - The sequence spanning the range. - - - Reads the value of the property System.Console.Out. - - - Reads the value of the property System.Console.Error. - - - Reads the value of the property System.Console.In. - - - Equivalent to System.Single.NaN - - - Equivalent to System.Single.PositiveInfinity - - - Equivalent to System.Double.NaN - - - Equivalent to System.Double.PositiveInfinity - - - Exit the current hardware isolated process, if security settings permit, - otherwise raise an exception. Calls System.Environment.Exit. - The exit code to use. - The result value. - - - Builds a sequence using sequence expression syntax - The input sequence. - The result sequence. - - - Negate a logical value. not true equals false and not false equals true - The value to negate. - The result of the negation. - - - Concatenate two lists. - The first list. - The second list. - The concatenation of the lists. - - - Increment a mutable reference cell containing an integer - The reference cell. - - - Decrement a mutable reference cell containing an integer - The reference cell. - - - Dereference a mutable reference cell - The cell to dereference. - The value contained in the cell. - - - Assign to a mutable reference cell - The cell to mutate. - The value to set inside the cell. - - - Create a mutable reference cell - The value to contain in the cell. - The created reference cell. - - - The identity function - The input value. - The same value. - - - Throw a System.InvalidOperationException exception - The exception message. - The result value. - - - Throw a System.ArgumentNullException exception - The argument name. - The result value. - - - Throw a System.ArgumentException exception with - the given argument name and message. - The argument name. - The exception message. - The result value. - - - Throw a System.Exception exception. - The exception message. - The result value. - - - Determines whether the given value is null. - The value to check. - True when value is null, false otherwise. - - - Try to unbox a strongly typed value. - The boxed value. - The unboxed result as an option. - - - Boxes a strongly typed value. - The value to box. - The boxed object. - - - Unboxes a strongly typed value. - The boxed value. - The unboxed result. - - - Ignore the passed value. This is often used to throw away results of a computation. - The value to ignore. - - - Minimum based on generic comparison - The first value. - The second value. - The minimum value. - - - Maximum based on generic comparison - The first value. - The second value. - The maximum value. - - - Generic comparison. - The first value. - The second value. - The result of the comparison. - - - Return the second element of a tuple, snd (a,b) = b. - The input tuple. - The second value. - - - Return the first element of a tuple, fst (a,b) = a. - The input tuple. - The first value. - - - Matches System.Exception objects whose runtime type is precisely System.Exception - The input exception. - A string option. - - - Builds a System.Exception object. - The message for the Exception. - A System.Exception. - - - Rethrows an exception. This should only be used when handling an exception - The result value. - - - Rethrows an exception. This should only be used when handling an exception - The result value. - - - Raises an exception - The exception to raise. - The result value. - - - Concatenate two strings. The operator '+' may also be used. - - - Used to specify a default value for an optional argument in the implementation of a function - An option representing the argument. - The default value of the argument. - The argument value. If it is None, the defaultValue is returned. - - - Apply a function to three values, the values being a triple on the right, the function on the left - The function. - The first argument. - The second argument. - The third argument. - The function result. - - - Apply a function to two values, the values being a pair on the right, the function on the left - The function. - The first argument. - The second argument. - The function result. - - - Apply a function to a value, the value being on the right, the function on the left - The function. - The argument. - The function result. - - - Apply a function to three values, the values being a triple on the left, the function on the right - The first argument. - The second argument. - The third argument. - The function. - The function result. - - - Apply a function to two values, the values being a pair on the left, the function on the right - The first argument. - The second argument. - The function. - The function result. - - - Apply a function to a value, the value being on the left, the function on the right - The argument. - The function. - The function result. - - - Compose two functions, the function on the right being applied first - The second function to apply. - The first function to apply. - The composition of the input functions. - - - Compose two functions, the function on the left being applied first - The first function to apply. - The second function to apply. - The composition of the input functions. - - - Structural inequality - The first parameter. - The second parameter. - The result of the comparison. - - - Structural equality - The first parameter. - The second parameter. - The result of the comparison. - - - Structural less-than-or-equal comparison - The first parameter. - The second parameter. - The result of the comparison. - - - Structural greater-than-or-equal - The first parameter. - The second parameter. - The result of the comparison. - - - Structural greater-than - The first parameter. - The second parameter. - The result of the comparison. - - - Structural less-than comparison - The first parameter. - The second parameter. - The result of the comparison. - - - Overloaded prefix-plus operator - The input value. - The result of the operation. - - - Overloaded bitwise-NOT operator - The input value. - The result of the operation. - - - Overloaded byte-shift right operator by a specified number of bits - The input value. - The amount to shift. - The result of the operation. - - - Overloaded byte-shift left operator by a specified number of bits - The input value. - The amount to shift. - The result of the operation. - - - Overloaded bitwise-XOR operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded bitwise-OR operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded bitwise-AND operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded modulo operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded division operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded multiplication operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded subtraction operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded addition operator - The first parameter. - The second parameter. - The result of the operation. - - - Overloaded unary negation. - The value to negate. - The result of the operation. - - - Converts the argument to char. Numeric inputs are converted using a checked - conversion according to the UTF-16 encoding for characters. String inputs must - be exactly one character long. For other input types the operation requires an - appropriate static conversion method on the input type. - The input value. - The converted char - - - Converts the argument to unativeint. This is a direct, checked conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted unativeint - - - Converts the argument to nativeint. This is a direct, checked conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted nativeint - - - Converts the argument to uint64. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint64 - - - Converts the argument to int64. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int64.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int64 - - - Converts the argument to uint32. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint32 - - - Converts the argument to int32. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int32 - - - Converts the argument to int. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int32.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int - - - Converts the argument to uint16. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.UInt16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint16 - - - Converts the argument to int16. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Int16.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int16 - - - Converts the argument to sbyte. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.SByte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to byte. This is a direct, checked conversion for all - primitive numeric types. For strings, the input is converted using System.Byte.Parse() - with InvariantCulture settings. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - Overloaded multiplication operator (checks for overflow) - The first value. - The second value. - The product of the two input values. - - - Overloaded addition operator (checks for overflow) - The first value. - The second value. - The sum of the two input values. - - - Overloaded subtraction operator (checks for overflow) - The first value. - The second value. - The first value minus the second value. - - - Overloaded unary negation (checks for overflow) - The input value. - The negated value. - - - This module contains the basic arithmetic operations with overflow checks. - - - Calls GetHashCode() on the value - The value. - The hash code. - - - Minimum of the two values - The first value. - The second value. - The minimum value. - - - Maximum of the two values - The first value. - The second value. - The maximum value. - - - Compares the two values - The first value. - The second value. - The result of the comparison. - - - Compares the two values for inequality - The first parameter. - The second parameter. - The result of the comparison. - - - Compares the two values for equality - The first parameter. - The second parameter. - The result of the comparison. - - - Compares the two values for less-than-or-equal - The first parameter. - The second parameter. - The result of the comparison. - - - Compares the two values for greater-than-or-equal - The first parameter. - The second parameter. - The result of the comparison. - - - Compares the two values for greater-than - The first parameter. - The second parameter. - The result of the comparison. - - - Compares the two values for less-than - The first parameter. - The second parameter. - The result of the comparison. - - - A module of comparison and equality operators that are statically resolved, but which are not fully generic and do not make structural comparison. Opening this - module may make code that relies on structural or generic comparison no longer compile. - - - Perform generic hashing on a value where the type of the value is not - statically required to satisfy the 'equality' constraint. - The computed hash value. - - - Perform generic equality on two values where the type of the values is not - statically required to satisfy the 'equality' constraint. - The result of the comparison. - - - Perform generic comparison on two values where the type of the values is not - statically required to have the 'comparison' constraint. - The result of the comparison. - - - Generate a default value for any type. This is null for reference types, - For structs, this is struct value where all fields have the default value. - This function is unsafe in the sense that some F# values do not have proper null values. - - - Unboxes a strongly typed value. This is the inverse of box, unbox<t>(box<t> a) equals a. - The boxed value. - The unboxed result. - - - This module contains basic operations which do not apply runtime and/or static checks - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'decimal' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'float32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'unativeint' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'nativeint' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint64' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int64' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int32' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'uint16' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'int16' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'sbyte' - - - This is a library intrinsic. Calls to this function may be generated by uses of the generic 'pown' operator on values of type 'byte' - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - This is a library intrinsic. Calls to this function may be generated by evaluating quotations. - - - Generate a range of values using the given zero, add, start, step and stop values - - - Generate a range of values using the given zero, add, start, step and stop values - - - Generate a range of char values - - - Generate a range of byte values - - - Generate a range of sbyte values - - - Generate a range of uint16 values - - - Generate a range of int16 values - - - Generate a range of unativeint values - - - Generate a range of nativeint values - - - Generate a range of uint32 values - - - Generate a range of uint64 values - - - Generate a range of int64 values - - - Generate a range of float32 values - - - Generate a range of float values - - - Generate a range of integers - - - Gets a slice from a string - The source string. - The index of the first character of the slice. - The index of the last character of the slice. - The substring from the given indices. - - - Sets a slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The start index of the fourth dimension. - The end index of the fourth dimension. - The source array. - - - Gets a slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The start index of the fourth dimension. - The end index of the fourth dimension. - The four dimensional sub array from the given indices. - - - Sets a slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The source array. - - - Gets a slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The start index of the third dimension. - The end index of the third dimension. - The three dimensional sub array from the given indices. - - - Sets a vector slice of a 2D array. The index of the second dimension is fixed. - The target array. - The start index of the first dimension. - The end index of the first dimension. - The index of the second dimension. - The source array. - - - Sets a vector slice of a 2D array. The index of the first dimension is fixed. - The target array. - The index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The source array. - - - Sets a region slice of an array - The target array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The source array. - - - Gets a vector slice of a 2D array. The index of the second dimension is fixed. - The source array. - The start index of the first dimension. - The end index of the first dimension. - The fixed index of the second dimension. - The sub array from the input indices. - - - Gets a vector slice of a 2D array. The index of the first dimension is fixed. - The source array. - The index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The sub array from the input indices. - - - Gets a region slice of an array - The source array. - The start index of the first dimension. - The end index of the first dimension. - The start index of the second dimension. - The end index of the second dimension. - The two dimensional sub array from the input indices. - - - Sets a slice of an array - The target array. - The start index. - The end index. - The source array. - - - Gets a slice of an array - The input array. - The start index. - The end index. - The sub array from the input indices. - - - A module of compiler intrinsic functions for efficient implementations of F# integer ranges - and dynamic invocations of other F# operators - - - Basic F# Operators. This module is automatically opened in all F# code. - - - Invoke an F# first class function value that accepts five curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The fourth arg. - The fifth arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept five curried arguments without intervening execution. - The input function. - The optimized function. - - - Construct an optimized function value that can accept five curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept five curried arguments - without intervening execution. This type should not typically used directly from - either F# code or from other CLI languages. - - - Invoke an F# first class function value that accepts four curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The fourth arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept four curried arguments without intervening execution. - The input function. - The optimized function. - - - Construct an optimized function value that can accept four curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept four curried arguments - without intervening execution. This type should not typically used directly from - either F# code or from other CLI languages. - - - Invoke an F# first class function value that accepts three curried arguments - without intervening execution - The first arg. - The second arg. - The third arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept three curried arguments without intervening execution. - The input function. - The adapted function. - - - Construct an optimized function value that can accept three curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept - three iterated (curried) arguments without intervening execution. This type should not - typically used directly from either F# code or from other CLI languages. - - - Invoke the optimized function value with two curried arguments - The first arg. - The second arg. - The function result. - - - Adapt an F# first class function value to be an optimized function value that can - accept two curried arguments without intervening execution. - The input function. - The adapted function. - - - Construct an optimized function value that can accept two curried - arguments without intervening execution. - The optimized function. - - - The CLI type used to represent F# function values that accept - two iterated (curried) arguments without intervening execution. This type should not - typically used directly from either F# code or from other CLI languages. - - - An implementation module used to hold some private implementations of function - value invocation. - - - Convert an option to a potentially null value. - The input value. - The result value, which is null if the input was None. - - - Convert a potentially null value to an option. - The input value. - The result option. - - - Convert a Nullable value to an option. - The input nullable value. - The result option. - - - Convert the option to a Nullable value. - The input option. - The result value. - - - Convert the option to a list of length 0 or 1. - The input option. - The result list. - - - Convert the option to an array of length 0 or 1. - The input option. - The result array. - - - filter f inp evaluates to match inp with None -> None | Some x -> if f x then Some x else None. - A function that evaluates whether the value contained in the option should remain, or be filtered out. - The input option. - The input if the predicate evaluates to true; otherwise, None. - - - bind f inp evaluates to match inp with None -> None | Some x -> f x - A function that takes the value of type T from an option and transforms it into - an option containing a value of type U. - The input option. - An option of the output type of the binder. - - - map f inp evaluates to match inp with None -> None | Some x -> Some (f x). - A function to apply to the option value. - The input option. - An option of the input value after applying the mapping function, or None if the input is None. - - - iter f inp executes match inp with None -> () | Some x -> f x. - A function to apply to the option value. - The input option. - Unit if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - forall p inp evaluates to match inp with None -> true | Some x -> p x. - A function that evaluates to a boolean when given a value from the option type. - The input option. - True if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - exists p inp evaluates to match inp with None -> false | Some x -> p x. - A function that evaluates to a boolean when given a value from the option type. - The input option. - False if the option is None, otherwise it returns the result of applying the predicate - to the option value. - - - fold f inp s evaluates to match inp with None -> s | Some x -> f x s. - A function to update the state data when given a value from an option. - The input option. - The initial state. - The original state if the option is None, otherwise it returns the updated state with the folder - and the option value. - - - fold f s inp evaluates to match inp with None -> s | Some x -> f s x. - A function to update the state data when given a value from an option. - The initial state. - The input option. - The original state if the option is None, otherwise it returns the updated state with the folder - and the option value. - - - count inp evaluates to match inp with None -> 0 | Some _ -> 1. - The input option. - A zero if the option is None, a one otherwise. - - - Gets the value associated with the option. - The input option. - The value within the option. - Thrown when the option is None. - - - Returns true if the option is None. - The input option. - True if the option is None. - - - Returns true if the option is not None. - The input option. - True if the option is not None. - - - Basic operations on options. - - - Represents a statically-analyzed format associated with writing to a System.IO.TextWriter. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format when formatting builds a string. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format associated with writing to a System.Text.StringBuilder. The type parameter indicates the - arguments and return type of the format operation. - - - Represents a statically-analyzed format associated with writing to a System.IO.TextWriter. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Represents a statically-analyzed format when formatting builds a string. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Represents a statically-analyzed format associated with writing to a System.Text.StringBuilder. The first type parameter indicates the - arguments of the format operation and the last the overall return type. - - - Print to a string buffer and raise an exception with the given - result. Helper printers must return strings. - The input formatter. - The arguments of the formatter. - - - sprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called to generate a result from the formatted string. - The input formatter. - The arguments of the formatter. - - - printf, but call the given 'final' function to generate the result. - For example, these let the printing force a flush after all output has - been entered onto the channel, but not before. - The function called after formatting to generate the format result. - The input formatter. - The arguments of the formatter. - - - fprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called after formatting to generate the format result. - The input TextWriter. - The input formatter. - The arguments of the formatter. - - - bprintf, but call the given 'final' function to generate the result. - See kprintf. - The function called after formatting to generate the format result. - The input StringBuilder. - The input formatter. - The arguments of the formatter. - - - Print to a string via an internal string buffer and return - the result as a string. Helper printers must return strings. - The input formatter. - The formatted string. - - - Formatted printing to stdout, adding a newline. - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stdout - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stderr, adding a newline - The input formatter. - The return type and arguments of the formatter. - - - Formatted printing to stderr - The input formatter. - The return type and arguments of the formatter. - - - Print to a text writer, adding a newline - The TextWriter to print to. - The input formatter. - The return type and arguments of the formatter. - - - Print to a text writer. - The TextWriter to print to. - The input formatter. - The return type and arguments of the formatter. - - - Print to a System.Text.StringBuilder - The StringBuilder to print to. - The input formatter. - The return type and arguments of the formatter. - - - Extensible printf-style formatting for numbers and other datatypes - - Format specifications are strings with "%" markers indicating format - placeholders. Format placeholders consist of: - - %[flags][width][.precision][type] - - where the type is interpreted as follows: - - %b: bool, formatted as "true" or "false" - %s: string, formatted as its unescaped contents - %c: character literal - %d, %i: any basic integer type formatted as a decimal integer, signed if the basic integer type is signed. - %u: any basic integer type formatted as an unsigned decimal integer - %x, %X, %o: any basic integer type formatted as an unsigned hexadecimal - (a-f)/Hexadecimal (A-F)/Octal integer - - %e, %E, %f, %F, %g, %G: - any basic floating point type (float,float32) formatted - using a C-style floating point format specifications, i.e - - %e, %E: Signed value having the form [-]d.dddde[sign]ddd where - d is a single decimal digit, dddd is one or more decimal - digits, ddd is exactly three decimal digits, and sign - is + or - - - %f: Signed value having the form [-]dddd.dddd, where dddd is one - or more decimal digits. The number of digits before the - decimal point depends on the magnitude of the number, and - the number of digits after the decimal point depends on - the requested precision. - - %g, %G: Signed value printed in f or e format, whichever is - more compact for the given value and precision. - - - %M: System.Decimal value - - %O: Any value, printed by boxing the object and using it's ToString method(s) - - %A: Any value, printed with the default layout settings - - %a: A general format specifier, requires two arguments: - (1) a function which accepts two arguments: - (a) a context parameter of the appropriate type for the - given formatting function (e.g. an #System.IO.TextWriter) - (b) a value to print - and which either outputs or returns appropriate text. - - (2) the particular value to print - - - %t: A general format specifier, requires one argument: - (1) a function which accepts a context parameter of the - appropriate type for the given formatting function (e.g. - an System.IO.TextWriter)and which either outputs or returns - appropriate text. - - Basic integer types are: - byte,sbyte,int16,uint16,int32,uint32,int64,uint64,nativeint,unativeint - Basic floating point types are: - float, float32 - - The optional width is an integer indicating the minimal width of the - result. For instance, %6d prints an integer, prefixing it with spaces - to fill at least 6 characters. If width is '*', then an extra integer - argument is taken to specify the corresponding width. - - any number - '*': - - Valid flags are: - - 0: add zeros instead of spaces to make up the required width - '-': left justify the result within the width specified - '+': add a '+' character if the number is positive (to match a '-' sign - for negatives) - ' ': add an extra space if the number is positive (to match a '-' - sign for negatives) - - The printf '#' flag is invalid and a compile-time error will be reported if it is used. - - - Returns the length of the string. - The input string. - The number of characters in the string. - - - Returns a string by concatenating count instances of str. - The number of copies of the input string will be copied. - The input string. - The concatenated string. - Thrown when count is negative. - - - Tests if any character of the string satisfies the given predicate. - The function to test each character of the string. - The input string. - True if any character returns true for the predicate and false otherwise. - - - Tests if all characters in the string satisfy the given predicate. - The function to test each character of the string. - The input string. - True if all characters return true for the predicate and false otherwise. - - - Builds a new string whose characters are the results of applying the function mapping - to each index from 0 to count-1 and concatenating the resulting - strings. - The number of strings to initialize. - The function to take an index and produce a string to - be concatenated with the others. - The constructed string. - Thrown when count is negative. - - - Builds a new string containing only the characters of the input string - for which the given predicate returns "true". - - Returns an empty string if the input string is null - - A function to test whether each character in the input sequence should be included in the output string. - The input string. - The resulting string. - - - Builds a new string whose characters are the results of applying the function mapping - to each of the characters of the input string and concatenating the resulting - strings. - The function to produce a string from each character of the input string. - The input string. - The concatenated string. - - - Builds a new string whose characters are the results of applying the function mapping - to each character and index of the input string. - The function to apply to each character and index of the string. - The input string. - The resulting string. - - - Builds a new string whose characters are the results of applying the function mapping - to each of the characters of the input string. - The function to apply to the characters of the string. - The input string. - The resulting string. - - - Applies the function action to the index of each character in the string and the - character itself. - The function to apply to each character and index of the string. - The input string. - - - Applies the function action to each character in the string. - The function to be applied to each character of the string. - The input string. - - - Returns a new string made by concatenating the given strings - with separator sep, that is a1 + sep + ... + sep + aN. - The separator string to be inserted between the strings - of the input sequence. - The sequence of strings to be concatenated. - A new string consisting of the concatenated strings separated by - the separation string. - Thrown when strings is null. - - - Functional programming operators for string processing. Further string operations - are available via the member functions on strings and other functionality in - System.String - and System.Text.RegularExpressions types. - - - - The SI unit of catalytic activity - - - - - The SI unit of does equivalent - - - - - The SI unit of absorbed dose - - - - - The SI unit of activity referred to a radionuclide - - - - - The SI unit of illuminance - - - - - The SI unit of luminous flux - - - - - The SI unit of inductance - - - - - The SI unit of magnetic flux density - - - - - The SI unit of magnetic flux - - - - - The SI unit of electric conductance - - - - - The SI unit of electric resistance - - - - - The SI unit of capacitance - - - - - The SI unit of electric potential difference, electromotive force - - - - - The SI unit of electric charge, amount of electricity - - - - - The SI unit of power, radiant flux - - - - - The SI unit of energy, work, amount of heat - - - - - The SI unit of pressure, stress - - - - - The SI unit of force - - - - - The SI unit of frequency - - - - - The SI unit of luminous intensity - - - - - The SI unit of amount of substance - - - - - The SI unit of thermodynamic temperature - - - - - The SI unit of electric current - - - - - The SI unit of time - - - - - The SI unit of mass - - - - - The SI unit of length - - - - - The SI unit of length - - - - - A synonym for henry, the SI unit of inductance - - - - - A synonym for katal, the SI unit of catalytic activity - - - - - A synonym for sievert, the SI unit of does equivalent - - - - - A synonym for gray, the SI unit of absorbed dose - - - - - A synonym for becquerel, the SI unit of activity referred to a radionuclide - - - - - A synonym for lux, the SI unit of illuminance - - - - - A synonym for lumen, the SI unit of luminous flux - - - - - A synonym for tesla, the SI unit of magnetic flux density - - - - - A synonym for weber, the SI unit of magnetic flux - - - - - A synonym for UnitNames.ohm, the SI unit of electric resistance. - - - - - A synonym for siemens, the SI unit of electric conductance - - - - - A synonym for farad, the SI unit of capacitance - - - - - A synonym for volt, the SI unit of electric potential difference, electromotive force - - - - - A synonym for coulomb, the SI unit of electric charge, amount of electricity - - - - - A synonym for watt, the SI unit of power, radiant flux - - - - - A synonym for joule, the SI unit of energy, work, amount of heat - - - - - A synonym for pascal, the SI unit of pressure, stress - - - - - A synonym for newton, the SI unit of force - - - - - A synonym for hertz, the SI unit of frequency - - - - - A synonym for candela, the SI unit of luminous intensity - - - - - A synonym for mole, the SI unit of amount of substance - - - - - A synonym for kelvin, the SI unit of thermodynamic temperature - - - - - A synonym for ampere, the SI unit of electric current - - - - - A synonym for second, the SI unit of time - - - - - A synonym for kilogram, the SI unit of mass - - - - - A synonym for Metre, the SI unit of length - - - - - A method used to support the F# query syntax. Returns an empty sequence that has the specified type argument. - - - - - A method used to support the F# query syntax. Returns a sequence that contains the specified values. - - - - - A method used to support the F# query syntax. Returns a sequence of length one that contains the specified value. - - - - A query operator that selects those elements based on a specified predicate. - - - - A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given nullable sorting key. - This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants. - - - - A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given nullable sorting key. - This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants. - - - - A query operator that performs a subsequent ordering of the elements selected so far in descending order by the given sorting key. - This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants. - - - - A query operator that performs a subsequent ordering of the elements selected so far in ascending order by the given sorting key. - This operator may only be used immediately after a 'sortBy', 'sortByDescending', 'thenBy' or 'thenByDescending', or their nullable variants. - - - - A query operator that selects elements from a sequence as long as a specified condition is true, and then skips the remaining elements. - - - - A query operator that selects a specified number of contiguous elements from those selected so far. - - - - A query operator that selects a nullable value for each element selected so far and returns the sum of these values. - If any nullable does not have a value, it is ignored. - - - - A query operator that selects a value for each element selected so far and returns the sum of these values. - - - - - A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method. - - - - - A method used to support the F# query syntax. Inputs to queries are implicitly wrapped by a call to one of the overloads of this method. - - - - A query operator that sorts the elements selected so far in descending order by the given nullable sorting key. - - - - A query operator that sorts the elements selected so far in ascending order by the given nullable sorting key. - - - - A query operator that sorts the elements selected so far in descending order by the given sorting key. - - - - A query operator that sorts the elements selected so far in ascending order by the given sorting key. - - - - A query operator that bypasses elements in a sequence as long as a specified condition is true and then selects the remaining elements. - - - - A query operator that bypasses a specified number of the elements selected so far and selects the remaining elements. - - - - A query operator that projects each of the elements selected so far. - - - - - A method used to support the F# query syntax. Runs the given quotation as a query using LINQ IQueryable rules. - - - - - A method used to support the F# query syntax. Indicates that the query should be passed as a quotation to the Run method. - - - - A query operator that selects the element at a specified index amongst those selected so far. - - - - A query operator that selects a nullable value for each element selected so far and returns the minimum of these values. - If any nullable does not have a value, it is ignored. - - - - A query operator that selects a value for each element selected so far and returns the minimum resulting value. - - - - A query operator that selects a nullable value for each element selected so far and returns the maximum of these values. - If any nullable does not have a value, it is ignored. - - - - A query operator that selects a value for each element selected so far and returns the maximum resulting value. - - - - A query operator that correlates two sets of selected values based on matching keys and groups the results. - If any group is empty, a group with a single default value is used instead. - Normal usage is 'leftOuterJoin y in elements2 on (key1 = key2) into group'. - - - - A query operator that selects the last element of those selected so far, or a default value if no element is found. - - - - A query operator that selects the last element of those selected so far. - - - - A query operator that correlates two sets of selected values based on matching keys. - Normal usage is 'join y in elements2 on (key1 = key2)'. - - - - A query operator that selects the first element of those selected so far, or a default value if the sequence contains no elements. - - - - A query operator that selects the first element from those selected so far. - - - - A query operator that selects a value for each element selected so far and groups the elements by the given key. - - - - A query operator that correlates two sets of selected values based on matching keys and groups the results. - Normal usage is 'groupJoin y in elements2 on (key1 = key2) into group'. - - - - A query operator that groups the elements selected so far according to a specified key selector. - - - - - A method used to support the F# query syntax. Projects each element of a sequence to another sequence and combines the resulting sequences into one sequence. - - - - A query operator that selects the first element selected so far that satisfies a specified condition. - - - - A query operator that determines whether any element selected so far satisfies a condition. - - - - A query operator that selects the single, specific element of those selected so far, or a default value if that element is not found. - - - - A query operator that selects the single, specific element selected so far - - - - A query operator that selects distinct elements from the elements selected so far. - - - - A query operator that returns the number of selected elements. - - - - A query operator that determines whether the selected elements contains a specified element. - - - - A query operator that selects a nullable value for each element selected so far and returns the average of these values. - If any nullable does not have a value, it is ignored. - - - - A query operator that selects a value for each element selected so far and returns the average of these values. - - - - A query operator that determines whether all elements selected so far satisfies a condition. - - - - Create an instance of this builder. Use 'query { ... }' to use the query syntax. - - - - The type used to support the F# query syntax. Use 'query { ... }' to use the query syntax. - - - - - A property used to support the F# query syntax. - - - - - A method used to support the F# query syntax. - - - - - A partial input or result in an F# query. This type is used to support the F# query syntax. - - - - Converts the argument to character. Numeric inputs are converted according to the UTF-16 - encoding for characters. The operation requires an appropriate static conversion method on the input type. - The input value. - The converted char. - - - Converts the argument to System.Decimal using a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted decimal. - - - Converts the argument to unsigned native integer using a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted unativeint - - - Converts the argument to signed native integer. This is a direct conversion for all - primitive numeric types. Otherwise the operation requires an appropriate - static conversion method on the input type. - The input value. - The converted nativeint - - - Converts the argument to 64-bit float. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float - - - Converts the argument to 32-bit float. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float32 - - - Converts the argument to 64-bit float. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float - - - Converts the argument to 32-bit float. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted float32 - - - Converts the argument to unsigned 64-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint64 - - - Converts the argument to signed 64-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int64 - - - Converts the argument to unsigned 32-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint32 - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int32 - - - Converts the argument to a particular enum type. - The input value. - The converted enum type. - - - Converts the argument to signed 32-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int - - - Converts the argument to unsigned 16-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted uint16 - - - Converts the argument to signed 16-bit integer. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted int16 - - - Converts the argument to signed byte. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to signed byte. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted sbyte - - - Converts the argument to byte. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - Converts the argument to byte. This is a direct conversion for all - primitive numeric types. The operation requires an appropriate - static conversion method on the input type. - The input value. - The converted byte - - - - Functions for converting nullable values - - - - - The division operator where a nullable value appears on both left and right sides - - - - - The division operator where a nullable value appears on the right - - - - - The division operator where a nullable value appears on the left - - - - - The modulus operator where a nullable value appears on both left and right sides - - - - - The modulus operator where a nullable value appears on the right - - - - - The modulus operator where a nullable value appears on the left - - - - - The multiplication operator where a nullable value appears on both left and right sides - - - - - The multiplication operator where a nullable value appears on the right - - - - - The multiplication operator where a nullable value appears on the left - - - - - The subtraction operator where a nullable value appears on both left and right sides - - - - - The subtraction operator where a nullable value appears on the right - - - - - The subtraction operator where a nullable value appears on the left - - - - - The addition operator where a nullable value appears on both left and right sides - - - - - The addition operator where a nullable value appears on the right - - - - - The addition operator where a nullable value appears on the left - - - - - The '<>' operator where a nullable value appears on both left and right sides - - - - - The '=' operator where a nullable value appears on both left and right sides - - - - - The '<' operator where a nullable value appears on both left and right sides - - - - - The '<=' operator where a nullable value appears on both left and right sides - - - - - The '>' operator where a nullable value appears on both left and right sides - - - - - The '>=' operator where a nullable value appears on both left and right sides - - - - - The '<>' operator where a nullable value appears on the right - - - - - The '=' operator where a nullable value appears on the right - - - - - The '<' operator where a nullable value appears on the right - - - - - The '<=' operator where a nullable value appears on the right - - - - - The '>' operator where a nullable value appears on the right - - - - - The '>=' operator where a nullable value appears on the right - - - - - The '<>' operator where a nullable value appears on the left - - - - - The '=' operator where a nullable value appears on the left - - - - - The '<' operator where a nullable value appears on the left - - - - - The '<=' operator where a nullable value appears on the left - - - - - The '>' operator where a nullable value appears on the left - - - - - The '>=' operator where a nullable value appears on the left - - - - - Operators for working with nullable values - - - - - A method used to support the F# query syntax. Runs the given quotation as a query using LINQ IEnumerable rules. - - - - - A method used to support the F# query syntax. Runs the given quotation as a query using LINQ rules. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - This type shouldn't be used directly from user code. - - - - - A type used to reconstruct a grouping after applying a mutable->immutable mapping transformation - on a result of a query. - - - - - The generic MethodInfo for Select function - Describes how we got from productions of immutable objects to productions of anonymous objects, with enough information - that we can invert the process in final query results. - - - - - Given the expression part of a "yield" or "select" which produces a result in terms of immutable tuples or immutable records, - generate an equivalent expression yielding anonymous objects. Also return the conversion for the immutable-to-mutable correspondence - so we can reverse this later. - - - - - Simplify gets of tuples and gets of record fields. - - - - - Cleanup the use of property-set object constructions in leaf expressions that form parts of F# queries. - - - - - Given an type involving immutable tuples and records, logically corresponding to the type produced at a - "yield" or "select", convert it to a type involving anonymous objects according to the conversion data. - - - - - Recognize anonymous type construction written using 'new AnonymousObject(<e1>, <e2>, ...)' - - - - - Recognize object construction written using 'new O(Prop1 = <e>, Prop2 = <e>, ...)' - - - - - Tests whether a list consists only of assignments of properties of the - given variable, null values (ignored) and ends by returning the given variable - (pattern returns only property assignments) - - - - - Recognize sequential series written as (... ((<e>; <e>); <e>); ...) - - - - - A runtime helper used to evaluate nested quotation literals. - - - - - A runtime helper used to evaluate nested quotation literals. - - - - - Evaluates a subset of F# quotations by first converting to a LINQ expression, for the subset of LINQ expressions represented by the - expression syntax in the C# language. - - - - - Converts a subset of F# quotations to a LINQ expression, for the subset of LINQ expressions represented by the - expression syntax in the C# language. - - - - - Converts a subset of F# quotations to a LINQ expression, for the subset of LINQ expressions represented by the - expression syntax in the C# language. - - - - - When used in a quotation, this function indicates a specific conversion - should be performed when converting the quotation to a LINQ expression. - - This function should not be called directly. - - - - - When used in a quotation, this function indicates a specific conversion - should be performed when converting the quotation to a LINQ expression. - - This function should not be called directly. - - - - - When used in a quotation, this function indicates a specific conversion - should be performed when converting the quotation to a LINQ expression. - - This function should not be called directly. - - - - Allocates a region of memory on the stack. - The number of objects of type T to allocate. - A typed pointer to the allocated memory. - - - Assigns the value into the memory location referenced by the typed native - pointer computed by adding index * sizeof<'T> to the given input pointer. - The input pointer. - The index by which to offset the pointer. - The value to assign. - - - Assigns the value into the memory location referenced by the given typed native pointer. - The input pointer. - The value to assign. - - - Dereferences the given typed native pointer. - The input pointer. - The value at the pointer address. - - - Dereferences the typed native pointer computed by adding index * sizeof<'T> to the - given input pointer. - The input pointer. - The index by which to offset the pointer. - The value at the pointer address. - - - Returns a typed native pointer by adding index * sizeof<'T> to the - given input pointer. - The input pointer. - The index by which to offset the pointer. - A typed pointer. - - - Returns a machine address for a given typed native pointer. - The input pointer. - The machine address. - - - Returns a typed native pointer for a given machine address. - The pointer address. - A typed pointer. - - - Contains operations on native pointers. Use of these operators may - result in the generation of unverifiable code. - - - Gets the raw expression associated with this type-carrying expression - - - Type-carrying quoted expressions. Expressions are generated either - by quotations in source text or programatically - - - Returns type of an expression. - - - Returns the custom attributes of an expression. - - - Builds an expression that represents a value and its associated reflected definition as a quotation - The untyped object. - The type of the object. - The definition of the value being quoted. - The resulting expression. - - - Builds an expression that represents a value and its associated reflected definition as a quotation - The value being quoted. - The definition of the value being quoted. - The resulting expression. - - - Builds an expression that represents a while loop - The predicate to control the loop iteration. - The body of the while loop. - The resulting expression. - - - Builds an expression that represents setting a mutable variable - The input variable. - The value to set. - The resulting expression. - - - Builds an expression that represents a variable - The input variable. - The resulting expression. - - - Builds an expression that represents a constant value of a particular type, arising from a variable of the given name - The untyped object. - The type of the object. - The name of the variable. - The resulting expression. - - - Builds an expression that represents a constant value, arising from a variable of the given name - The typed value. - The name of the variable. - The resulting expression. - - - Builds an expression that represents a constant value - The typed value. - The resulting expression. - - - Builds an expression that represents a constant value of a particular type - The untyped object. - The type of the object. - The resulting expression. - - - Builds an expression that represents a test of a value is of a particular union case - The expression to test. - The description of the union case. - The resulting expression. - - - Builds an expression that represents a type test. - The expression to test. - The target type. - The resulting expression. - - - Builds an expression that represents getting a field of a tuple - The input tuple. - The index of the tuple element to get. - The resulting expression. - - - Builds an expression that represents a try/with construct for exception filtering and catching. - The body of the try expression. - - - The variable to bind to a caught exception. - The expression evaluated when an exception is caught. - The resulting expression. - - - Try and find a stored reflection definition for the given method. Stored reflection - definitions are added to an F# assembly through the use of the [<ReflectedDefinition>] attribute. - The description of the method to find. - The reflection definition or None if a match could not be found. - - - Builds an expression that represents a try/finally construct - The body of the try expression. - The final part of the expression to be evaluated. - The resulting expression. - - - Format the expression as a string - Indicates if method, property, constructor and type objects should be printed in detail. If false, these are abbreviated to their name. - The formatted string. - - - Substitutes through the given expression using the given functions - to map variables to new values. The functions must give consistent results - at each application. Variable renaming may occur on the target expression - if variable capture occurs. - The function to map variables into expressions. - The expression with the given substitutions. - - - Builds an expression that represents the sequential execution of one expression followed by another - The first expression. - The second expression. - The resulting expression. - - - Permits interactive environments such as F# Interactive - to explicitly register new pickled resources that represent persisted - top level definitions. - The assembly associated with the resource. - The unique name for the resources being added. - The type definitions referenced. - The serialized resource to register with the environment. - - - Permits interactive environments such as F# Interactive - to explicitly register new pickled resources that represent persisted - top level definitions. - The assembly associated with the resource. - The unique name for the resources being added. - The serialized resource to register with the environment. - - - Builds an expression that represents a nested typed quotation literal - The expression being quoted. - The resulting expression. - - - Builds an expression that represents a nested raw quotation literal - The expression being quoted. - The resulting expression. - - - Builds an expression that represents a nested typed or raw quotation literal - The expression being quoted. - The resulting expression. - - - Builds an expression that represents writing to a static property - The description of the property. - The value to set. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents writing to a property of an object - The input object. - The description of the property. - The value to set. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents reading a static property - The description of the property. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents reading a property of an object - The input object. - The description of the property. - List of indices for the property if it is an indexed property. - The resulting expression. - - - Builds an expression that represents the creation of a union case value - The description of the union case. - The list of arguments for the case. - The resulting expression. - - - Builds an expression that represents the creation of an F# tuple value - The list of elements of the tuple. - The resulting expression. - - - Builds record-construction expressions - The type of record. - The list of elements of the record. - The resulting expression. - - - Builds an expression that represents the invocation of an object constructor - The description of the constructor. - The list of arguments to the constructor. - The resulting expression. - - - Builds an expression that represents the creation of a delegate value for the given type - The type of delegate. - The parameters for the delegate. - The body of the function. - The resulting expression. - - - Builds an expression that represents the creation of an array value initialized with the given elements - The type for the elements of the array. - The list of elements of the array. - The resulting expression. - - - Builds recursives expressions associated with 'let rec' constructs - The list of bindings for the let expression. - The sub-expression where the bindings are in scope. - The resulting expression. - - - Builds expressions associated with 'let' constructs - The variable in the let expression. - The expression bound to the variable. - The sub-expression where the binding is in scope. - The resulting expression. - - - Builds an expression that represents the constrution of an F# function value - The parameter to the function. - The body of the function. - The resulting expression. - - - Builds 'if ... then ... else' expressions. - The condition expression. - The then sub-expression. - The else sub-expression. - The resulting expression. - - - Fetches or creates a new variable with the given name and type from a global pool of shared variables - indexed by name and type. The type is given by the expicit or inferred type parameter - The variable name. - The created of fetched typed global variable. - - - Gets the free expression variables of an expression as a list. - A sequence of the free variables in the expression. - - - Builds a 'for i = ... to ... do ...' expression that represent loops over integer ranges - The sub-expression declaring the loop variable. - The sub-expression setting the initial value of the loop variable. - The sub-expression declaring the final value of the loop variable. - The sub-expression representing the body of the loop. - The resulting expression. - - - Builds an expression that represents writing to a field of an object - The input object. - The description of the field to write to. - The value to set to the field. - The resulting expression. - - - Builds an expression that represents writing to a static field - The description of the field to write to. - The value to the set to the field. - The resulting expression. - - - Builds an expression that represents the access of a field of an object - The input object. - The description of the field to access. - The resulting expression. - - - Builds an expression that represents the access of a static field - The description of the field to access. - The resulting expression. - - - This function is called automatically when quotation syntax (<@ @>) and other sources of - quotations are used. - A type in the assembly where the quotation occurs. - The type definitions referenced. - The spliced types, to replace references to type variables. - The spliced expressions to replace references to spliced expressions. - The serialized form of the quoted expression. - The resulting expression. - - - This function is called automatically when quotation syntax (<@ @>) and other sources of - quotations are used. - A type in the assembly where the quotation occurs. - The spliced types, to replace references to type variables. - The spliced expressions to replace references to spliced expressions. - The serialized form of the quoted expression. - The resulting expression. - - - Builds an expression that represents the invocation of a default object constructor - The type on which the constructor is invoked. - The resulting expression. - - - Builds an expression that represents the coercion of an expression to a type - The expression to coerce. - The target type. - The resulting expression. - - - Returns a new typed expression given an underlying runtime-typed expression. - A type annotation is usually required to use this function, and - using an incorrect type annotation may result in a later runtime exception. - The expression to cast. - The resulting typed expression. - - - Builds an expression that represents a call to an instance method associated with an object - The input object. - The description of the method to call. - The list of arguments to the method. - The resulting expression. - - - Builds an expression that represents a call to an static method or module-bound function - The MethodInfo describing the method to call. - The list of arguments to the method. - The resulting expression. - - - Builds an expression that represents the application of a first class function value to multiple arguments - The function to apply. - The list of lists of arguments to the function. - The resulting expression. - - - Builds an expression that represents the application of a first class function value to a single argument. - The function to apply. - The argument to the function. - The resulting expression. - - - Builds an expression that represents setting the value held at a particular address. - The target expression. - The value to set at the address. - The resulting expression. - - - Builds an expression that represents getting the address of a value. - The target expression. - The resulting expression. - - - Quoted expressions annotated with System.Type values. - - - The type associated with the variable - - - The declared name of the variable - - - Indicates if the variable represents a mutable storage location - - - Fetches or create a new variable with the given name and type from a global pool of shared variables - indexed by name and type - The name of the variable. - The type associated with the variable. - The retrieved or created variable. - - - Creates a new variable with the given name, type and mutability - The declared name of the variable. - The type associated with the variable. - Indicates if the variable represents a mutable storage location. Default is false. - The created variable. - - - Information at the binding site of a variable - - - Re-build combination expressions. The first parameter should be an object - returned by the ShapeCombination case of the active pattern in this module. - The input shape. - The list of arguments. - The rebuilt expression. - - - An active pattern that performs a complete decomposition viewing the expression tree as a binding structure - The input expression. - The decomposed Var, Lambda, or ConstApp. - - - Active patterns for traversing, visiting, rebuilding and tranforming expressions in a generic way - - - An active pattern to recognize property setters that have an associated ReflectedDefinition - The description of the property. - The expression of the method definition if found, or None. - - - An active pattern to recognize property getters or values in modules that have an associated ReflectedDefinition - The description of the property. - The expression of the method definition if found, or None. - - - An active pattern to recognize methods that have an associated ReflectedDefinition - The description of the method. - The expression of the method definition if found, or None. - - - A parameterized active pattern to recognize calls to a specified function or method. - The returned elements are the optional target object (present if the target is an - instance method), the generic type instantation (non-empty if the target is a generic - instantiation), and the arguments to the function or method. - The input template expression to specify the method to call. - The optional target object (present if the target is an - instance method), the generic type instantation (non-empty if the target is a generic - instantiation), and the arguments to the function or method. - - - An active pattern to recognize constant decimal expressions - The input expression to match against. - decimal option - - - An active pattern to recognize constant unsigned int64 expressions - The input expression to match against. - uint64 option - - - An active pattern to recognize constant int64 expressions - The input expression to match against. - int64 option - - - An active pattern to recognize constant unsigned int32 expressions - The input expression to match against. - uint32 option - - - An active pattern to recognize constant int32 expressions - The input expression to match against. - int32 option - - - An active pattern to recognize constant unsigned int16 expressions - The input expression to match against. - uint16 option - - - An active pattern to recognize constant int16 expressions - The input expression to match against. - int16 option - - - An active pattern to recognize constant byte expressions - The input expression to match against. - byte option - - - An active pattern to recognize constant signed byte expressions - The input expression to match against. - sbyte option - - - An active pattern to recognize constant unicode character expressions - The input expression to match against. - char option - - - An active pattern to recognize constant 64-bit floating point number expressions - The input expression to match against. - float option - - - An active pattern to recognize constant 32-bit floating point number expressions - The input expression to match against. - float32 option - - - An active pattern to recognize constant string expressions - The input expression to match against. - string option - - - An active pattern to recognize constant boolean expressions - The input expression to match against. - bool option - - - An active pattern to recognize () constant expressions - The input expression to match against. - unit option - - - An active pattern to recognize expressions of the form a || b - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions of the form a && b - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent the application of a (possibly curried or tupled) first class function value - The input expression to match against. - (Expr * Expr list list) option - - - An active pattern to recognize expressions that represent a (possibly curried or tupled) first class function value - The input expression to match against. - (Var list list * Expr) option - - - Contains a set of derived F# active patterns to analyze F# expression objects - - - An active pattern to recognize expressions that represent setting a mutable variable - The input expression to match against. - (Var * Expr) option - - - An active pattern to recognize expressions that represent a variable - The input expression to match against. - Var option - - - An active pattern to recognize expressions that are a value with an associated definition - The input expression to match against. - The boxed value, its static type and its definition - - - An active pattern to recognize expressions that represent a constant value - The input expression to match against. - The boxed value, its static type and its name - - - An active pattern to recognize expressions that represent a constant value. This also matches expressions matched by ValueWithName. - The input expression to match against. - The boxed value and its static type - - - An active pattern to recognize expressions that represent a test if a value is of a particular union case - The input expression to match against. - The expression and union case being tested - - - An active pattern to recognize expressions that represent a dynamic type test - The input expression to match against. - The expression and type being tested - - - An active pattern to recognize expressions that represent getting a tuple field - The input expression to match against. - The expression and tuple field being accessed - - - An active pattern to recognize expressions that represent a try/finally construct - The input expression to match against. - The body and handler parts of the try/finally expression - - - An active pattern to recognize expressions that represent a try/with construct for exception filtering and catching - The input expression to match against. - (Expr * Var * Expr * Var * Expr) option - - - An active pattern to recognize expressions that represent sequential exeuction of one expression followed by another - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent a nested typed quotation literal - The input expression to match against. - Expr option - - - An active pattern to recognize expressions that represent a nested raw quotation literal - The input expression to match against. - Expr option - - - An active pattern to recognize expressions that represent a nested quotation literal - The input expression to match against. - Expr option - - - An active pattern to recognize expressions that represent setting a static or instance property, or a non-function value declared in a module - The input expression to match against. - (Expr option * PropertyInfo * Expr list * Expr) option - - - An active pattern to recognize expressions that represent the read of a static or instance property, or a non-function value declared in a module - The input expression to match against. - (Expr option * PropertyInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of tuple values - The input expression to match against. - (Expr list) option - - - An active pattern to recognize expressions that represent construction of particular union case values - The input expression to match against. - (UnionCaseInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of record values - The input expression to match against. - (Type * Expr list) option - - - An active pattern to recognize expressions that represent invocation of object constructors - The input expression to match against. - (ConstructorInfo * Expr list) option - - - An active pattern to recognize expressions that represent construction of delegate values - The input expression to match against. - (Type * Var list * Expr) option - - - An active pattern to recognize expressions that represent invocations of a default constructor of a struct - The input expression to match against. - Type option - - - An active pattern to recognize expressions that represent the construction of arrays - The input expression to match against. - (Type * Expr list) option - - - An active pattern to recognize expressions that represent recursive let bindings of one or more variables - The input expression to match against. - ((Var * Expr) list * Expr) option - - - An active pattern to recognize expressions that represent let bindings - The input expression to match against. - (Var * Expr * Expr) option - - - An active pattern to recognize expressions that represent first class function values - The input expression to match against. - (Var * Expr) option - - - An active pattern to recognize expressions that represent conditionals - The input expression to match against. - (Expr * Expr * Expr) option - - - An active pattern to recognize expressions that represent while loops - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent loops over integer ranges - The input expression to match against. - (Var * Expr * Expr * Expr) option - - - An active pattern to recognize expressions that represent setting a static or instance field - The input expression to match against. - (Expr option * FieldInfo * Expr) option - - - An active pattern to recognize expressions that represent getting a static or instance field - The input expression to match against. - (Expr option * FieldInfo) option - - - An active pattern to recognize expressions that represent coercions from one type to another - The input expression to match against. - (Expr * Type) option - - - An active pattern to recognize expressions that represent calls to static and instance methods, and functions defined in modules - The input expression to match against. - (Expr option * MethodInfo * Expr list) option - - - An active pattern to recognize expressions that represent applications of first class function values - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent setting the value held at an address - The input expression to match against. - (Expr * Expr) option - - - An active pattern to recognize expressions that represent getting the address of a value - The input expression to match against. - Expr option - - - Contains a set of primitive F# active patterns to analyze F# expression objects - - - Returns a System.Type representing an F# tuple type with the given element types - An array of types for the tuple elements. - The type representing the tuple containing the input elements. - - - Returns a System.Type representing the F# function type with the given domain and range - The input type of the function. - The output type of the function. - The function type with the given domain and range. - - - Returns true if the typ is a representation of an F# union type or the runtime type of a value of that type - The type to check. - Optional binding flags. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# tuple type - The type to check. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# record type - The type to check. - Optional binding flags. - True if the type check succeeds. - - - Return true if the typ is a System.Type value corresponding to the compiled form of an F# module - The type to check. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# function type or the runtime type of a closure implementing an F# function type - The type to check. - True if the type check succeeds. - - - Returns true if the typ is a representation of an F# exception declaration - The type to check. - Optional binding flags. - True if the type check is an F# exception. - - - Gets the cases of a union type. - - Assumes the given type is a union type. If not, ArgumentException is raised during pre-computation. - The input union type. - Optional binding flags. - Thrown when the input type is not a union type. - An array of descriptions of the cases of the given union type. - - - Gets the tuple elements from the representation of an F# tuple type. - The input tuple type. - An array of the types contained in the given tuple type. - - - Reads all the fields from a record value, in declaration order - - Assumes the given input is a record value. If not, ArgumentException is raised. - The input record type. - Optional binding flags. - An array of descriptions of the properties of the record type. - - - Gets the domain and range types from an F# function type or from the runtime type of a closure implementing an F# type - The input function type. - A tuple of the domain and range types of the input function. - - - Reads all the fields from an F# exception declaration, in declaration order - - Assumes exceptionType is an exception representation type. If not, ArgumentException is raised. - The exception type to read. - Optional binding flags. - Thrown if the given type is not an exception. - An array containing the PropertyInfo of each field in the exception. - - - Contains operations associated with constructing and analyzing F# types such as records, unions and tuples - - - Assumes the given type is a union type. - If not, ArgumentException is raised during pre-computation. - - Using the computed function is more efficient than calling GetUnionCase - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of union to optimize reading. - Optional binding flags. - An optimized function to read the tags of the given union type. - - - Precompute a property or static method for reading an integer representing the case tag of a union type. - The type of union to read. - Optional binding flags. - The description of the union case reader. - - - Precomputes a function for reading all the fields for a particular discriminator case of a union type - - Using the computed function will typically be faster than executing a corresponding call to GetFields - The description of the union case to read. - Optional binding flags. - A function to for reading the fields of the given union case. - - - A method that constructs objects of the given case - The description of the union case. - Optional binding flags. - The description of the constructor of the given union case. - - - Precomputes a function for constructing a discriminated union value for a particular union case. - The description of the union case. - Optional binding flags. - A function for constructing values of the given union case. - - - Precomputes a function for reading the values of a particular tuple type - - Assumes the given type is a TupleType. - If not, ArgumentException is raised during pre-computation. - The tuple type to read. - Thrown when the given type is not a tuple type. - A function to read values of the given tuple type. - - - Gets information that indicates how to read a field of a tuple - The input tuple type. - The index of the tuple element to describe. - The description of the tuple element and an optional type and index if the tuple is big. - - - Gets a method that constructs objects of the given tuple type. - For small tuples, no additional type will be returned. - - For large tuples, an additional type is returned indicating that - a nested encoding has been used for the tuple type. In this case - the suffix portion of the tuple type has the given type and an - object of this type must be created and passed as the last argument - to the ConstructorInfo. A recursive call to PreComputeTupleConstructorInfo - can be used to determine the constructor for that the suffix type. - The input tuple type. - The description of the tuple type constructor and an optional extra type - for large tuples. - - - Precomputes a function for reading the values of a particular tuple type - - Assumes the given type is a TupleType. - If not, ArgumentException is raised during pre-computation. - The type of tuple to read. - Thrown when the given type is not a tuple type. - A function to read a particular tuple type. - - - Precompute a function for reading all the fields from a record. The fields are returned in the - same order as the fields reported by a call to Microsoft.FSharp.Reflection.Type.GetInfo for - this type. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - - Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of record to read. - Optional binding flags. - Thrown when the input type is not a record type. - An optimized reader for the given record type. - - - Precompute a function for reading a particular field from a record. - Assumes the given type is a RecordType with a field of the given name. - If not, ArgumentException is raised during pre-computation. - - Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The PropertyInfo of the field to read. - Thrown when the input type is not a record type. - A function to read the specified field from the record. - - - Get a ConstructorInfo for a record type - The record type. - Optional binding flags. - A ConstructorInfo for the given record type. - - - Precompute a function for constructing a record value. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - The type of record to construct. - Optional binding flags. - Thrown when the input type is not a record type. - A function to construct records of the given type. - - - Create a union case value. - The description of the union case to create. - The array of arguments to construct the given case. - Optional binding flags. - The constructed union case. - - - Creates an instance of a tuple type - - Assumes at least one element is given. If not, ArgumentException is raised. - The array of tuple fields. - The tuple type to create. - Thrown if no elements are given. - An instance of the tuple type with the given elements. - - - Creates an instance of a record type. - - Assumes the given input is a record type. - The type of record to make. - The array of values to initialize the record. - Optional binding flags for the record. - Thrown when the input type is not a record type. - The created record. - - - Builds a typed function from object from a dynamic function implementation - The function type of the implementation. - The untyped lambda of the function implementation. - A typed function from the given dynamic implementation. - - - Identify the union case and its fields for an object - - Assumes the given input is a union case value. If not, ArgumentException is raised. - - If the type is not given, then the runtime type of the input object is used to identify the - relevant union type. The type should always be given if the input object may be null. For example, - option values may be represented using the 'null'. - The input union case. - The union type containing the value. - Optional binding flags. - Thrown when the input type is not a union case value. - The description of the union case and its fields. - - - Reads all fields from a tuple. - - Assumes the given input is a tuple value. If not, ArgumentException is raised. - The input tuple. - Thrown when the input is not a tuple value. - An array of the fields from the given tuple. - - - Reads a field from a tuple value. - - Assumes the given input is a tuple value. If not, ArgumentException is raised. - The input tuple. - The index of the field to read. - The value of the field. - - - Reads all the fields from a record value. - - Assumes the given input is a record value. If not, ArgumentException is raised. - The record object. - Optional binding flags for the record. - Thrown when the input type is not a record type. - The array of fields from the record. - - - Reads a field from a record value. - - Assumes the given input is a record value. If not, ArgumentException is raised. - The record object. - The PropertyInfo describing the field to read. - Thrown when the input type is not a record type. - The field from the record. - - - Reads all the fields from a value built using an instance of an F# exception declaration - - Assumes the given input is an F# exception value. If not, ArgumentException is raised. - The exception instance. - Optional binding flags. - Thrown when the input type is not an F# exception. - The fields from the given exception. - - - Contains operations associated with constructing and analyzing values associated with F# types - such as records, unions and tuples. - - - The integer tag for the case. - - - The name of the case. - - - The type in which the case occurs. - - - The fields associated with the case, represented by a PropertyInfo. - The fields associated with the case. - - - Returns the custom attributes data associated with the case. - An list of custom attribute data items. - - - Returns the custom attributes associated with the case matching the given attribute type. - The type of attributes to return. - An array of custom attributes. - - - Returns the custom attributes associated with the case. - An array of custom attributes. - - - Represents a case of a discriminated union type - - - Returns true if the typ is a representation of an F# exception declaration - The type to check. - Optional flag that denotes accessibility of the private representation. - True if the type check is an F# exception. - - - Reads all the fields from an F# exception declaration, in declaration order - - Assumes exceptionType is an exception representation type. If not, ArgumentException is raised. - The exception type to read. - Optional flag that denotes accessibility of the private representation. - Thrown if the given type is not an exception. - An array containing the PropertyInfo of each field in the exception. - - - Returns true if the typ is a representation of an F# union type or the runtime type of a value of that type - The type to check. - Optional flag that denotes accessibility of the private representation. - True if the type check succeeds. - - - Return true if the typ is a representation of an F# record type - The type to check. - Optional flag that denotes accessibility of the private representation. - True if the type check succeeds. - - - Gets the cases of a union type. - - Assumes the given type is a union type. If not, ArgumentException is raised during pre-computation. - The input union type. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not a union type. - An array of descriptions of the cases of the given union type. - - - Reads all the fields from a record value, in declaration order - - Assumes the given input is a record value. If not, ArgumentException is raised. - The input record type. - Optional flag that denotes accessibility of the private representation. - An array of descriptions of the properties of the record type. - - - Reads all the fields from a value built using an instance of an F# exception declaration - - Assumes the given input is an F# exception value. If not, ArgumentException is raised. - The exception instance. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not an F# exception. - The fields from the given exception. - - - A method that constructs objects of the given case - The description of the union case. - Optional flag that denotes accessibility of the private representation. - The description of the constructor of the given union case. - - - Precomputes a function for constructing a discriminated union value for a particular union case. - The description of the union case. - Optional flag that denotes accessibility of the private representation. - A function for constructing values of the given union case. - - - Precomputes a function for reading all the fields for a particular discriminator case of a union type - - Using the computed function will typically be faster than executing a corresponding call to GetFields - The description of the union case to read. - Optional flag that denotes accessibility of the private representation. - A function to for reading the fields of the given union case. - - - Precompute a property or static method for reading an integer representing the case tag of a union type. - The type of union to read. - Optional flag that denotes accessibility of the private representation. - The description of the union case reader. - - - Assumes the given type is a union type. - If not, ArgumentException is raised during pre-computation. - - Using the computed function is more efficient than calling GetUnionCase - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of union to optimize reading. - Optional flag that denotes accessibility of the private representation. - An optimized function to read the tags of the given union type. - - - Identify the union case and its fields for an object - - Assumes the given input is a union case value. If not, ArgumentException is raised. - - If the type is not given, then the runtime type of the input object is used to identify the - relevant union type. The type should always be given if the input object may be null. For example, - option values may be represented using the 'null'. - The input union case. - The union type containing the value. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not a union case value. - The description of the union case and its fields. - - - Create a union case value. - The description of the union case to create. - The array of arguments to construct the given case. - Optional flag that denotes accessibility of the private representation. - The constructed union case. - - - Get a ConstructorInfo for a record type - The record type. - Optional flag that denotes accessibility of the private representation. - A ConstructorInfo for the given record type. - - - Precompute a function for constructing a record value. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - The type of record to construct. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not a record type. - A function to construct records of the given type. - - - Precompute a function for reading all the fields from a record. The fields are returned in the - same order as the fields reported by a call to Microsoft.FSharp.Reflection.Type.GetInfo for - this type. - - Assumes the given type is a RecordType. - If not, ArgumentException is raised during pre-computation. - - Using the computed function will typically be faster than executing a corresponding call to Value.GetInfo - because the path executed by the computed function is optimized given the knowledge that it will be - used to read values of the given type. - The type of record to read. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not a record type. - An optimized reader for the given record type. - - - Reads all the fields from a record value. - - Assumes the given input is a record value. If not, ArgumentException is raised. - The record object. - Optional flag that denotes accessibility of the private representation. - Thrown when the input type is not a record type. - The array of fields from the record. - - - Creates an instance of a record type. - - Assumes the given input is a record type. - The type of record to make. - The array of values to initialize the record. - Optional flags that denotes accessibility of the private representation. - Thrown when the input type is not a record type. - The created record. - - - - A record of options to control structural formatting. - For F# Interactive properties matching those of this value can be accessed via the 'fsi' - value. - - Floating Point format given in the same format accepted by System.Double.ToString, - e.g. f6 or g15. - - If ShowProperties is set the printing process will evaluate properties of the values being - displayed. This may cause additional computation. - - The ShowIEnumerable is set the printing process will force the evalution of IEnumerable objects - to a small, finite depth, as determined by the printing parameters. - This may lead to additional computation being performed during printing. - - <example> - From F# Interactive the default settings can be adjusted using, for example, - <pre> - open Microsoft.FSharp.Compiler.Interactive.Settings;; - setPrintWidth 120;; - </pre> - </example> - - - - - Data representing structured layouts of terms. - - - - - Convert any value to a layout using the given formatting options. The - layout can then be processed using formatting display engines such as - those in the LayoutOps module. any_to_string and output_any are - built using any_to_layout with default format options. - - - - - Ouput any value to a channel using the same set of formatting rules - as any_to_string - - - - - Convert any value to a string using a standard formatter - Data is typically formatted in a structured format, e.g. - lists are formatted using the "[1;2]" notation. - The details of the format are not specified and may change - from version to version and according to the flags given - to the F# compiler. The format is intended to be human-readable, - not machine readable. If alternative generic formats are required - you should develop your own formatter, using the code in the - implementation of this file as a starting point. - - Data from other .NET languages is formatted using a virtual - call to Object.ToString() on the boxed version of the input. - - - - - For limitting layout of list-like sequences (lists,arrays,etc). - unfold a list of items using (project and z) making layout list via itemL. - If reach maxLength (before exhausting) then truncate. - - - - - See tagL - - - - - Layout like an F# list. - - - - - Layout like an F# option. - - - - - Layout list vertically. - - - - - Layout two vertically. - - - - - Form tuple of layouts. - - - - - Wrap braces around layout. - - - - - Wrap square brackets around layout. - - - - - Wrap round brackets around Layout. - - - - - Join layouts into a list separated using the given Layout. - - - - - Join layouts into a semi-colon separated list. - - - - - Join layouts into a space separated list. - - - - - Join layouts into a comma separated list. - - - - - Join broken with ident=2 - - - - - Join broken with ident=1 - - - - - Join broken with ident=0 - - - - - Join, possible break with indent=2 - - - - - Join, possible break with indent=1 - - - - - Join, possible break with indent=0 - - - - - Join, unbreakable. - - - - - An string which is left parenthesis (no space on the right). - - - - - An string which is right parenthesis (no space on the left). - - - - - An string which requires no spaces either side. - - - - - An string leaf - - - - - An uninterpreted leaf, to be interpreted into a string - by the layout engine. This allows leaf layouts for numbers, strings and - other atoms to be customized according to culture. - - - - - Is it the empty layout? - - - - - The empty layout - - - - - A layout is a sequence of strings which have been joined together. - The strings are classified as words, separators and left and right parenthesis. - This classification determines where spaces are inserted. - A joint is either unbreakable, breakable or broken. - If a joint is broken the RHS layout occurs on the next line with optional indentation. - A layout can be squashed to for given width which forces breaks as required. - - - - diff --git a/source/Calamari.Scripting/FSharp/Microsoft.Build.Engine.dll b/source/Calamari.Scripting/FSharp/Microsoft.Build.Engine.dll deleted file mode 100644 index e7df22891..000000000 Binary files a/source/Calamari.Scripting/FSharp/Microsoft.Build.Engine.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/Microsoft.Build.Framework.dll b/source/Calamari.Scripting/FSharp/Microsoft.Build.Framework.dll deleted file mode 100644 index 7a6974fa8..000000000 Binary files a/source/Calamari.Scripting/FSharp/Microsoft.Build.Framework.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/Microsoft.Build.Tasks.v12.0.dll b/source/Calamari.Scripting/FSharp/Microsoft.Build.Tasks.v12.0.dll deleted file mode 100644 index 13a6abb76..000000000 Binary files a/source/Calamari.Scripting/FSharp/Microsoft.Build.Tasks.v12.0.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/Microsoft.Build.Utilities.v12.0.dll b/source/Calamari.Scripting/FSharp/Microsoft.Build.Utilities.v12.0.dll deleted file mode 100644 index 6052fdc63..000000000 Binary files a/source/Calamari.Scripting/FSharp/Microsoft.Build.Utilities.v12.0.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/Microsoft.Build.dll b/source/Calamari.Scripting/FSharp/Microsoft.Build.dll deleted file mode 100644 index c1992f3d3..000000000 Binary files a/source/Calamari.Scripting/FSharp/Microsoft.Build.dll and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/Microsoft.FSharp.Targets b/source/Calamari.Scripting/FSharp/Microsoft.FSharp.Targets deleted file mode 100644 index bf87f7e17..000000000 --- a/source/Calamari.Scripting/FSharp/Microsoft.FSharp.Targets +++ /dev/null @@ -1,256 +0,0 @@ - - - - - - - - - - - true - true - - - - - - $(MSBuildAllProjects);$(MSBuildThisFileFullPath) - .fs - F# - Managed - $(Optimize) - Software\Microsoft\Microsoft SDKs\$(TargetFrameworkIdentifier) - - RootNamespace - false - $(Prefer32Bit) - - - - - - - - - false - true - - - - - - <_Temporary Remove="@(_Temporary)" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - <_Temporary Remove="@(_Temporary)" /> - - - - - - - - - <_DebugSymbolsIntermediatePathTemporary Include="$(PdbFile)"/> - - <_DebugSymbolsIntermediatePath Include="@(_DebugSymbolsIntermediatePathTemporary->'%(RootDir)%(Directory)%(Filename).pdb')"/> - - - - - - - - - - - - - - - - - - - <_CoreCompileResourceInputs Remove="@(_CoreCompileResourceInputs)" /> - - - - - - - - - - diff --git a/source/Calamari.Scripting/FSharp/fsc.exe b/source/Calamari.Scripting/FSharp/fsc.exe deleted file mode 100644 index d84bb3e2a..000000000 Binary files a/source/Calamari.Scripting/FSharp/fsc.exe and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/fsc.exe.config b/source/Calamari.Scripting/FSharp/fsc.exe.config deleted file mode 100644 index 2eb623bb5..000000000 --- a/source/Calamari.Scripting/FSharp/fsc.exe.config +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - diff --git a/source/Calamari.Scripting/FSharp/fsc.xml b/source/Calamari.Scripting/FSharp/fsc.xml deleted file mode 100644 index 17d3dbcdd..000000000 --- a/source/Calamari.Scripting/FSharp/fsc.xml +++ /dev/null @@ -1,22 +0,0 @@ - - -fsc - - - - The compilation server, which runs in the server process. Accessed by clients using .NET remoting. - - - - - Collect the output from the stdout and stderr streams, character by character, - recording the console color used along the way. - - - - - Implement the optional resident compilation service - - - - diff --git a/source/Calamari.Scripting/FSharp/fsi.exe b/source/Calamari.Scripting/FSharp/fsi.exe deleted file mode 100644 index b47790e80..000000000 Binary files a/source/Calamari.Scripting/FSharp/fsi.exe and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/fsi.exe.config b/source/Calamari.Scripting/FSharp/fsi.exe.config deleted file mode 100644 index 8735c678c..000000000 --- a/source/Calamari.Scripting/FSharp/fsi.exe.config +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - diff --git a/source/Calamari.Scripting/FSharp/fsi.xml b/source/Calamari.Scripting/FSharp/fsi.xml deleted file mode 100644 index a2705ca49..000000000 --- a/source/Calamari.Scripting/FSharp/fsi.xml +++ /dev/null @@ -1,669 +0,0 @@ - - -fsi - - - - Stopped due to error\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:2) - - - - - Prevents references from being locked by the F# Interactive process - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:53) - - - - - 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). - - - - - 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). - - - - - Use the given file on startup as initial input - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:11) - - - - - Usage: %s <options> [script.fsx [<arguments>]] - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:3) - - - - - - Unexpected ThreadAbortException (Ctrl-C) during event handling: Trying to restart... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:49) - - - - - --> Timing now on - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:47) - - - - - --> Timing now off - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:48) - - - - - Real: %s, CPU: %s, GC %s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:26) - - - - - gen - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:27) - - - - - Treat remaining arguments as command line arguments, accessed using fsi.CommandLineArgs - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:13) - - - - - Support TAB completion in console (on by default) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:18) - - - - - Suppress fsi writing to stdout - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:17) - - - - - F# Interactive for F# 4.0 %s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:52) - - - - - - MISCELLANEOUS - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:8) - - - - - Loading - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:38) - - - - - #load the given file on startup - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:12) - - - - - Warning: line too long, ignoring some characters\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:25) - - - - - - LANGUAGE - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:7) - - - - - Invalid directive '#%s %s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:24) - - - - - '%s' is not a valid assembly name - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:22) - - - - - See '%s' for options - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:37) - - - - - F# Interactive command line options: - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:36) - - - - - F# Interactive directives: - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:29) - - - - - Toggle timing on/off - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:33) - - - - - Reference (dynamically load) the given DLL - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:30) - - - - - Exit - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:35) - - - - - Load the given file(s) as if compiled and referenced - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:32) - - - - - Display help - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:34) - - - - - Add the given search path for referenced DLLs - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:31) - - - - - \n- Interrupt\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:39) - - - - - - INPUT FILES - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:4) - - - - - Display this usage message (Short form: -?) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:14) - - - - - Execute interactions on a Windows Forms event loop (on by default) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:16) - - - - - Failed to resolve assembly '%s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:50) - - - - - \n- Exit...\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:40) - - - - - Exit fsi after loading the files or running the .fsx script given on the command line - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:15) - - - - - Exception raised when starting remoting server.\n%s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:10) - - - - - \n\nException raised during pretty printing.\nPlease report this so it can be fixed.\nTrace: %s\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:28) - - - - - - ERRORS AND WARNINGS - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:6) - - - - - Emit debug information in quotations - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:19) - - - - - Directory '%s' doesn't exist - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:23) - - - - - --> Referenced '%s' (an assembly with a different timestamp has already been referenced from this location, reset fsi to load the updated assembly) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:45) - - - - - --> Referenced '%s' (file may be locked by F# Interactive process) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:44) - - - - - --> Referenced '%s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:43) - - - - - --> Added '%s' to library include path - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:46) - - - - - Failed to install ctrl-c handler - Ctrl-C handling will not be available. Error was:\n\t%s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:42) - - - - - 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 C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:21) - - - - - - CODE GENERATION - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:5) - - - - - Binding session to '%s'... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:51) - - - - - For help type #help;; - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:20) - - - - - - ADVANCED - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:9) - - - - - - Aborting main thread... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:41) - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - Return each distinct item in the list using reference equality. - - - - - Return a new list with one element for each unique 'TKey. Multiple 'TValues are flattened. The original order of the first instance of 'TKey is preserved. - - - - - Get the most recent item if there is one. - - - - - Set the value for the given key. This value does not have to agree with computed value. - - - - - Remove the given value from the mru cache. - - - - - Get the value for the given key or None if not already available - - - - - Get the value for the given key. Compute if necessary. - - - - - Clear out the cache. - - - - - Simple priority caching for a small number of key\value associations. - This cache may age-out results that have been Set by the caller. - Because of this, the caller must be able to tolerate values - that aren't what was originally passed to the Set function. - - - - - Lookup the value without making it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. Return None if it wasn't there. - - - - - Remove the given value from the collection. - - - - - Add an element to the collection. Make it the most recent. - - - - - Remove all elements. - - - - - Simple aging lookup table. When a member is accessed it's - moved to the top of the list and when there are too many elements - the least-recently-accessed element falls of the end. - - - - - Class managing the command History. - - - - - List of available optionsCache - - - - - Inset all inputs by this amount - - - - - System.Console.ReadKey appears to return an ANSI character (not the expected the unicode character). - When this fix flag is true, this byte is converted to a char using the System.Console.InputEncoding. - This is a code-around for bug://1345. - Fixes to System.Console.ReadKey may break this code around, hence the option here. - - - - - The lock stops the type checker running at the same time as the server intellisense implementation. - - - - - Performs these steps: - - Load the dummy interaction, if any - - Set up exception handling, if any - - Load the initial files, if any - - Start the background thread to read the standard input, if any - - Sit in the GUI event loop indefinitely, if needed - - - - - Load the dummy interaction, load the initial files, and, - if interacting, start the background thread to read the standard input. - - - - - The primary type, representing a full F# Interactive session, reading from the given - text input, writing to the given text output and error writers. - - - - - This is the event loop implementation for winforms - - - - - Creating the dummy form object can crash on Mono Mac, and then prints a nasty background - error during finalization of the half-initialized object... - - - - -Use a dummy to access protected member - - - - - Parse then process one parsed interaction. - - During normal execution, this initially runs on the parser - thread, then calls runCodeOnMainThread when it has completed - parsing and needs to typecheck and execute a definition. This blocks the parser thread - until execution has competed on the GUI thread. - - During processing of startup scripts, this runs on the main thread. - - - - - Send a dummy interaction through F# Interactive, to ensure all the most common code generation paths are - JIT'ed and ready for use. - - - - - Load the source files, one by one. Called on the main thread. - - - - - Perform an "include" on a script file (i.e. a script file specified on the command line) - - - - - Evaluate the given expression and produce a new interactive state. - - - - - Evaluate the given definitions and produce a new interactive state. - - - - - Clear the value held in the previous "it" binding, if any, as long as it has never been referenced. - - - - - Encapsulates the coordination of the typechecking, optimization and code generation - components of the F# compiler for interactively executed fragments of code. - - A single instance of this object is created per interactive session. - - - - - When using a key-reading console this holds the first line after it is read - - - - - This threading event gets set after the first-line-reader has finished its work - - - - - Peek on the standard input so that the user can type into it from a console window. - Try to get the first line, if we snarfed it while probing. - - - - - Try to get the console, if it appears operational. - - - - - Process command line, flags and collect filenames. - The ParseCompilerOptions function calls imperative function to process "real" args - Rather than start processing, just collect names, then process them. - - - - - Process the command line options - - - - - A helper function to check if its time to abort - - - - - This ErrorLogger reports all warnings, but raises StopProcessing on first error or early exit - - - - - uprintf to write usual responses to stdout (suppressed by --quiet), with various pre/post newlines - - - - - Encapsulates functions used to write to outWriter and errorWriter - - - - - Clears the syphon text - - - - - Display the given error. - - - - - Gets the indicated line in the syphon text - - - - - Adds a new line to the syphon text - - - - - Used to make a copy of input in order to include the input when displaying the error text. - - - - - Generate a layout for an actual F# value, where we know the value has the given static type. - - - - - Fetch the saved value of an expression out of the 'it' register and show it. - - - - - Display the signature of an F# value declaration, along with its actual value. - - - - - Get the print options used when formatting output using the structured printer. - - - - - Get the evaluation context used when inverting the storage mapping of the ILRuntimeWriter. - - - - - Used to print value signatures along with their values, according to the current - set of pretty printers installed in the system, and default printing rules. - - - - - Set the input/output encoding. The use of a thread is due to a known bug on - on Vista where calls to Console.InputEncoding can block the process. - - - - - Set the current ui culture for the current thread. - - - - - Get the directory name from a string, with some defaults if it doesn't have one - - - - - Cursor position management - - - - diff --git a/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe b/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe deleted file mode 100644 index 964ceffa9..000000000 Binary files a/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe and /dev/null differ diff --git a/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe.config b/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe.config deleted file mode 100644 index 203fe3f4a..000000000 --- a/source/Calamari.Scripting/FSharp/fsiAnyCpu.exe.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/source/Calamari.Scripting/FSharp/fsiAnyCpu.xml b/source/Calamari.Scripting/FSharp/fsiAnyCpu.xml deleted file mode 100644 index e3386f4c3..000000000 --- a/source/Calamari.Scripting/FSharp/fsiAnyCpu.xml +++ /dev/null @@ -1,669 +0,0 @@ - - -fsiAnyCpu - - - - Stopped due to error\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:2) - - - - - Prevents references from being locked by the F# Interactive process - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:53) - - - - - 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). - - - - - 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). - - - - - Use the given file on startup as initial input - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:11) - - - - - Usage: %s <options> [script.fsx [<arguments>]] - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:3) - - - - - - Unexpected ThreadAbortException (Ctrl-C) during event handling: Trying to restart... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:49) - - - - - --> Timing now on - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:47) - - - - - --> Timing now off - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:48) - - - - - Real: %s, CPU: %s, GC %s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:26) - - - - - gen - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:27) - - - - - Treat remaining arguments as command line arguments, accessed using fsi.CommandLineArgs - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:13) - - - - - Support TAB completion in console (on by default) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:18) - - - - - Suppress fsi writing to stdout - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:17) - - - - - F# Interactive for F# 4.0 %s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:52) - - - - - - MISCELLANEOUS - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:8) - - - - - Loading - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:38) - - - - - #load the given file on startup - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:12) - - - - - Warning: line too long, ignoring some characters\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:25) - - - - - - LANGUAGE - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:7) - - - - - Invalid directive '#%s %s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:24) - - - - - '%s' is not a valid assembly name - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:22) - - - - - See '%s' for options - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:37) - - - - - F# Interactive command line options: - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:36) - - - - - F# Interactive directives: - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:29) - - - - - Toggle timing on/off - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:33) - - - - - Reference (dynamically load) the given DLL - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:30) - - - - - Exit - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:35) - - - - - Load the given file(s) as if compiled and referenced - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:32) - - - - - Display help - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:34) - - - - - Add the given search path for referenced DLLs - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:31) - - - - - \n- Interrupt\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:39) - - - - - - INPUT FILES - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:4) - - - - - Display this usage message (Short form: -?) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:14) - - - - - Execute interactions on a Windows Forms event loop (on by default) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:16) - - - - - Failed to resolve assembly '%s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:50) - - - - - \n- Exit...\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:40) - - - - - Exit fsi after loading the files or running the .fsx script given on the command line - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:15) - - - - - Exception raised when starting remoting server.\n%s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:10) - - - - - \n\nException raised during pretty printing.\nPlease report this so it can be fixed.\nTrace: %s\n - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:28) - - - - - - ERRORS AND WARNINGS - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:6) - - - - - Emit debug information in quotations - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:19) - - - - - Directory '%s' doesn't exist - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:23) - - - - - --> Referenced '%s' (an assembly with a different timestamp has already been referenced from this location, reset fsi to load the updated assembly) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:45) - - - - - --> Referenced '%s' (file may be locked by F# Interactive process) - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:44) - - - - - --> Referenced '%s' - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:43) - - - - - --> Added '%s' to library include path - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:46) - - - - - Failed to install ctrl-c handler - Ctrl-C handling will not be available. Error was:\n\t%s - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:42) - - - - - 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 C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:21) - - - - - - CODE GENERATION - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:5) - - - - - Binding session to '%s'... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:51) - - - - - For help type #help;; - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:20) - - - - - - ADVANCED - - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:9) - - - - - - Aborting main thread... - (Originally from C:\projects\fsharp\src\fsharp\fsi\FSIstrings.txt:41) - - - - - Call this method once to validate that all known resources are valid; throws if not - - - - - Return each distinct item in the list using reference equality. - - - - - Return a new list with one element for each unique 'TKey. Multiple 'TValues are flattened. The original order of the first instance of 'TKey is preserved. - - - - - Get the most recent item if there is one. - - - - - Set the value for the given key. This value does not have to agree with computed value. - - - - - Remove the given value from the mru cache. - - - - - Get the value for the given key or None if not already available - - - - - Get the value for the given key. Compute if necessary. - - - - - Clear out the cache. - - - - - Simple priority caching for a small number of key\value associations. - This cache may age-out results that have been Set by the caller. - Because of this, the caller must be able to tolerate values - that aren't what was originally passed to the Set function. - - - - - Lookup the value without making it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. - Returns the original key value because the areSame function - may have unified two different keys. - - - - - Lookup a value and make it the most recent. Return None if it wasn't there. - - - - - Remove the given value from the collection. - - - - - Add an element to the collection. Make it the most recent. - - - - - Remove all elements. - - - - - Simple aging lookup table. When a member is accessed it's - moved to the top of the list and when there are too many elements - the least-recently-accessed element falls of the end. - - - - - Class managing the command History. - - - - - List of available optionsCache - - - - - Inset all inputs by this amount - - - - - System.Console.ReadKey appears to return an ANSI character (not the expected the unicode character). - When this fix flag is true, this byte is converted to a char using the System.Console.InputEncoding. - This is a code-around for bug://1345. - Fixes to System.Console.ReadKey may break this code around, hence the option here. - - - - - The lock stops the type checker running at the same time as the server intellisense implementation. - - - - - Performs these steps: - - Load the dummy interaction, if any - - Set up exception handling, if any - - Load the initial files, if any - - Start the background thread to read the standard input, if any - - Sit in the GUI event loop indefinitely, if needed - - - - - Load the dummy interaction, load the initial files, and, - if interacting, start the background thread to read the standard input. - - - - - The primary type, representing a full F# Interactive session, reading from the given - text input, writing to the given text output and error writers. - - - - - This is the event loop implementation for winforms - - - - - Creating the dummy form object can crash on Mono Mac, and then prints a nasty background - error during finalization of the half-initialized object... - - - - -Use a dummy to access protected member - - - - - Parse then process one parsed interaction. - - During normal execution, this initially runs on the parser - thread, then calls runCodeOnMainThread when it has completed - parsing and needs to typecheck and execute a definition. This blocks the parser thread - until execution has competed on the GUI thread. - - During processing of startup scripts, this runs on the main thread. - - - - - Send a dummy interaction through F# Interactive, to ensure all the most common code generation paths are - JIT'ed and ready for use. - - - - - Load the source files, one by one. Called on the main thread. - - - - - Perform an "include" on a script file (i.e. a script file specified on the command line) - - - - - Evaluate the given expression and produce a new interactive state. - - - - - Evaluate the given definitions and produce a new interactive state. - - - - - Clear the value held in the previous "it" binding, if any, as long as it has never been referenced. - - - - - Encapsulates the coordination of the typechecking, optimization and code generation - components of the F# compiler for interactively executed fragments of code. - - A single instance of this object is created per interactive session. - - - - - When using a key-reading console this holds the first line after it is read - - - - - This threading event gets set after the first-line-reader has finished its work - - - - - Peek on the standard input so that the user can type into it from a console window. - Try to get the first line, if we snarfed it while probing. - - - - - Try to get the console, if it appears operational. - - - - - Process command line, flags and collect filenames. - The ParseCompilerOptions function calls imperative function to process "real" args - Rather than start processing, just collect names, then process them. - - - - - Process the command line options - - - - - A helper function to check if its time to abort - - - - - This ErrorLogger reports all warnings, but raises StopProcessing on first error or early exit - - - - - uprintf to write usual responses to stdout (suppressed by --quiet), with various pre/post newlines - - - - - Encapsulates functions used to write to outWriter and errorWriter - - - - - Clears the syphon text - - - - - Display the given error. - - - - - Gets the indicated line in the syphon text - - - - - Adds a new line to the syphon text - - - - - Used to make a copy of input in order to include the input when displaying the error text. - - - - - Generate a layout for an actual F# value, where we know the value has the given static type. - - - - - Fetch the saved value of an expression out of the 'it' register and show it. - - - - - Display the signature of an F# value declaration, along with its actual value. - - - - - Get the print options used when formatting output using the structured printer. - - - - - Get the evaluation context used when inverting the storage mapping of the ILRuntimeWriter. - - - - - Used to print value signatures along with their values, according to the current - set of pretty printers installed in the system, and default printing rules. - - - - - Set the input/output encoding. The use of a thread is due to a known bug on - on Vista where calls to Console.InputEncoding can block the process. - - - - - Set the current ui culture for the current thread. - - - - - Get the directory name from a string, with some defaults if it doesn't have one - - - - - Cursor position management - - - - diff --git a/source/Calamari.Shared/Calamari.Shared.csproj b/source/Calamari.Shared/Calamari.Shared.csproj index 5bdc18988..91de81ed1 100644 --- a/source/Calamari.Shared/Calamari.Shared.csproj +++ b/source/Calamari.Shared/Calamari.Shared.csproj @@ -40,7 +40,6 @@ - all runtime; build; native; contentfiles; analyzers @@ -97,8 +96,6 @@ - - diff --git a/source/Calamari.Testing/Helpers/TestCategory.cs b/source/Calamari.Testing/Helpers/TestCategory.cs index 0cd9b4280..2d1e60cea 100644 --- a/source/Calamari.Testing/Helpers/TestCategory.cs +++ b/source/Calamari.Testing/Helpers/TestCategory.cs @@ -6,8 +6,6 @@ public static class TestCategory { public static class ScriptingSupport { - public const string FSharp = "fsharp"; - public const string DotnetScript = "dotnet-script"; public const string ScriptCS = "scriptcs"; diff --git a/source/Calamari.Tests/Calamari.Tests.csproj b/source/Calamari.Tests/Calamari.Tests.csproj index 6bf283fc5..921a87889 100644 --- a/source/Calamari.Tests/Calamari.Tests.csproj +++ b/source/Calamari.Tests/Calamari.Tests.csproj @@ -59,9 +59,6 @@ - - - PreserveNewest @@ -110,9 +107,6 @@ PreserveNewest - - PreserveNewest - PreserveNewest @@ -260,9 +254,6 @@ --> - - - @@ -270,29 +261,22 @@ - @(FSharpCompilerToolsRef->'%(ResolvedPath)')/tools/*.* - @(FSharpCompilerToolsRef->'%(ResolvedPath)')/tools/*.exe @(ScriptCSRef->'%(ResolvedPath)')/tools/*.* @(ScriptCSRef->'%(ResolvedPath)')/tools/*.exe @(NuGetCommandLineRef->'%(ResolvedPath)')/tools/*.* - - - - - diff --git a/source/Calamari.Tests/Fixtures/Deployment/DeployWebPackageFixture.cs b/source/Calamari.Tests/Fixtures/Deployment/DeployWebPackageFixture.cs index 0b231c308..d72041e94 100644 --- a/source/Calamari.Tests/Fixtures/Deployment/DeployWebPackageFixture.cs +++ b/source/Calamari.Tests/Fixtures/Deployment/DeployWebPackageFixture.cs @@ -140,17 +140,15 @@ public void ShouldTransformConfig() } [Test] - [Category(TestCategory.ScriptingSupport.FSharp)] [Category(TestCategory.ScriptingSupport.DotnetScript)] public void ShouldInvokeDeployFailedOnError() { Variables.Set("ShouldFail", "yes"); var result = DeployPackage(); - if (ScriptingEnvironment.IsRunningOnMono()) + if (CalamariEnvironment.IsRunningOnNix || CalamariEnvironment.IsRunningOnMac) result.AssertOutput("I have failed! DeployFailed.sh"); else result.AssertOutput("I have failed! DeployFailed.ps1"); - result.AssertNoOutput("I have failed! DeployFailed.fsx"); result.AssertNoOutput("I have failed! DeployFailed.csx"); } @@ -160,7 +158,6 @@ public void ShouldNotInvokeDeployFailedWhenNoError() var result = DeployPackage(); result.AssertNoOutput("I have failed! DeployFailed.ps1"); result.AssertNoOutput("I have failed! DeployFailed.sh"); - result.AssertNoOutput("I have failed! DeployFailed.fsx"); result.AssertNoOutput("I have failed! DeployFailed.csx"); } @@ -310,7 +307,7 @@ public void ShouldDeployInParallel() result.AssertSuccess(); var extracted = result.GetOutputForLineContaining("Extracting package to: "); - result.AssertOutput("Extracted 11 files"); + result.AssertOutput("Extracted 10 files"); lock (locker) { diff --git a/source/Calamari.Tests/Fixtures/Deployment/Packages/Acme.Web/DeployFailed.fsx b/source/Calamari.Tests/Fixtures/Deployment/Packages/Acme.Web/DeployFailed.fsx deleted file mode 100644 index cca4cea17..000000000 --- a/source/Calamari.Tests/Fixtures/Deployment/Packages/Acme.Web/DeployFailed.fsx +++ /dev/null @@ -1 +0,0 @@ -printfn "I have failed! DeployFailed.fsx" diff --git a/source/Calamari.Tests/Fixtures/FSharp/FSharpFixture.cs b/source/Calamari.Tests/Fixtures/FSharp/FSharpFixture.cs deleted file mode 100644 index 4022cab9f..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/FSharpFixture.cs +++ /dev/null @@ -1,139 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using Calamari.Deployment; -using Calamari.Integration.FileSystem; -using Calamari.Testing.Helpers; -using Calamari.Testing.Requirements; -using Calamari.Tests.Helpers; -using NUnit.Framework; -using Octostache; - -namespace Calamari.Tests.Fixtures.FSharp -{ - [TestFixture] - [Category(TestCategory.ScriptingSupport.FSharp)] - public class FSharpFixture : CalamariFixture - { - [Test, RequiresDotNet45] - public void ShouldPrintEncodedVariable() - { - var (output, _) = RunScript("OutputVariable.fsx"); - output.AssertSuccess(); - output.AssertOutput("##octopus[setVariable name='RG9ua2V5' value='S29uZw==']"); - } - - [Test, RequiresDotNet45] - public void ShouldPrintSensitiveVariable() - { - var (output, _) = RunScript("SensitiveOutputVariable.fsx", new Dictionary()); - - output.AssertSuccess(); - output.AssertOutput( - "##octopus[setVariable name='UGFzc3dvcmQ=' value='Y29ycmVjdCBob3JzZSBiYXR0ZXJ5IHN0YXBsZQ==' sensitive='VHJ1ZQ==']"); - } - - [Test, RequiresDotNet45] - public void ShouldCreateArtifact() - { - var (output, _) = RunScript("CreateArtifact.fsx", new Dictionary()); - - output.AssertOutput("##octopus[createArtifact"); - output.AssertOutput("name='bXlGaWxlLnR4dA==' length='MTAw']"); - } - - [Test, RequiresDotNet45] - public void ShouldUpdateProgress() - { - var (output, _) = RunScript("UpdateProgress.fsx", new Dictionary()); - - output.AssertOutput("##octopus[progress percentage='NTA=' message='SGFsZiBXYXk=']"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHello() - { - var (output, _) = RunScript("Hello.fsx", new Dictionary() - { - ["Name"] = "Paul", - ["Variable2"] = "DEF", - ["Variable3"] = "GHI", - ["Foo_bar"] = "Hello", - ["Host"] = "Never", - }); - - output.AssertSuccess(); - output.AssertOutput("Hello Paul"); - output.AssertProcessNameAndId("fsi"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloWithSensitiveVariable() - { - - var (output, _) = RunScript("Hello.fsx", - new Dictionary() {["Name"] = "NameToEncrypt"}, - sensitiveVariablesPassword: "5XETGOgqYR2bRhlfhDruEg=="); - - output.AssertSuccess(); - output.AssertOutput("Hello NameToEncrypt"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloWithVariableSubstitution() - { - var (output, _) = RunScript("HelloVariableSubstitution.fsx", new Dictionary() - {["Name"] = "SubstitutedValue"}); - - output.AssertSuccess(); - output.AssertOutput("Hello SubstitutedValue"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloDirectValue() - { - var (output, _) = RunScript("Hello.fsx", new Dictionary() - {["Name"] = "direct value"}); - - output.AssertSuccess(); - output.AssertOutput("Hello direct value"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloDefaultValue() - { - var (output, _) = RunScript("HelloDefaultValue.fsx", new Dictionary() - {["Name"] = "direct value"}); - - output.AssertSuccess(); - output.AssertOutput("Hello default value"); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloWithNullVariable() - { - var (output, _) = RunScript("Hello.fsx", new Dictionary()); - - output.AssertSuccess(); - output.AssertOutput("Hello "); - } - - [Test, RequiresDotNet45] - public void ShouldCallHelloWithNullSensitiveVariable() - { - var (output, _) = RunScript("Hello.fsx", new Dictionary(), sensitiveVariablesPassword: "5XETGOgqYR2bRhlfhDruEg=="); - - output.AssertSuccess(); - output.AssertOutput("Hello "); - } - - [Test, RequiresDotNet45] - public void ShouldConsumeParametersWithQuotes() - { - var (output, _) = RunScript("Parameters.fsx", new Dictionary() - { [SpecialVariables.Action.Script.ScriptParameters] = "\"Para meter0\" Parameter1" }); - - output.AssertSuccess(); - output.AssertOutput("Parameters Para meter0-Parameter1"); - } - } -} \ No newline at end of file diff --git a/source/Calamari.Tests/Fixtures/FSharp/FSharpProxyFixture.cs b/source/Calamari.Tests/Fixtures/FSharp/FSharpProxyFixture.cs deleted file mode 100644 index 28b4028ae..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/FSharpProxyFixture.cs +++ /dev/null @@ -1,19 +0,0 @@ -using Calamari.Testing.Helpers; -using Calamari.Tests.Fixtures.Integration.Proxies; -using Calamari.Tests.Helpers; -using NUnit.Framework; - -namespace Calamari.Tests.Fixtures.FSharp -{ - [TestFixture] - [Category(TestCategory.ScriptingSupport.FSharp)] - public class FSharpProxyFixture : WindowsScriptProxyFixtureBase - { - protected override CalamariResult RunScript() - { - return RunScript("Proxy.fsx").result; - } - - protected override bool TestWebRequestDefaultProxy => true; - } -} \ No newline at end of file diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/CreateArtifact.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/CreateArtifact.fsx deleted file mode 100644 index de3ee285b..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/CreateArtifact.fsx +++ /dev/null @@ -1,9 +0,0 @@ -open System -open System.IO - -let bytes : byte array = Array.zeroCreate 100 -System.IO.Directory.CreateDirectory("Temp") -System.IO.File.WriteAllBytes(Path.Combine("Temp","myFile.txt"), bytes) -let path = Path.Combine("Temp","myFile.txt") - -Octopus.createArtifact path None diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Hello.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/Hello.fsx deleted file mode 100644 index ae58faec7..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Hello.fsx +++ /dev/null @@ -1,6 +0,0 @@ -let value = - match "Name" |> Octopus.tryFindVariable with - | Some x -> x - | None -> "not available" - -printfn "Hello %s" value diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDefaultValue.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDefaultValue.fsx deleted file mode 100644 index e1da420cc..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDefaultValue.fsx +++ /dev/null @@ -1,3 +0,0 @@ -let findVariableOrDefault = "default value" |> Octopus.findVariableOrDefault -let value = "84C7692E-AD89-41F5-9987-DA4C555D2813" |> findVariableOrDefault -printfn "Hello %s" value diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDirectValue.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDirectValue.fsx deleted file mode 100644 index 4fb30874a..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloDirectValue.fsx +++ /dev/null @@ -1,2 +0,0 @@ -let value = "Name" |> Octopus.findVariable -printfn "Hello %s" value diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloVariableSubstitution.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloVariableSubstitution.fsx deleted file mode 100644 index 7eb42a05e..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/HelloVariableSubstitution.fsx +++ /dev/null @@ -1 +0,0 @@ -printfn "Hello %s" "#{Name}" diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/OutputVariable.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/OutputVariable.fsx deleted file mode 100644 index 914c749e3..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/OutputVariable.fsx +++ /dev/null @@ -1,2 +0,0 @@ -Octopus.setVariable "Donkey" "Kong" - diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Parameters.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/Parameters.fsx deleted file mode 100644 index 04a112def..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Parameters.fsx +++ /dev/null @@ -1 +0,0 @@ -printfn "Parameters %s-%s" fsi.CommandLineArgs.[1] fsi.CommandLineArgs.[2] diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Proxy.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/Proxy.fsx deleted file mode 100644 index 999eeea8f..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/Proxy.fsx +++ /dev/null @@ -1,11 +0,0 @@ -"HTTP_PROXY" |> System.Environment.GetEnvironmentVariable |> printfn "HTTP_PROXY:%s" -"HTTPS_PROXY" |> System.Environment.GetEnvironmentVariable |> printfn "HTTPS_PROXY:%s" -"NO_PROXY" |> System.Environment.GetEnvironmentVariable |> printfn "NO_PROXY:%s" - -let proxyUrl = new System.Uri("http://octopustesturl.com") |> System.Net.WebRequest.DefaultWebProxy.GetProxy -let actualProxyUrl = if proxyUrl.Host = "octopustesturl.com" then "None" else proxyUrl.ToString() -actualProxyUrl |> printfn "WebRequest.DefaultProxy:%s" - -let bypassUri = System.Environment.GetEnvironmentVariable("TEST_ONLY_PROXY_EXCEPTION_URI"); -if bypassUri <> null then - if (System.Uri(bypassUri) |> System.Net.WebRequest.DefaultWebProxy.IsBypassed) then bypassUri |> printfn "ProxyBypassed:%s" \ No newline at end of file diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/SensitiveOutputVariable.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/SensitiveOutputVariable.fsx deleted file mode 100644 index f55cd6202..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/SensitiveOutputVariable.fsx +++ /dev/null @@ -1 +0,0 @@ -Octopus.setSensitiveVariable "Password" "correct horse battery staple" diff --git a/source/Calamari.Tests/Fixtures/FSharp/Scripts/UpdateProgress.fsx b/source/Calamari.Tests/Fixtures/FSharp/Scripts/UpdateProgress.fsx deleted file mode 100644 index dd24e4617..000000000 --- a/source/Calamari.Tests/Fixtures/FSharp/Scripts/UpdateProgress.fsx +++ /dev/null @@ -1,3 +0,0 @@ -open System - -Octopus.updateProgress 50 "Half Way" diff --git a/source/Calamari.Tests/Fixtures/Integration/Scripting/FSharpExecutorTests.cs b/source/Calamari.Tests/Fixtures/Integration/Scripting/FSharpExecutorTests.cs deleted file mode 100644 index d03c6f91a..000000000 --- a/source/Calamari.Tests/Fixtures/Integration/Scripting/FSharpExecutorTests.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System; -using System.Collections.Generic; -using Calamari.Common.Features.Processes; -using Calamari.Common.Features.Scripting; -using Calamari.Common.Features.Scripting.FSharp; -using Calamari.Common.FeatureToggles; -using Calamari.Common.Plumbing.Logging; -using Calamari.Common.Plumbing.Variables; -using NSubstitute; -using NUnit.Framework; - -namespace Calamari.Tests.Fixtures.Integration.Scripting -{ - [TestFixture] - public class FSharpExecutorTests - { - static IEnumerable FSharpDeprecationFeatureToggleTestData() - { - yield return new TestCaseData(new KeyValuePair(), - false); - yield return new TestCaseData( - new KeyValuePair(KnownVariables.EnabledFeatureToggles, ""), - false); - yield return new TestCaseData( - new KeyValuePair(KnownVariables.EnabledFeatureToggles, FeatureToggle.FSharpDeprecationFeatureToggle.ToString()), - true); - } - - [Test] - [TestCaseSource(nameof(FSharpDeprecationFeatureToggleTestData))] - public void LogsFSharpDeprecationWarningWhenToggledOn(KeyValuePair variableKvp, bool expected) - { - // Arrange - var log = Substitute.For(); - var script = new Script("fakeScript.fsx"); - var variables = new CalamariVariables - { { variableKvp.Key, variableKvp.Value } }; - var commandResult = new CommandResult("fakeCommand", 0); - var commandLineRunner = Substitute.For(); - commandLineRunner.Execute(Arg.Any()).Returns(commandResult); - - var executor = new FSharpExecutor(log); - - // Act - executor.Execute(script, variables, commandLineRunner); - - // Assert - if (expected) - { - log.Received(1).Warn(Arg.Is(s => s.StartsWith("Executing FSharp scripts will soon be deprecated"))); - } - else - { - log.DidNotReceive().Warn(Arg.Any()); - } - } - } -} \ No newline at end of file diff --git a/source/Calamari.Tests/Fixtures/Integration/Scripting/ScriptEngineFixture.cs b/source/Calamari.Tests/Fixtures/Integration/Scripting/ScriptEngineFixture.cs index bc5ec5adc..37010d145 100644 --- a/source/Calamari.Tests/Fixtures/Integration/Scripting/ScriptEngineFixture.cs +++ b/source/Calamari.Tests/Fixtures/Integration/Scripting/ScriptEngineFixture.cs @@ -18,7 +18,6 @@ public class ScriptEngineFixture ScriptSyntax.Bash, ScriptSyntax.Python, ScriptSyntax.CSharp, - ScriptSyntax.FSharp, ScriptSyntax.PowerShell }; @@ -27,7 +26,6 @@ public class ScriptEngineFixture ScriptSyntax.PowerShell, ScriptSyntax.Python, ScriptSyntax.CSharp, - ScriptSyntax.FSharp, ScriptSyntax.Bash }; diff --git a/source/Calamari/Calamari.csproj b/source/Calamari/Calamari.csproj index 3a0303e5d..d8f1cc866 100644 --- a/source/Calamari/Calamari.csproj +++ b/source/Calamari/Calamari.csproj @@ -48,7 +48,6 @@ - @@ -93,28 +92,21 @@ --> - - - - @(FSharpCompilerToolsRef->'%(ResolvedPath)')/tools/*.* @(ScriptCSRef->'%(ResolvedPath)')/tools/*.* - - -