From 972f7566f71d70e827198f705c258d4a4deeb46f Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Thu, 24 Jun 2021 10:08:22 -0500 Subject: [PATCH 1/3] initial work to bump to FCS 40 --- .config/dotnet-tools.json | 4 +- build.fsx | 2 +- paket.dependencies | 2 +- paket.lock | 491 ++++++------------ src/FSharp.Formatting.ApiDocs/GenerateHtml.fs | 2 +- .../GenerateModel.fs | 122 ++--- .../CodeFormatAgent.fs | 49 +- .../CommentFilter.fs | 50 +- src/FSharp.Formatting.CodeFormat/Pervasive.fs | 19 +- .../ToolTipReader.fs | 68 ++- .../FSharp.Formatting.CommandTool.fsproj | 2 +- .../YaafFSharpScripting.fs | 10 +- tests/FSharp.ApiDocs.Tests/AttributeTests.fs | 11 +- .../FSharp.ApiDocs.Tests.fsproj | 2 +- .../FSharp.CodeFormat.Tests.fsproj | 2 +- .../FSharp.Literate.Tests.fsproj | 2 +- .../FSharp.Markdown.Tests.fsproj | 2 +- 17 files changed, 342 insertions(+), 498 deletions(-) diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json index a927d0d70..66abe2357 100644 --- a/.config/dotnet-tools.json +++ b/.config/dotnet-tools.json @@ -3,13 +3,13 @@ "isRoot": true, "tools": { "fake-cli": { - "version": "5.20.3", + "version": "5.20.4", "commands": [ "fake" ] }, "paket": { - "version": "5.249.0", + "version": "6.0.0-rc002", "commands": [ "paket" ] diff --git a/build.fsx b/build.fsx index 2b5a93223..5a3245192 100644 --- a/build.fsx +++ b/build.fsx @@ -90,7 +90,7 @@ Target.create "Tests" (fun _ -> { opts with Blame = true NoBuild = true - Framework = if Environment.isWindows then opts.Framework else Some "netcoreapp3.1" + Framework = Some "net5.0" Configuration = configuration ResultsDirectory = Some "TestResults" Logger = Some "trx" diff --git a/paket.dependencies b/paket.dependencies index 926e43068..1e490a2a3 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -5,7 +5,7 @@ framework: auto-detect storage: none nuget FSharp.Core >= 4.7 lowest_matching:true -nuget FSharp.Compiler.Service 39.0.0 +nuget FSharp.Compiler.Service 40.0.0 nuget CommandLineParser ~> 2.8 nuget Microsoft.Build.Framework nuget Microsoft.Build.Tasks.Core diff --git a/paket.lock b/paket.lock index c2f851bf1..86d32ceef 100644 --- a/paket.lock +++ b/paket.lock @@ -1,13 +1,13 @@ STORAGE: NONE -RESTRICTION: || (== netcoreapp3.1) (== netstandard2.1) +RESTRICTION: || (== net5.0) (== netstandard2.1) NUGET remote: https://api.nuget.org/v3/index.json CommandLineParser (2.8) - FSharp.Compiler.Service (39.0) - FSharp.Core (5.0.1) - Microsoft.Build.Framework (>= 16.6) - Microsoft.Build.Tasks.Core (>= 16.6) - Microsoft.Build.Utilities.Core (>= 16.6) + FSharp.Compiler.Service (40.0) + FSharp.Core (5.0.2) + Microsoft.Build.Framework (>= 16.9) + Microsoft.Build.Tasks.Core (>= 16.9) + Microsoft.Build.Utilities.Core (>= 16.9) System.Buffers (>= 4.5.1) System.Collections.Immutable (>= 5.0) System.Diagnostics.Process (>= 4.3) @@ -29,111 +29,99 @@ NUGET System.Threading.Tasks.Parallel (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - FSharp.Core (5.0.1) + FSharp.Core (5.0.2) FSharp.Data (3.3.3) FSharp.Core (>= 4.3.4) FsUnit (3.9) FSharp.Core (>= 4.2.3) NETStandard.Library (>= 2.0.3) NUnit (>= 3.12 < 4.0) - Ionide.ProjInfo (0.52) - FSharp.Core (>= 5.0.1) - Ionide.ProjInfo.Sln (>= 0.52) - Microsoft.Build (>= 16.8) - Microsoft.Build.Locator (>= 1.4.1) - Ionide.ProjInfo.Sln (0.52) - Microsoft.Build (16.9) - Microsoft.Build.Framework (>= 16.9) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - Microsoft.Win32.Registry (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections.Immutable (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Memory (>= 4.5.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Reflection.Metadata (>= 1.6) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Security.Principal.Windows (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Text.Json (>= 4.7) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - Microsoft.Build.Framework (16.9) + Ionide.ProjInfo (0.53.1) + FSharp.Core (>= 5.0.2) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Ionide.ProjInfo.Sln (>= 0.53.1) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build.Framework (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build.Locator (>= 1.4.1) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Ionide.ProjInfo.Sln (0.53.1) + Microsoft.Build (16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build.Framework (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.NET.StringTools (>= 1.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Win32.Registry (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + System.Collections.Immutable (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + System.Configuration.ConfigurationManager (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + System.Reflection.Metadata (>= 1.6) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + System.Security.Principal.Windows (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + System.Text.Json (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build.Framework (16.10) System.Security.Permissions (>= 4.7) - Microsoft.Build.Locator (1.4.1) - Microsoft.Build.Tasks.Core (16.9) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Build.Utilities.Core (>= 16.9) + Microsoft.Build.Locator (1.4.1) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) + Microsoft.Build.Tasks.Core (16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) + Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) System.CodeDom (>= 4.4) System.Collections.Immutable (>= 5.0) System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.1) System.Resources.Extensions (>= 4.6) - System.Runtime.InteropServices (>= 4.3) System.Security.Cryptography.Pkcs (>= 4.7) System.Security.Cryptography.Xml (>= 4.7) System.Security.Permissions (>= 4.7) System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.9) - Microsoft.Build.Framework (>= 16.9) + Microsoft.Build.Utilities.Core (16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) System.Collections.Immutable (>= 5.0) + System.Configuration.ConfigurationManager (>= 4.7) System.Security.Permissions (>= 4.7) System.Text.Encoding.CodePages (>= 4.0.1) Microsoft.CodeAnalysis.Analyzers (3.3.2) - Microsoft.CodeAnalysis.Common (3.9) - Microsoft.CodeAnalysis.Analyzers (>= 3.0) + Microsoft.CodeAnalysis.Common (3.10) + Microsoft.CodeAnalysis.Analyzers (>= 3.3.2) System.Collections.Immutable (>= 5.0) System.Memory (>= 4.5.4) System.Reflection.Metadata (>= 5.0) System.Runtime.CompilerServices.Unsafe (>= 5.0) System.Text.Encoding.CodePages (>= 4.5.1) System.Threading.Tasks.Extensions (>= 4.5.4) - Microsoft.CodeAnalysis.CSharp (3.9) - Microsoft.CodeAnalysis.Common (3.9) - Microsoft.CodeCoverage (16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net45)) (&& (== netstandard2.1) (>= netcoreapp1.0)) - Microsoft.DotNet.InternalAbstractions (1.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.AppContext (>= 4.1) - System.Collections (>= 4.0.11) - System.IO (>= 4.1) - System.IO.FileSystem (>= 4.0.1) - System.Reflection.TypeExtensions (>= 4.1) - System.Runtime.Extensions (>= 4.1) - System.Runtime.InteropServices (>= 4.1) - System.Runtime.InteropServices.RuntimeInformation (>= 4.0) - Microsoft.NET.Test.Sdk (16.9.4) - Microsoft.CodeCoverage (>= 16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net45)) (&& (== netstandard2.1) (>= netcoreapp1.0)) - Microsoft.TestPlatform.TestHost (>= 16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) + Microsoft.CodeAnalysis.CSharp (3.10) + Microsoft.CodeAnalysis.Common (3.10) + Microsoft.CodeCoverage (16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net45)) (&& (== netstandard2.1) (>= netcoreapp1.0)) + Microsoft.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NET.Test.Sdk (16.10) + Microsoft.CodeCoverage (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net45)) (&& (== netstandard2.1) (>= netcoreapp1.0)) + Microsoft.TestPlatform.TestHost (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) Microsoft.NETCore.Platforms (5.0.2) Microsoft.NETCore.Targets (5.0) - Microsoft.TestPlatform.ObjectModel (16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) + Microsoft.TestPlatform.ObjectModel (16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) NuGet.Frameworks (>= 5.0) System.Reflection.Metadata (>= 1.6) - Microsoft.TestPlatform.TestHost (16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) - Microsoft.TestPlatform.ObjectModel (>= 16.9.4) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) (&& (== netstandard2.1) (>= uap10.0)) - Newtonsoft.Json (>= 9.0.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) (&& (== netstandard2.1) (>= uap10.0)) + Microsoft.TestPlatform.TestHost (16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) + Microsoft.TestPlatform.ObjectModel (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) (&& (== netstandard2.1) (>= uap10.0)) + Newtonsoft.Json (>= 9.0.1) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) (&& (== netstandard2.1) (>= uap10.0)) Microsoft.Win32.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) Microsoft.Win32.Registry (5.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.1) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.1) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.1) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.1) System.Security.AccessControl (>= 5.0) System.Security.Principal.Windows (>= 5.0) - Microsoft.Win32.SystemEvents (5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.0)) + Microsoft.Win32.SystemEvents (5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp2.0)) NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.1) - NuGet.Frameworks (5.9.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp1.0)) - NUnit (3.13.1) + NuGet.Frameworks (5.10) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp1.0)) (&& (== netstandard2.1) (>= netcoreapp2.1)) + NUnit (3.13.2) NETStandard.Library (>= 2.0) - NUnit3TestAdapter (3.17) - Microsoft.DotNet.InternalAbstractions (>= 1.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.ComponentModel.EventBasedAsync (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.ComponentModel.TypeConverter (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Diagnostics.Process (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Reflection (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Runtime.InteropServices.RuntimeInformation (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Threading.Thread (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Xml.XmlDocument (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Xml.XPath.XmlDocument (>= 4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) + NUnit3TestAdapter (4.0) runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) @@ -177,10 +165,8 @@ NUGET runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - Suave (2.6) + Suave (2.6.1) FSharp.Core - System.AppContext (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) System.Buffers (4.5.1) System.CodeDom (5.0) System.Collections (4.3) @@ -199,56 +185,17 @@ NUGET System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) System.Collections.Immutable (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.1) - System.Collections.NonGeneric (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Collections.Specialized (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections.NonGeneric (>= 4.3) - System.Globalization (>= 4.3) - System.Globalization.Extensions (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.ComponentModel (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) - System.ComponentModel.EventBasedAsync (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.ComponentModel.Primitives (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.ComponentModel (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.ComponentModel.TypeConverter (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Collections.NonGeneric (>= 4.3) - System.Collections.Specialized (>= 4.3) - System.ComponentModel (>= 4.3) - System.ComponentModel.Primitives (>= 4.3) - System.Globalization (>= 4.3) - System.Linq (>= 4.3) - System.Reflection (>= 4.3) - System.Reflection.Extensions (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Reflection.TypeExtensions (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.1) + System.Configuration.ConfigurationManager (5.0) + System.Security.Cryptography.ProtectedData (>= 5.0) + System.Security.Permissions (>= 5.0) System.Diagnostics.Debug (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Diagnostics.DiagnosticSource (5.0.1) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (>= net45) (< netstandard1.3)) (&& (== netcoreapp3.1) (>= net46)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.1) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net45) (< netstandard1.3)) (&& (== netcoreapp3.1) (>= net46)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netcoreapp3.0)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= uap10.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.1) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net45) (< netstandard1.3)) (&& (== net5.0) (>= net46)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.1) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net45) (< netstandard1.3)) (&& (== net5.0) (>= net46)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netcoreapp3.0)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.1) System.Diagnostics.Process (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.Win32.Primitives (>= 4.3) @@ -285,11 +232,11 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Drawing.Common (5.0.2) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) - Microsoft.Win32.SystemEvents (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.0)) + System.Drawing.Common (5.0.2) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) + Microsoft.Win32.SystemEvents (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp2.0)) (&& (== netstandard2.1) (>= netcoreapp3.0)) System.Formats.Asn1 (5.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.1) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (>= uap10.1)) (== netstandard2.1) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.1) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.1) System.Globalization (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -357,9 +304,9 @@ NUGET System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netstandard1.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.1) - System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.1) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== netcoreapp3.1) (>= monoandroid)) (&& (== netcoreapp3.1) (>= monotouch)) (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.0)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard1.1)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= uap10.1)) (&& (== netcoreapp3.1) (>= xamarinios)) (&& (== netcoreapp3.1) (>= xamarinmac)) (&& (== netcoreapp3.1) (>= xamarintvos)) (&& (== netcoreapp3.1) (>= xamarinwatchos)) (== netstandard2.1) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.1) + System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.1) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.1) System.Net.Http (4.3.4) Microsoft.NETCore.Platforms (>= 1.1.1) runtime.native.System (>= 4.3) @@ -440,7 +387,7 @@ NUGET System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Numerics.Vectors (4.5) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.0)) (== netstandard2.1) + System.Numerics.Vectors (4.5) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.1) System.ObjectModel (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) @@ -462,14 +409,14 @@ NUGET System.Reflection (>= 4.3) System.Runtime (>= 4.3) System.Reflection.Metadata (5.0) - System.Collections.Immutable (>= 5.0) + System.Collections.Immutable (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (== netstandard2.1) System.Reflection.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Reflection.TypeExtensions (4.7) System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.1) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.1) System.Resources.ResourceManager (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -495,14 +442,6 @@ NUGET System.Reflection.Primitives (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices.RuntimeInformation (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - runtime.native.System (>= 4.3) - System.Reflection (>= 4.3) - System.Reflection.Extensions (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Threading (>= 4.3) System.Runtime.Loader (4.3) System.IO (>= 4.3) System.Reflection (>= 4.3) @@ -513,7 +452,7 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Security.AccessControl (5.0) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.0)) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp2.0)) System.Security.Principal.Windows (>= 5.0) System.Security.Claims (4.3) System.Collections (>= 4.3) @@ -539,7 +478,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Security.Cryptography.Cng (5.0) - System.Formats.Asn1 (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) + System.Formats.Asn1 (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) System.Security.Cryptography.Csp (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.IO (>= 4.3) @@ -568,7 +507,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Security.Cryptography.OpenSsl (5.0) - System.Formats.Asn1 (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) + System.Formats.Asn1 (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) System.Security.Cryptography.Pkcs (5.0.1) System.Formats.Asn1 (>= 5.0) System.Security.Cryptography.Cng (>= 5.0) @@ -580,6 +519,8 @@ NUGET System.Runtime (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) + System.Security.Cryptography.ProtectedData (5.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.1) System.Security.Cryptography.X509Certificates (4.3.2) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System (>= 4.3) @@ -607,12 +548,12 @@ NUGET System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) System.Security.Cryptography.Xml (5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== netcoreapp3.1) (< netcoreapp2.1)) (== netstandard2.1) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.1) System.Security.Cryptography.Pkcs (>= 5.0) System.Security.Permissions (>= 5.0) System.Security.Permissions (5.0) System.Security.AccessControl (>= 5.0) - System.Windows.Extensions (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) + System.Windows.Extensions (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) System.Security.Principal (4.3) System.Runtime (>= 4.3) System.Security.Principal.Windows (5.0) @@ -621,19 +562,14 @@ NUGET Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Text.Encoding.CodePages (5.0) - Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.0)) - System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) (&& (== netstandard2.1) (>= netcoreapp2.0)) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.1) System.Text.Encoding.Extensions (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Text.Encoding (>= 4.3) - System.Text.Encodings.Web (5.0.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) (&& (== netstandard2.1) (>= netcoreapp3.0)) - System.Text.Json (5.0.2) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= net472)) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Text.Encodings.Web (>= 5.0.1) - System.Text.RegularExpressions (4.3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) (&& (== netstandard2.1) (>= netcoreapp5.0)) - System.Runtime (>= 4.3.1) + System.Text.Json (5.0.2) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= net5.0)) System.Threading (4.3) System.Runtime (>= 4.3) System.Threading.Tasks (>= 4.3) @@ -643,7 +579,7 @@ NUGET System.Runtime (>= 4.3) System.Threading.Tasks.Dataflow (5.0) System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== netcoreapp3.1) (>= net461)) (&& (== netcoreapp3.1) (< netcoreapp2.1)) (&& (== netcoreapp3.1) (< netstandard1.0)) (&& (== netcoreapp3.1) (< netstandard2.0)) (&& (== netcoreapp3.1) (>= wp8)) (== netstandard2.1) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard1.0)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= wp8)) (== netstandard2.1) System.Threading.Tasks.Parallel (4.3) System.Collections.Concurrent (>= 4.3) System.Diagnostics.Debug (>= 4.3) @@ -658,56 +594,8 @@ NUGET System.Threading.ThreadPool (4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.Windows.Extensions (5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) - System.Drawing.Common (>= 5.0) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp3.0)) - System.Xml.ReaderWriter (4.3.1) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.IO.FileSystem (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Text.Encoding.Extensions (>= 4.3) - System.Text.RegularExpressions (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.3) - System.Xml.XmlDocument (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Xml.ReaderWriter (>= 4.3) - System.Xml.XPath (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Xml.ReaderWriter (>= 4.3) - System.Xml.XPath.XmlDocument (4.3) - restriction: || (== netcoreapp3.1) (&& (== netstandard2.1) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Xml.ReaderWriter (>= 4.3) - System.Xml.XmlDocument (>= 4.3) - System.Xml.XPath (>= 4.3) + System.Windows.Extensions (5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) + System.Drawing.Common (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.1) (>= netcoreapp3.0)) GROUP Fake STORAGE: NONE @@ -841,47 +729,49 @@ NUGET FSharp.Core (>= 4.7.2) - restriction: >= netstandard2.0 System.Reactive (>= 5.0) - restriction: >= netstandard2.0 FSharp.Core (4.7.2) - Microsoft.Bcl.AsyncInterfaces (5.0) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) + Microsoft.Bcl.AsyncInterfaces (5.0) - restriction: >= net472 System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (>= net461) (&& (< netcoreapp2.1) (>= netstandard2.0) (< netstandard2.1)) - Microsoft.Build (16.9) - restriction: >= netstandard2.0 - Microsoft.Build.Framework (>= 16.9) - restriction: || (>= net472) (>= netcoreapp2.1) + Microsoft.Build (16.10) - restriction: >= netstandard2.0 + Microsoft.Build.Framework (>= 16.10) - restriction: >= net472 + Microsoft.NET.StringTools (>= 1.0) - restriction: >= net472 Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472 - Microsoft.Win32.Registry (>= 4.3) - restriction: >= netcoreapp2.1 - System.Collections.Immutable (>= 5.0) - restriction: || (>= net472) (>= netcoreapp2.1) - System.Memory (>= 4.5.4) - restriction: || (>= net472) (>= netcoreapp2.1) - System.Reflection.Metadata (>= 1.6) - restriction: >= netcoreapp2.1 - System.Security.Principal.Windows (>= 4.7) - restriction: >= netcoreapp2.1 - System.Text.Encoding.CodePages (>= 4.0.1) - restriction: >= netcoreapp2.1 - System.Text.Json (>= 4.7) - restriction: || (>= net472) (>= netcoreapp2.1) - System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (>= net472) (>= netcoreapp2.1) - Microsoft.Build.Framework (16.9) - restriction: >= netstandard2.0 + System.Collections.Immutable (>= 5.0) - restriction: >= net472 + System.Configuration.ConfigurationManager (>= 4.7) - restriction: >= net472 + System.Memory (>= 4.5.4) - restriction: >= net472 + System.Text.Json (>= 4.7) - restriction: >= net472 + System.Threading.Tasks.Dataflow (>= 4.9) - restriction: >= net472 + Microsoft.Build.Framework (16.10) - restriction: >= netstandard2.0 System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0) - Microsoft.Build.Tasks.Core (16.9) - restriction: >= netstandard2.0 - Microsoft.Build.Framework (>= 16.9) - restriction: >= netstandard2.0 - Microsoft.Build.Utilities.Core (>= 16.9) - restriction: >= netstandard2.0 + Microsoft.Build.Tasks.Core (16.10) - restriction: >= netstandard2.0 + Microsoft.Build.Framework (>= 16.10) - restriction: >= netstandard2.0 + Microsoft.Build.Utilities.Core (>= 16.10) - restriction: >= netstandard2.0 + Microsoft.NET.StringTools (>= 1.0) - restriction: >= netstandard2.0 Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472 Microsoft.Win32.Registry (>= 4.3) - restriction: && (< net472) (>= netstandard2.0) System.CodeDom (>= 4.4) - restriction: && (< net472) (>= netstandard2.0) System.Collections.Immutable (>= 5.0) - restriction: >= netstandard2.0 System.Reflection.Metadata (>= 1.6) - restriction: && (< net472) (>= netstandard2.0) - System.Reflection.TypeExtensions (>= 4.1) - restriction: && (< net472) (>= netstandard2.0) System.Resources.Extensions (>= 4.6) - restriction: >= netstandard2.0 - System.Runtime.InteropServices (>= 4.3) - restriction: && (< net472) (>= netstandard2.0) System.Security.Cryptography.Pkcs (>= 4.7) - restriction: && (< net472) (>= netstandard2.0) System.Security.Cryptography.Xml (>= 4.7) - restriction: && (< net472) (>= netstandard2.0) System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0) System.Threading.Tasks.Dataflow (>= 4.9) - restriction: >= netstandard2.0 - Microsoft.Build.Utilities.Core (16.9) - restriction: >= netstandard2.0 - Microsoft.Build.Framework (>= 16.9) - restriction: >= netstandard2.0 + Microsoft.Build.Utilities.Core (16.10) - restriction: >= netstandard2.0 + Microsoft.Build.Framework (>= 16.10) - restriction: >= netstandard2.0 + Microsoft.NET.StringTools (>= 1.0) - restriction: >= netstandard2.0 Microsoft.VisualStudio.Setup.Configuration.Interop (>= 1.16.30) - restriction: >= net472 Microsoft.Win32.Registry (>= 4.3) - restriction: && (< net472) (>= netstandard2.0) System.Collections.Immutable (>= 5.0) - restriction: >= netstandard2.0 + System.Configuration.ConfigurationManager (>= 4.7) - restriction: >= netstandard2.0 System.Security.Permissions (>= 4.7) - restriction: && (< net472) (>= netstandard2.0) System.Text.Encoding.CodePages (>= 4.0.1) - restriction: && (< net472) (>= netstandard2.0) - Microsoft.NETCore.Platforms (5.0.2) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) - Microsoft.NETCore.Targets (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) (>= netcoreapp5.0) + Microsoft.NET.StringTools (1.0) - restriction: >= netstandard2.0 + System.Memory (>= 4.5.4) - restriction: >= netstandard2.0 + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: >= netstandard2.0 + Microsoft.NETCore.Platforms (5.0.2) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (< monoandroid) (< net45) (< netcoreapp3.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (>= monotouch) (>= netcoreapp2.1)) (>= netcoreapp2.0) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (< netcoreapp3.1) (>= net5.0)) (&& (>= net5.0) (< netstandard1.2)) (&& (>= net5.0) (< netstandard1.3)) (&& (>= net5.0) (< netstandard1.5)) + Microsoft.NETCore.Targets (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp3.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< netcoreapp3.1) (>= net5.0)) (&& (>= net5.0) (< netstandard1.2)) (&& (>= net5.0) (< netstandard1.3)) (&& (>= net5.0) (< netstandard1.5)) Microsoft.VisualStudio.Setup.Configuration.Interop (1.16.30) - restriction: >= net472 - Microsoft.Win32.Registry (5.0) - restriction: || (&& (< net45) (>= netstandard2.0)) (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.1) + Microsoft.Win32.Registry (5.0) - restriction: || (&& (< net45) (>= netstandard2.0)) (&& (< net472) (>= netstandard2.0)) System.Buffers (>= 4.5.1) - restriction: || (>= monoandroid) (>= monotouch) (&& (< net46) (< netcoreapp2.0) (>= netstandard2.0)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (>= uap10.1) System.Security.AccessControl (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (&& (< net46) (>= netstandard2.0)) (>= net461) (>= netcoreapp2.0) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) @@ -889,174 +779,103 @@ NUGET Microsoft.Win32.SystemEvents (5.0) - restriction: >= netcoreapp3.0 Microsoft.NETCore.Platforms (>= 5.0) - restriction: >= netcoreapp2.0 Mono.Posix.NETStandard (1.0) - restriction: >= netstandard2.0 - MSBuild.StructuredLogger (2.1.404) - restriction: >= netstandard2.0 + MSBuild.StructuredLogger (2.1.507) - restriction: >= netstandard2.0 Microsoft.Build (>= 16.4) - restriction: >= netstandard2.0 Microsoft.Build.Framework (>= 16.4) - restriction: >= netstandard2.0 Microsoft.Build.Tasks.Core (>= 16.4) - restriction: >= netstandard2.0 Microsoft.Build.Utilities.Core (>= 16.4) - restriction: >= netstandard2.0 Newtonsoft.Json (13.0.1) - restriction: >= netstandard2.0 - NuGet.Common (5.9.1) - restriction: >= netstandard2.0 - NuGet.Frameworks (>= 5.9.1) - restriction: || (>= net45) (>= netstandard2.0) - NuGet.Configuration (5.9.1) - restriction: >= netstandard2.0 - NuGet.Common (>= 5.9.1) - restriction: || (>= net45) (>= netstandard2.0) + NuGet.Common (5.10) - restriction: >= netstandard2.0 + NuGet.Frameworks (>= 5.10) - restriction: || (>= net45) (>= netstandard2.0) + NuGet.Configuration (5.10) - restriction: >= netstandard2.0 + NuGet.Common (>= 5.10) - restriction: || (>= net45) (>= netstandard2.0) System.Security.Cryptography.ProtectedData (>= 4.4) - restriction: && (< net45) (>= netstandard2.0) - NuGet.Frameworks (5.9.1) - restriction: >= netstandard2.0 - NuGet.Packaging (5.9.1) - restriction: >= netstandard2.0 - Newtonsoft.Json (>= 9.0.1) - NuGet.Configuration (>= 5.9.1) - NuGet.Versioning (>= 5.9.1) - System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (< netstandard2.0) - System.Security.Cryptography.Pkcs (>= 5.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (< netstandard2.0) - NuGet.Protocol (5.9.1) - restriction: >= netstandard2.0 - NuGet.Packaging (>= 5.9.1) - NuGet.Versioning (5.9.1) - restriction: >= netstandard2.0 - System.Buffers (4.5.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monoandroid) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) + NuGet.Frameworks (5.10) - restriction: >= netstandard2.0 + NuGet.Packaging (5.10) - restriction: >= netstandard2.0 + Newtonsoft.Json (>= 9.0.1) - restriction: >= netstandard2.0 + NuGet.Configuration (>= 5.10) - restriction: >= netstandard2.0 + NuGet.Versioning (>= 5.10) - restriction: >= netstandard2.0 + System.Security.Cryptography.Cng (>= 5.0) - restriction: && (< net472) (>= netstandard2.0) + System.Security.Cryptography.Pkcs (>= 5.0) - restriction: && (< net472) (>= netstandard2.0) + NuGet.Protocol (5.10) - restriction: >= netstandard2.0 + NuGet.Packaging (>= 5.10) - restriction: >= netstandard2.0 + NuGet.Versioning (5.10) - restriction: >= netstandard2.0 + System.Buffers (4.5.1) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (>= net472) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) System.CodeDom (5.0) - restriction: && (< net472) (>= netstandard2.0) - System.Collections (4.3) - restriction: >= netcoreapp5.0 - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Collections.Immutable (5.0) - restriction: || (&& (>= net461) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp5.0)) (&& (>= netcoreapp2.1) (< netstandard1.1)) (>= netstandard2.0) + System.Collections.Immutable (5.0) - restriction: >= netstandard2.0 System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= net46) (< netstandard2.0)) (>= net461) (>= uap10.1) - System.Diagnostics.Contracts (4.3) - restriction: >= netcoreapp5.0 - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Diagnostics.Debug (4.3) - restriction: >= netcoreapp5.0 - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) + System.Configuration.ConfigurationManager (5.0) - restriction: >= netstandard2.0 + System.Security.Permissions (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (>= netstandard2.0) (>= xamarintvos) (>= xamarinwatchos) System.Drawing.Common (5.0.2) - restriction: >= netcoreapp3.0 Microsoft.Win32.SystemEvents (>= 5.0) - restriction: >= netcoreapp2.0 System.Formats.Asn1 (5.0) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (< netcoreapp2.0) (>= netstandard2.1)) (>= netcoreapp3.0) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) - System.Globalization (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.IO (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Text.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Threading.Tasks (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Linq (4.3) - restriction: >= netcoreapp5.0 - System.Collections (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Diagnostics.Debug (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.6) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime.Extensions (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Memory (4.5.4) - restriction: || (&& (< monoandroid) (< net45) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= net461) (>= netcoreapp2.1)) (&& (>= net461) (>= netstandard2.0)) (>= net472) (>= netcoreapp2.0) (&& (>= netcoreapp2.1) (< netstandard2.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netstandard2.0) (>= uap10.1)) + System.IO (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= net5.0)) (&& (>= net5.0) (< netstandard1.4)) (&& (>= net5.0) (< netstandard1.6)) + System.Memory (4.5.4) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (>= net461) (>= netstandard2.0)) (>= net472) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (>= netstandard2.0) (>= uap10.1)) System.Buffers (>= 4.5.1) - restriction: || (>= monoandroid) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (< uap10.1) (>= wpa81)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Numerics.Vectors (>= 4.5) - restriction: >= net461 System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (>= monoandroid) (>= monotouch) (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Numerics.Vectors (4.5) - restriction: || (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) + System.Numerics.Vectors (4.5) - restriction: >= net472 System.Reactive (5.0) - restriction: >= netstandard2.0 System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - restriction: && (< net472) (< netcoreapp3.1) (>= netstandard2.0) System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (>= net472) (&& (< netcoreapp3.1) (>= netstandard2.0)) (>= uap10.1) - System.Reflection (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.5) (>= netstandard2.0)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Reflection.Metadata (5.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.1) - System.Collections.Immutable (>= 5.0) - restriction: || (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< netcoreapp5.0) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) - System.Reflection.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Reflection.TypeExtensions (4.7) - restriction: && (< net472) (>= netstandard2.0) - System.Diagnostics.Contracts (>= 4.3) - restriction: >= netcoreapp5.0 - System.Diagnostics.Debug (>= 4.3) - restriction: >= netcoreapp5.0 - System.Linq (>= 4.3) - restriction: >= netcoreapp5.0 - System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (>= netcoreapp5.0) - System.Reflection.Primitives (>= 4.3) - restriction: >= netcoreapp5.0 - System.Resources.ResourceManager (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.5) (< netstandard2.0) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.5) (< uap10.1)) (>= netcoreapp5.0) - System.Runtime.Extensions (>= 4.3) - restriction: >= netcoreapp5.0 + System.Reflection.Metadata (5.0) - restriction: && (< net472) (>= netstandard2.0) + System.Collections.Immutable (>= 5.0) - restriction: || (&& (>= net45) (< netstandard2.0)) (&& (< net45) (< net5.0) (>= netstandard2.0)) (&& (< net45) (>= netstandard1.1) (< netstandard2.0) (< win8) (< wpa81)) (>= net461) (&& (< netstandard1.1) (>= portable-net45+win8+wpa81) (< win8)) (&& (< netstandard1.1) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) System.Resources.Extensions (5.0) - restriction: >= netstandard2.0 System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) - System.Resources.ResourceManager (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.5) (>= netstandard2.0)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Globalization (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) - System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.2) (>= netstandard2.0) (< win8)) (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.5) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net462) (< net472) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime.CompilerServices.Unsafe (5.0) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= net461) (>= netcoreapp2.1)) (&& (>= net461) (>= netstandard2.0)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (< netcoreapp5.0)) (&& (>= netcoreapp2.1) (< netstandard1.1)) (&& (>= netcoreapp2.1) (< netstandard2.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netcoreapp3.0) (< netcoreapp5.0)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= wp8)) - System.Runtime.Extensions (4.3.1) - restriction: >= netcoreapp5.0 - Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime.Handles (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp1.1) (>= netstandard2.0)) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - Microsoft.NETCore.Targets (>= 1.1) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime (>= 4.3) - restriction: && (< monoandroid) (< monotouch) (< net46) (>= netstandard1.3) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos) - System.Runtime.InteropServices (4.3) - restriction: && (< net472) (>= netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) - System.Reflection (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) - System.Reflection.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.1) (< netstandard1.2) (< win8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= net462) (>= netcoreapp1.1) - System.Runtime.Handles (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= netcoreapp1.1) + System.Runtime (4.3.1) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp3.1) (>= netstandard2.0) (< win8) (< wpa81) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= net5.0)) (&& (< netcoreapp3.1) (>= net5.0)) (&& (>= net5.0) (< netstandard1.4)) (&& (>= net5.0) (< netstandard1.6)) + Microsoft.NETCore.Platforms (>= 1.1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= net5.0) + Microsoft.NETCore.Targets (>= 1.1.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.5) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.2) (< win8) (< wp8)) (&& (< monoandroid) (< net45) (>= netstandard1.2) (< netstandard1.3) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (>= netstandard1.3) (< netstandard1.5) (< win8) (< wpa81)) (>= net5.0) + System.Runtime.CompilerServices.Unsafe (5.0) - restriction: || (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= netstandard2.0) (< win8)) (&& (>= net461) (>= netstandard2.0)) (>= net472) (&& (>= netcoreapp2.0) (< net5.0)) (&& (< netstandard1.0) (>= netstandard2.0) (>= win8)) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= wp8)) System.Runtime.InteropServices.WindowsRuntime (4.3) - restriction: && (< net472) (< netcoreapp3.1) (>= netstandard2.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= netcoreapp5.0) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< win8) (< wp8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net5.0) System.Security.AccessControl (5.0) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0)) (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) Microsoft.NETCore.Platforms (>= 5.0) - restriction: >= netcoreapp2.0 System.Security.Principal.Windows (>= 5.0) - restriction: || (&& (>= net46) (< netstandard2.0)) (&& (< net46) (>= netstandard1.3) (< netstandard2.0) (< uap10.1)) (&& (< net46) (>= netstandard2.0)) (>= net461) (>= netcoreapp2.0) System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net461) (< net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) - System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (>= net463) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (>= net463) (>= netcoreapp5.0) - System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) (>= netcoreapp5.0) - System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< netstandard1.6)) (>= net463) (>= netcoreapp5.0) + System.IO (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (>= net463) (>= net5.0) + System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (>= net463) (>= net5.0) + System.Security.Cryptography.Encoding (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (>= net463) (>= net5.0) + System.Security.Cryptography.Primitives (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< netstandard1.6)) (>= net463) (>= net5.0) System.Security.Cryptography.Cng (5.0) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (< net472) (>= netstandard2.0)) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (< netcoreapp2.0) (>= netstandard2.1)) (&& (>= netcoreapp2.1) (< netstandard2.1)) (>= netcoreapp3.0) Microsoft.NETCore.Platforms (>= 5.0) - restriction: && (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1) System.Formats.Asn1 (>= 5.0) - restriction: >= netcoreapp3.0 System.Security.Cryptography.Algorithms (>= 4.3.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net46) (>= netstandard1.6) (< netstandard2.0) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net46) (>= netstandard1.3) (< netstandard1.4)) (&& (< monoandroid) (< net46) (>= netstandard1.4) (< netstandard1.6) (< uap10.1)) (&& (>= net46) (< netstandard1.4)) (&& (>= net461) (< net462) (< netstandard1.6)) (&& (>= net462) (< netstandard1.6)) (>= net47) - System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= netcoreapp5.0)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.6)) + System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= net5.0)) (&& (>= net5.0) (< netstandard1.4)) (&& (>= net5.0) (< netstandard1.6)) System.Security.Cryptography.Pkcs (5.0.1) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net461) (>= netstandard2.0)) (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.1) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) System.Buffers (>= 4.5.1) - restriction: && (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac) System.Formats.Asn1 (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (&& (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (< netcoreapp2.0) (>= netstandard2.1)) (>= netcoreapp3.0) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (>= uap10.1) System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1) (< xamarinios) (< xamarinmac)) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (< netcoreapp2.0) (>= netstandard2.1)) (&& (>= netcoreapp2.1) (< netstandard2.1)) (>= netcoreapp3.0) - System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net461) (< net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= netcoreapp5.0)) (&& (>= net47) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net47) (< netstandard1.6) (>= netstandard2.0)) (&& (>= netcoreapp5.0) (< netstandard1.4)) (&& (>= netcoreapp5.0) (< netstandard1.6)) + System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (< monoandroid) (< net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< monoandroid) (< net46) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net46) (< netstandard1.4) (>= netstandard2.0)) (&& (< net46) (>= net461) (< netstandard1.6) (>= netstandard2.0)) (&& (< net46) (>= net47) (>= netstandard2.0)) (&& (>= net461) (< net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net461) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net462) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net462) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net463) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net47) (< net472) (>= netstandard2.0)) (&& (>= net47) (>= net5.0)) (&& (>= net47) (< netstandard1.4) (>= netstandard2.0)) (&& (>= net47) (< netstandard1.6) (>= netstandard2.0)) (&& (>= net5.0) (< netstandard1.4)) (&& (>= net5.0) (< netstandard1.6)) System.Security.Cryptography.ProtectedData (5.0) - restriction: && (< net45) (>= netstandard2.0) System.Memory (>= 4.5.4) - restriction: && (< monoandroid) (< net46) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) System.Security.Cryptography.Xml (5.0) - restriction: && (< net472) (>= netstandard2.0) System.Memory (>= 4.5.4) - restriction: && (< monoandroid) (< net461) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac) System.Security.Cryptography.Pkcs (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (&& (< net461) (>= netstandard2.0)) (>= netcoreapp2.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Security.Permissions (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (>= netstandard2.0) (>= xamarintvos) (>= xamarinwatchos) - System.Security.Permissions (5.0) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net472) (>= netstandard2.0)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) + System.Security.Permissions (5.0) - restriction: >= netstandard2.0 System.Security.AccessControl (>= 5.0) - restriction: || (>= net461) (>= netstandard2.0) System.Windows.Extensions (>= 5.0) - restriction: >= netcoreapp3.0 System.Security.Principal.Windows (5.0) - restriction: || (&& (>= monoandroid) (>= netstandard2.0)) (&& (>= monotouch) (>= netstandard2.0)) (&& (< net45) (>= netstandard2.0)) (>= netcoreapp2.0) (&& (>= netstandard2.0) (>= uap10.1)) (&& (>= netstandard2.0) (>= xamarintvos)) (&& (>= netstandard2.0) (>= xamarinwatchos)) (>= xamarinios) (>= xamarinmac) Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) - System.Text.Encoding (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Text.Encoding.CodePages (5.0) - restriction: || (&& (< net472) (>= netstandard2.0)) (>= netcoreapp2.1) + System.Text.Encoding.CodePages (5.0) - restriction: && (< net472) (>= netstandard2.0) Microsoft.NETCore.Platforms (>= 5.0) - restriction: >= netcoreapp2.0 - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp5.0)) - System.Text.Encodings.Web (5.0.1) - restriction: || (&& (>= monoandroid) (>= netcoreapp2.1)) (&& (>= monotouch) (>= netcoreapp2.1)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (>= netcoreapp2.1) (>= xamarinios)) (&& (>= netcoreapp2.1) (>= xamarinmac)) (&& (>= netcoreapp2.1) (>= xamarintvos)) (&& (>= netcoreapp2.1) (>= xamarinwatchos)) (&& (>= netcoreapp3.0) (< netcoreapp5.0)) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (< monoandroid) (< net46) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< net5.0)) + System.Text.Encodings.Web (5.0.1) - restriction: >= net472 System.Buffers (>= 4.5.1) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (>= net461) System.Memory (>= 4.5.4) - restriction: || (&& (< net45) (< netcoreapp2.0) (>= netstandard2.0) (< netstandard2.1)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1) (< netstandard2.1)) (>= uap10.1) - System.Text.Json (5.0.2) - restriction: || (>= net472) (>= netcoreapp2.1) + System.Text.Json (5.0.2) - restriction: >= net472 Microsoft.Bcl.AsyncInterfaces (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Buffers (>= 4.5.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (< netcoreapp2.0) (>= netstandard2.0)) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Memory (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (>= uap10.1) System.Numerics.Vectors (>= 4.5) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< netcoreapp5.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) - System.Text.Encodings.Web (>= 5.0.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< netcoreapp5.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< net5.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) + System.Text.Encodings.Web (>= 5.0.1) - restriction: || (>= monoandroid) (>= monotouch) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (&& (< netcoreapp2.0) (>= netstandard2.0)) (&& (>= netcoreapp2.1) (< netcoreapp3.0)) (&& (>= netcoreapp3.0) (< net5.0)) (>= uap10.1) (>= xamarinios) (>= xamarinmac) (>= xamarintvos) (>= xamarinwatchos) System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (< monoandroid) (< netcoreapp2.0) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (>= net461) (&& (>= netcoreapp2.0) (< netcoreapp2.1)) (>= uap10.1) System.ValueTuple (>= 4.5) - restriction: >= net461 - System.Threading.Tasks (4.3) - restriction: || (&& (< monoandroid) (< net45) (< netstandard1.3) (>= netstandard2.0) (< win8) (< wpa81)) (&& (< monoandroid) (< net45) (< netstandard1.5) (>= netstandard2.0) (< win8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) - System.Runtime (>= 4.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.3) (< win8) (< wpa81) (< xamarinios) (< xamarinmac) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (>= netstandard1.0) (< netstandard1.3) (< win8) (< wp8) (< wpa81)) (>= netcoreapp5.0) System.Threading.Tasks.Dataflow (5.0) - restriction: >= netstandard2.0 - System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (>= net461) (>= netcoreapp2.1)) (>= net472) (&& (< netcoreapp2.0) (>= netcoreapp2.1)) (&& (>= netcoreapp2.1) (>= uap10.1)) (&& (< netcoreapp3.1) (>= netstandard2.0)) (&& (>= netstandard2.0) (>= uap10.1)) + System.Threading.Tasks.Extensions (4.5.4) - restriction: || (>= net472) (&& (< netcoreapp3.1) (>= netstandard2.0)) (&& (>= netstandard2.0) (>= uap10.1)) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (< monoandroid) (< monotouch) (< net45) (>= netstandard1.0) (< netstandard2.0) (< win8) (< wpa81) (< xamarintvos) (< xamarinwatchos)) (&& (< monoandroid) (< net45) (< netcoreapp2.1) (>= netstandard2.0) (< xamarinios) (< xamarinmac)) (&& (< monoandroid) (< netstandard1.0) (>= portable-net45+win8+wp8+wpa81) (< win8)) (&& (>= net45) (< netstandard2.0)) (>= net461) (&& (< netstandard1.0) (>= win8)) (&& (< netstandard2.0) (>= wpa81)) (>= wp8) - System.ValueTuple (4.5) - restriction: || (&& (>= net45) (>= netstandard2.0)) (&& (>= net461) (>= netcoreapp2.1)) (>= net472) + System.ValueTuple (4.5) - restriction: || (&& (>= net45) (>= netstandard2.0)) (>= net472) System.Windows.Extensions (5.0) - restriction: >= netcoreapp3.0 System.Drawing.Common (>= 5.0) - restriction: >= netcoreapp3.0 diff --git a/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs b/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs index 564d7ed82..44e76cf8f 100644 --- a/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs +++ b/src/FSharp.Formatting.ApiDocs/GenerateHtml.fs @@ -5,7 +5,7 @@ open System.Collections.Generic open System.IO open System.Web open FSharp.Formatting.Common -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Symbols open FSharp.Formatting.Templating open FSharp.Formatting.HtmlModel open FSharp.Formatting.HtmlModel.Html diff --git a/src/FSharp.Formatting.ApiDocs/GenerateModel.fs b/src/FSharp.Formatting.ApiDocs/GenerateModel.fs index 74181509c..55f6a2da8 100644 --- a/src/FSharp.Formatting.ApiDocs/GenerateModel.fs +++ b/src/FSharp.Formatting.ApiDocs/GenerateModel.fs @@ -8,7 +8,7 @@ open System.IO open System.Xml open System.Xml.Linq -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Symbols open FSharp.Compiler.Text open FSharp.Compiler.Text.Range open FSharp.Formatting.Common @@ -20,11 +20,12 @@ open FSharp.Formatting.HtmlModel open FSharp.Formatting.HtmlModel.Html open FSharp.Formatting.Templating open FSharp.Patterns +open FSharp.Compiler.Syntax [] module internal Utils = - + let (|AllAndLast|_|) (list:'T list)= if list.IsEmpty then None else let revd = List.rev list in Some(List.rev revd.Tail, revd.Head) @@ -56,7 +57,7 @@ module internal Utils = | None -> symbol.DeclarationLocation let isUnitType (ty: FSharpType) = - ty.HasTypeDefinition && ty.TypeDefinition.XmlDocSig = "T:Microsoft.FSharp.Core.unit" + ty.HasTypeDefinition && ty.TypeDefinition.XmlDocSig = "T:Microsoft.FSharp.Core.unit" module List = @@ -256,9 +257,9 @@ type ApiDocMember (displayName: string, attributes: ApiDocAttribute list, entity let (ApiDocMemberDetails(usageHtml, paramTypes, returnType, modifiers, typars, baseType, location, compiledName)) = details // merge the parameter docs and parameter types - let parameters = + let parameters = let paramTypes = - [ for (psym, _pnameText, _pty) in paramTypes -> + [ for (psym, _pnameText, _pty) in paramTypes -> let pnm = match psym with | Choice1Of2 p -> p.Name @@ -277,14 +278,14 @@ type ApiDocMember (displayName: string, attributes: ApiDocAttribute list, entity printfn "%s(%d,%d): warning: a parameter was missing a name" m.FileName m.StartLine m.StartColumn | Some nm -> if not (tdocs.ContainsKey pnm) then - printfn "%s(%d,%d): warning: missing docs for parameter '%s'" m.FileName m.StartLine m.StartColumn nm + printfn "%s(%d,%d): warning: missing docs for parameter '%s'" m.FileName m.StartLine m.StartColumn nm [ for (psym, pnm, pn, pty) in paramTypes -> {| ParameterSymbol = psym ParameterNameText=pn ParameterType=pty ParameterDocs=tdocs.TryFind pnm |} ] - + /// The member's modifiers member x.Modifiers : string list = modifiers @@ -339,7 +340,7 @@ type ApiDocMember (displayName: string, attributes: ApiDocAttribute list, entity /// The URL of the best link documentation for the item relative to "reference" directory (without the http://site.io/reference) static member GetUrl(entityUrlBaseName, displayName, root, collectionName, qualify, extension) = - sprintf "%sreference/%s%s%s#%s" root (if qualify then collectionName + "/" else "") entityUrlBaseName extension displayName + sprintf "%sreference/%s%s%s#%s" root (if qualify then collectionName + "/" else "") entityUrlBaseName extension displayName /// The URL of the best link documentation for the item relative to "reference" directory (without the http://site.io/reference) member x.Url(root, collectionName, qualify, extension) = @@ -379,7 +380,7 @@ type ApiDocMember (displayName: string, attributes: ApiDocAttribute list, entity x.Attributes |> Seq.exists (fun a -> a.IsRequireQualifiedAccessAttribute) - /// Returns the custom operation name, when this attribute is the CustomOperationAttribute. + /// Returns the custom operation name, when this attribute is the CustomOperationAttribute. member x.CustomOperationName = ApiDocAttribute.TryGetCustomOperationName(x.Attributes) @@ -687,7 +688,7 @@ type internal CrossReferenceResolver (root, collectionName, qualify, extensions) else None let getMemberName keepParts hasModuleSuffix (memberNameNoParen:string) = - let splits = memberNameNoParen.Split('.') |> Array.toList + let splits = memberNameNoParen.Split('.') |> Array.toList let noNamespaceParts = if splits.Length > keepParts then splits.[splits.Length - keepParts ..] @@ -756,13 +757,13 @@ type internal CrossReferenceResolver (root, collectionName, qualify, extensions) let tryResolveCrossReferenceForEntity (entity: FSharpEntity) = match registeredSymbolsToUrlBaseName.TryGetValue (entity) with - | true, _v -> + | true, _v -> let urlBaseName = getUrlBaseNameForRegisteredEntity entity Some { IsInternal = true - ReferenceLink = internalCrossReference urlBaseName + ReferenceLink = internalCrossReference urlBaseName NiceName = entity.LogicalName } - | _ -> + | _ -> match entity.TryFullName with | None -> None | Some nm -> Some (externalDocsLink false entity.DisplayName nm nm) @@ -780,7 +781,7 @@ type internal CrossReferenceResolver (root, collectionName, qualify, extensions) match niceNameEntityLookup.TryGetValue(typeName) with | true, entities -> match Seq.toList entities with - | entity :: _rest -> + | entity :: _rest -> let urlBaseName = getUrlBaseNameForRegisteredEntity entity { IsInternal = true ReferenceLink = internalCrossReference urlBaseName @@ -795,7 +796,7 @@ type internal CrossReferenceResolver (root, collectionName, qualify, extensions) assert (memberXmlSig.StartsWith("M:") || memberXmlSig.StartsWith("P:") || memberXmlSig.StartsWith("F:") || memberXmlSig.StartsWith("E:")) match xmlDocNameToSymbol.TryGetValue(memberXmlSig) with | true, (:? FSharpMemberOrFunctionOrValue as memb) when memb.DeclaringEntity.IsSome -> - let entityUrlBaseName = getUrlBaseNameForRegisteredEntity memb.DeclaringEntity.Value + let entityUrlBaseName = getUrlBaseNameForRegisteredEntity memb.DeclaringEntity.Value { IsInternal = true ReferenceLink = internalCrossReferenceForMember entityUrlBaseName memb NiceName = memb.DeclaringEntity.Value.DisplayName + "." + memb.DisplayName } @@ -888,10 +889,10 @@ module internal TypeFormatter = (if typar.IsSolveAtCompileTime then "^" else "'") + typar.Name let formatTypeArgumentsAsText (typars: FSharpGenericParameter list) = - List.map formatTypeArgumentAsText typars + List.map formatTypeArgumentAsText typars let bracketHtml (str:HtmlElement) = - span [] [!! "("; str; !! ")"] + span [] [!! "("; str; !! ")"] let bracketNonAtomicHtml (str:HtmlElement) = if str.ToString().Contains(" ") then bracketHtml str else str @@ -915,7 +916,7 @@ module internal TypeFormatter = match args with | [] -> typeName | [arg] -> - if tcref.DisplayName.StartsWith "[" then + if tcref.DisplayName.StartsWith "[" then span [] [formatTypeWithPrecAsHtml ctx 2 arg; !! tcref.DisplayName ] else span [] [formatTypeWithPrecAsHtml ctx 2 arg; !! " "; typeName] @@ -1086,7 +1087,7 @@ module internal SymbolReader = let customOpName = match tryFindAttrib v.Attributes with | None -> None - | Some v -> + | Some v -> v.ConstructorArguments |> Seq.map snd |> Seq.tryFind (fun x -> x :? string) @@ -1124,7 +1125,7 @@ module internal SymbolReader = let usageHtml = match v.IsMember, v.IsInstanceMember, v.LogicalName, v.DisplayName, customOpName with - // Constructors + // Constructors | _, _, ".ctor", _, _ -> span [] [!!v.ApparentEnclosingEntity.DisplayName; fullArgUsage ] // Indexers @@ -1140,7 +1141,7 @@ module internal SymbolReader = | _, false, _, name, _ when PrettyNaming.IsMangledOpName v.CompiledName -> match argInfos with // binary operators (taking a tuple) - | [[x;y]] -> + | [[x;y]] -> let left = formatCurriedArgsUsageAsHtml true false [[x]] let nm = PrettyNaming.DecompileOpName v.CompiledName let right = formatCurriedArgsUsageAsHtml true false [[y]] @@ -1162,12 +1163,12 @@ module internal SymbolReader = right ] // unary operators - | [[x]] -> + | [[x]] -> let nm = PrettyNaming.DecompileOpName v.CompiledName let right = formatCurriedArgsUsageAsHtml true false [[x]] span [] [!! nm; right ] - | _ -> + | _ -> span [] [!!name; if preferNoParens then !! " " fullArgUsage] @@ -1219,7 +1220,7 @@ module internal SymbolReader = let nm, ty = formatArgNameAndType i p let tyhtml = formatTypeAsHtml ctx.UrlMap ty |> codeHtml Choice1Of2 p, nm, tyhtml ) - + // Extension members can have apparent parents which are not F# types. // Hence getting the generic argument count if this is a little trickier let numGenericParamsOfApparentParent = @@ -1263,13 +1264,13 @@ module internal SymbolReader = else !! field.Name - let fields = case.UnionCaseFields |> List.ofSeq + let fields = case.Fields |> List.ofSeq let nm = if case.Name = "op_ColonColon" then "::" elif case.Name = "op_Nil" then "[]" else case.Name let usageHtml = - let fieldsHtmls = fields |> List.map formatFieldUsage + let fieldsHtmls = fields |> List.map formatFieldUsage if case.Name = "op_ColonColon" then - span [] [fieldsHtmls.[0]; !!" "; !! nm; fieldsHtmls.[1] ] + span [] [fieldsHtmls.[0]; !!" "; !! nm; fieldsHtmls.[1] ] |> codeHtml else match fieldsHtmls with @@ -1287,7 +1288,7 @@ module internal SymbolReader = Choice2Of2 fld, nm, html) let returnType = None - //if isUnitType retType then None else Some retTypeText + //if isUnitType retType then None else Some retTypeText let modifiers = List.empty let typeParams = List.empty @@ -1313,7 +1314,7 @@ module internal SymbolReader = let retTypeHtml = retType |> (formatTypeAsHtml ctx.UrlMap >> codeHtml) let returnType = if isUnitType retType then None else Some retTypeHtml - + let loc = tryGetLocation field let location = formatSourceLocation ctx.UrlRangeHighlight ctx.SourceFolderRepository loc ApiDocMemberDetails(usageHtml, paramTypes, returnType, modifiers, typeParams, None, location, if field.Name <> field.DisplayName then Some field.Name else None) @@ -1331,7 +1332,7 @@ module internal SymbolReader = let paramTypes = [] let returnType = None //let signatureTooltip = formatTypeAsText staticParam.Kind + (if staticParam.IsOptional then sprintf " (optional, default = %A)" staticParam.DefaultValue else "") - + let loc = tryGetLocation staticParam let location = formatSourceLocation ctx.UrlRangeHighlight ctx.SourceFolderRepository loc ApiDocMemberDetails(usageHtml, paramTypes, returnType, modifiers, typeParams, None, location, if staticParam.Name <> staticParam.DisplayName then Some staticParam.Name else None) @@ -1372,7 +1373,7 @@ module internal SymbolReader = //let parameters, rest = rest |> Seq.toList |> List.partition (fun (section, _) -> section = "Parameters") // tailOrEmpty drops the section headings, though not for summary which is implicit - let summary = summary |> List.collect (snd >> List.rev) + let summary = summary |> List.collect (snd >> List.rev) let returns = returns |> List.collect (snd >> List.rev) |> List.tailOrEmpty let examples = examples |> List.map (snd >> List.rev) |> List.tailOrEmpty let notes = notes |> List.map (snd >> List.rev) |> List.tailOrEmpty @@ -1395,7 +1396,7 @@ module internal SymbolReader = exceptions=[], rawData=raw) let findCommand cmd = - match cmd with + match cmd with | StringPosition.StartsWithWrapped ("[", "]") (ParseCommand(k, v), _rest) -> Some (k, v) | _ -> None @@ -1433,11 +1434,11 @@ module internal SymbolReader = if cref <> null then if System.String.IsNullOrEmpty(cref.Value) || cref.Value.Length < 3 then printfn "ignoring invalid cref specified in: %A" e - + // Older FSharp.Core cref listings don't start with "T:", see https://github.com/dotnet/fsharp/issues/9805 let cname = cref.Value - let cname = if cname.Contains(":") then cname else "T:"+cname - + let cname = if cname.Contains(":") then cname else "T:"+cname + match urlMap.ResolveCref cname with | Some reference -> html.AppendFormat("{1}", reference.ReferenceLink, reference.NiceName) |> ignore @@ -1474,11 +1475,11 @@ module internal SymbolReader = if summaryExpected then let summaries = doc.Elements(XName.Get "summary") |> Seq.toList let html = new StringBuilder() - for (id, e) in List.indexed summaries do + for (id, e) in List.indexed summaries do let n = if id = 0 then "summary" else "summary-" + string id rawData.[n] <- e.Value readXmlElementAsHtml true urlMap cmds html e - ApiDocHtml(html.ToString()) + ApiDocHtml(html.ToString()) else let html = new StringBuilder() readXmlElementAsHtml false urlMap cmds html doc @@ -1491,7 +1492,7 @@ module internal SymbolReader = let phtml = new StringBuilder() readXmlElementAsHtml true urlMap cmds phtml e let paramHtml = ApiDocHtml(phtml.ToString()) - paramName, paramHtml ] + paramName, paramHtml ] for e in doc.Elements(XName.Get "exclude") do cmds.["exclude"] <- e.Value @@ -1514,7 +1515,7 @@ module internal SymbolReader = let n = if id = 0 then "remarks" else "remarks-" + string id rawData.[n] <- e.Value readXmlElementAsHtml true urlMap cmds html e - ApiDocHtml(html.ToString()) |> Some + ApiDocHtml(html.ToString()) |> Some else None @@ -1563,7 +1564,7 @@ module internal SymbolReader = rawData.[n] <- e.Value readXmlElementAsHtml true urlMap cmds html e ApiDocHtml(html.ToString()) ] - + let notes = let noteNodes = doc.Elements(XName.Get "note") |> Seq.toList // 'note' is not part of the XML doc standard but is supported by Sandcastle and other tools @@ -1629,7 +1630,7 @@ module internal SymbolReader = let rec readXmlCommentAsHtml (urlMap : CrossReferenceResolver) (doc : XElement) (cmds: IDictionary<_, _>) = let doc, nsels = readXmlCommentAsHtmlAux true urlMap doc cmds - let nsdocs = readNamespaceDocs urlMap nsels + let nsdocs = readNamespaceDocs urlMap nsels doc, nsdocs and readNamespaceDocs (urlMap : CrossReferenceResolver) (nsels : XElement list option) = @@ -1725,7 +1726,7 @@ module internal SymbolReader = let doc = doc |> addMissingLinkToTypes ctx let html = readMarkdownCommentAsHtml doc // TODO: namespace summaries for markdown comments - let nsdocs = None + let nsdocs = None cmds, html, nsdocs let readXmlCommentAndCommands (ctx:ReadingContext) text el (cmds: IDictionary<_,_>) = @@ -1759,7 +1760,7 @@ module internal SymbolReader = // and should have the tag. It may be legacy of previously processing un-processed // XML in raw F# source. let doc, nsels = readXmlCommentAsHtmlAux false ctx.UrlMap el cmds - let nsdocs = readNamespaceDocs ctx.UrlMap nsels + let nsdocs = readNamespaceDocs ctx.UrlMap nsels cmds, doc, nsdocs | sum -> if ctx.MarkdownComments then @@ -1807,7 +1808,7 @@ module internal SymbolReader = not ctx.PublicOnly || access.IsPublic let collectNamespaceDocs results = - results + results |> List.unzip |> function (results, nspDocs) -> (results, combineNamespaceDocs nspDocs) @@ -1856,7 +1857,7 @@ module internal SymbolReader = if typ.UsesPrefixDisplay then sprintf "%s<%s>" typ.DisplayName gtext else - sprintf "%s %s" gtext typ.DisplayName + sprintf "%s %s" gtext typ.DisplayName let readUnionCases ctx entityUrl (typ:FSharpEntity) = typ.UnionCases @@ -1877,7 +1878,7 @@ module internal SymbolReader = let details = readFSharpField ctx field ApiDocMember(field.Name, readAttributes (Seq.append field.FieldAttributes field.PropertyAttributes), entityUrl, ApiDocMemberKind.RecordField, cat, catidx, exclude, details, comment, field, ctx.WarnOnMissingDocs))) |> collectNamespaceDocs - + let readStaticParams ctx entityUrl (typ:FSharpEntity) = typ.StaticParameters |> List.ofSeq @@ -1887,8 +1888,13 @@ module internal SymbolReader = ApiDocMember(staticParam.Name, [], entityUrl, ApiDocMemberKind.StaticParameter, cat, catidx, exclude, details, comment, staticParam, ctx.WarnOnMissingDocs))) |> collectNamespaceDocs + let xmlDocText (xmlDoc: FSharpXmlDoc) = + match xmlDoc with + | FSharpXmlDoc.FromXmlText(xmlDoc) -> String.concat "" xmlDoc.UnprocessedLines + | _ -> "" + // Create a xml documentation snippet and add it to the XmlMemberMap - let registerXmlDoc (ctx:ReadingContext) xmlDocSig (xmlDoc:string) = + let registerXmlDoc (ctx:ReadingContext) xmlDocSig (xmlDoc: string) = let xmlDoc = if xmlDoc.Contains "" then xmlDoc else "" + xmlDoc + "" let xmlDoc = "" + xmlDoc + "" let xmlDoc = XElement.Parse xmlDoc @@ -1898,7 +1904,7 @@ module internal SymbolReader = // Provided types don't have their docs dumped into the xml file, // so we need to add them to the XmlMemberMap separately let registerProvidedTypeXmlDocs (ctx:ReadingContext) (typ:FSharpEntity) = - let xmlDoc = registerXmlDoc ctx typ.XmlDocSig (String.concat "" typ.XmlDoc) + let xmlDoc = registerXmlDoc ctx typ.XmlDocSig (xmlDocText typ.XmlDoc) xmlDoc.Elements(XName.Get "param") |> Seq.choose (fun p -> let nameAttr = p.Attribute(XName.Get "name") @@ -1909,7 +1915,7 @@ module internal SymbolReader = registerXmlDoc ctx xmlDocSig (Security.SecurityElement.Escape xmlDoc) |> ignore) let rec readType (ctx:ReadingContext) (typ:FSharpEntity) = - if typ.IsProvided && typ.XmlDoc.Count > 0 then + if typ.IsProvided && typ.XmlDoc <> FSharpXmlDoc.None then registerProvidedTypeXmlDocs ctx typ let xmlDocSig = getXmlDocSigForType typ @@ -1924,7 +1930,7 @@ module internal SymbolReader = let loc = typ.DeclarationLocation let cmds, _comment, _ = readCommentAndCommands ctx (getXmlDocSigForType baseType.TypeDefinition) (Some loc) match cmds with - | Command "exclude" _ + | Command "exclude" _ | Command "omit" _ -> yield! getMembers baseType.TypeDefinition | _ -> () @@ -1945,8 +1951,8 @@ module internal SymbolReader = let baseType = typ.BaseType |> Option.map (formatTypeAsHtml ctx.UrlMap >> codeHtml) let allInterfaces = [ for i in typ.AllInterfaces -> formatTypeAsHtml ctx.UrlMap i |> codeHtml ] - let abbreviatedType = if typ.IsFSharpAbbreviation then Some (formatTypeAsHtml ctx.UrlMap typ.AbbreviatedType |> codeHtml) else None - let delegateSignature = if typ.IsDelegate then Some (formatDelegateSignatureAsHtml ctx.UrlMap typ.DisplayName typ.FSharpDelegateSignature |> codeHtml) else None + let abbreviatedType = if typ.IsFSharpAbbreviation then Some (formatTypeAsHtml ctx.UrlMap typ.AbbreviatedType |> codeHtml) else None + let delegateSignature = if typ.IsDelegate then Some (formatDelegateSignatureAsHtml ctx.UrlMap typ.DisplayName typ.FSharpDelegateSignature |> codeHtml) else None let name = readTypeNameAsText typ let cases, nsdocs1 = readUnionCases ctx entityUrl typ @@ -1989,7 +1995,7 @@ module internal SymbolReader = let nsdocs = combineNamespaceDocs [nsdocs1; nsdocs2; nsdocs3; nsdocs4] if nsdocs.IsSome then printfn "ignoring namespace summary on nested position" - + let loc = tryGetLocation modul let location = formatSourceLocation ctx.UrlRangeHighlight ctx.SourceFolderRepository loc ApiDocEntity @@ -2013,7 +2019,7 @@ module internal SymbolReader = str.["microsoft-".Length ..] else str - + let readNamespace ctx (ns, entities:seq) = let entities, nsdocs = readEntities ctx entities ApiDocNamespace(stripMicrosoft ns, entities, ctx.Substitutions, nsdocs) @@ -2041,7 +2047,7 @@ module internal SymbolReader = if xmlMemberMap.ContainsKey key then Log.warnf "Duplicate documentation for '%s', one will be ignored!" key xmlMemberMap.[key] <- value - + // Code formatting agent & options used when processing inline code snippets in comments let asmPath = Path.GetDirectoryName(defaultArg assembly.FileName xmlFile) let formatAgent = CodeFormatAgent() @@ -2049,7 +2055,7 @@ module internal SymbolReader = ReadingContext.Create (publicOnly, assemblyName, xmlMemberMap, sourceFolderRepo, urlRangeHighlight, mdcomments, urlMap, asmPath, codeFormatCompilerArgs, formatAgent, substitutions, warn) - + // let namespaces = assembly.Contents.Entities @@ -2088,7 +2094,7 @@ type ApiDocInput = Warn: bool /// Whether to generate only public things - PublicOnly: bool + PublicOnly: bool } static member FromFile(assemblyPath: string, ?mdcomments, ?substitutions, ?sourceRepo, ?sourceFolder, ?publicOnly, ?warn) = { Path=assemblyPath; @@ -2105,7 +2111,7 @@ type ApiDocFileExtensions = { InFile: string InUrl: string } - + /// Represents a set of assemblies integrated with their associated documentation type ApiDocModel internal (substitutions, collection, entityInfos, root, qualify, fileExtensions, urlMap) = /// The substitutions. Different substitutions can also be used for each specific input diff --git a/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs b/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs index eab5553d9..1c813c519 100644 --- a/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs +++ b/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs @@ -8,13 +8,17 @@ open System open System.IO open System.Runtime.ExceptionServices open FSharp.Compiler -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Tokenization open FSharp.Compiler.Text open FSharp.Formatting.CodeFormat open FSharp.Formatting.CodeFormat.CommentFilter open FSharp.Formatting.Common open FSharp.Formatting.Internal open FSharp.Formatting.Markdown +open FSharp.Compiler.EditorServices +open FSharp.Compiler.CodeAnalysis +open FSharp.Compiler.Diagnostics + // -------------------------------------------------------------------------------------- // ? // -------------------------------------------------------------------------------------- @@ -150,10 +154,11 @@ type CodeFormatAgent() = | SemanticClassificationType.TypeArgument -> Some TokenKind.TypeArgument | SemanticClassificationType.Operator -> Some TokenKind.Operator | SemanticClassificationType.IntrinsicFunction -> Some TokenKind.Keyword + | n -> None // Processes a single line of the snippet - let processSnippetLine (checkResults: FSharpCheckFileResults) (semanticRanges: struct(range * SemanticClassificationType)[]) + let processSnippetLine (checkResults: FSharpCheckFileResults) (semanticRanges: SemanticClassificationItem[]) (lines: string[]) (line: int, lineTokens: SnippetLine) = let lineStr = lines.[line] @@ -198,7 +203,7 @@ type CodeFormatAgent() = // If we're processing an identfier, see if it has any tool tip if (token.TokenName = "IDENT") then let island = List.rev island - let tip = checkResults.GetToolTipText(line + 1, token.LeftColumn + 1, lines.[line], island,FSharpTokenTag.IDENT) + let tip = checkResults.GetToolTip(line + 1, token.LeftColumn + 1, lines.[line], island,FSharpTokenTag.IDENT) match tip |> ToolTipReader.tryFormatTip with | Some(_) as res -> res | _ -> None @@ -221,8 +226,8 @@ type CodeFormatAgent() = | _ -> let kind = semanticRanges - |> Array.tryFind (fun struct(range,_) -> range.StartColumn = token.LeftColumn) - |> Option.bind (fun struct(_,category) -> categoryToTokenKind category) + |> Array.tryFind (fun item -> item.Range.StartColumn = token.LeftColumn) + |> Option.bind (fun item -> categoryToTokenKind item.Type) |> Option.defaultValue (Helpers.getTokenKind token.ColorClass) yield TokenSpan.Token (kind, body, tip) // Process the rest of the line @@ -232,30 +237,30 @@ type CodeFormatAgent() = | _x, Some { LeftCol = strLeftCol; RightCol = strRightCol } -> let printfOrEscapedSpans = semanticRanges - |> Array.filter (fun struct(range,category) -> - (category = SemanticClassificationType.Printf) && - range.StartColumn >= strLeftCol && - range.EndColumn <= strRightCol) + |> Array.filter (fun item -> + (item.Type = SemanticClassificationType.Printf) && + item.Range.StartColumn >= strLeftCol && + item.Range.EndColumn <= strRightCol) match printfOrEscapedSpans with | [||] -> yield TokenSpan.Token (TokenKind.String, lineStr.[strLeftCol..strRightCol], None) | spans -> let data = spans - |> Array.fold (fun points struct(range, _category) -> + |> Array.fold (fun points item -> points - |> Set.add range.StartColumn - |> Set.add (range.EndColumn - 1)) Set.empty + |> Set.add item.Range.StartColumn + |> Set.add (item.Range.EndColumn - 1)) Set.empty |> Set.add (strLeftCol - 1) |> Set.add (strRightCol + 1) |> Set.toSeq |> Seq.pairwise |> Seq.map (fun (leftPoint, rightPoint) -> printfOrEscapedSpans - |> Array.tryFind (fun struct(range,_category) -> range.StartColumn = leftPoint) - |> Option.bind (fun struct(range,category)-> - categoryToTokenKind category - |> Option.map (fun kind -> range.StartColumn, range.EndColumn, kind)) + |> Array.tryFind (fun item -> item.Range.StartColumn = leftPoint) + |> Option.bind (fun item -> + categoryToTokenKind item.Type + |> Option.map (fun kind -> item.Range.StartColumn, item.Range.EndColumn, kind)) |> Option.defaultValue (leftPoint+1, rightPoint, TokenKind.String)) for leftPoint, rightPoint, kind in data do @@ -322,7 +327,7 @@ type CodeFormatAgent() = let! (opts,_errors) = fsChecker.GetProjectOptionsFromScript(filePath, SourceText.ofString source, loadedTimeStamp = DateTime.Now, otherFlags = args, assumeDotNetFramework = false) let formatError (e:FSharpDiagnostic) = - sprintf "%s (%d,%d)-(%d,%d): %A FS%04d: %s" e.FileName e.StartLineAlternate e.StartColumn e.EndLineAlternate e.EndColumn e.Severity e.ErrorNumber e.Message + sprintf "%s (%d,%d)-(%d,%d): %A FS%04d: %s" e.FileName e.StartLine e.StartColumn e.EndLine e.EndColumn e.Severity e.ErrorNumber e.Message let formatErrors errors = System.String.Join("\n", errors |> Seq.map formatError) @@ -371,7 +376,7 @@ type CodeFormatAgent() = //Log.verbf "project options '%A', OtherOptions: \n\t%s" { opts with OtherOptions = [||] } (System.String.Join("\n\t", opts.OtherOptions)) //let! results = fsChecker.ParseAndCheckProject(opts) //let _errors = results.Errors - + if _errors |> List.filter (fun e -> e.Severity = FSharpDiagnosticSeverity.Error) |> List.length > 0 then Log.warnf "errors from GetProjectOptionsFromScript '%s'" (formatErrors _errors) @@ -391,10 +396,10 @@ type CodeFormatAgent() = | Some (_parseResults, parsedInput, checkResults) -> Log.verbf "starting to GetAllUsesOfAllSymbolsInFile from '%s'" filePath let _symbolUses = checkResults.GetAllUsesOfAllSymbolsInFile () - let errors = checkResults.Errors + let errors = checkResults.Diagnostics let classifications = checkResults.GetSemanticClassification (Some parsedInput.Range) - |> Seq.groupBy (fun struct(r,_c) -> r.StartLine) + |> Seq.groupBy (fun item -> item.Range.StartLine) |> Map.ofSeq @@ -441,8 +446,8 @@ type CodeFormatAgent() = for errInfo in errors do if errInfo.Message <> "Multiple references to 'mscorlib.dll' are not permitted" then yield SourceError( - (errInfo.StartLineAlternate - 1, errInfo.StartColumn), - (errInfo.EndLineAlternate - 1, errInfo.EndColumn), + (errInfo.StartLine - 1, errInfo.StartColumn), + (errInfo.EndLine - 1, errInfo.EndColumn), (if errInfo.Severity = FSharpDiagnosticSeverity.Error then ErrorKind.Error else ErrorKind.Warning), errInfo.Message ) diff --git a/src/FSharp.Formatting.CodeFormat/CommentFilter.fs b/src/FSharp.Formatting.CodeFormat/CommentFilter.fs index a029d2a41..c33e65c03 100644 --- a/src/FSharp.Formatting.CodeFormat/CommentFilter.fs +++ b/src/FSharp.Formatting.CodeFormat/CommentFilter.fs @@ -8,14 +8,14 @@ open System.Text open FSharp.Patterns open FSharp.Collections open FSharp.Formatting.Markdown -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Tokenization // -------------------------------------------------------------------------------------- // Handle special comments that can appear in F# snipptes. This includes: // Marking of a snippet that should be formatted: // // // [snippet:Some name] -// // [/snippet] +// // [/snippet] // // Omitting of a block of code in a visible snippet: // @@ -23,7 +23,7 @@ open FSharp.Compiler.SourceCodeServices // // Displaying of F# interactive output: // -// // [fsi:] +// // [fsi:] // // -------------------------------------------------------------------------------------- @@ -39,9 +39,9 @@ type NamedSnippet = string * Snippet /// // [snippet:Some title] /// ... some F# code ... /// // [/snippet] -let rec getSnippets (state:NamedSnippet option) (snippets:NamedSnippet list) +let rec getSnippets (state:NamedSnippet option) (snippets:NamedSnippet list) (source:IndexedSnippetLine list) (lines:string[]) = - match source with + match source with | [] -> snippets | (line, tokens)::rest -> let text = lines.[line.StartLine].Trim(), line @@ -52,21 +52,21 @@ let rec getSnippets (state:NamedSnippet option) (snippets:NamedSnippet list) let title = (fst title).Substring(0, (fst title).IndexOf(']')) getSnippets (Some(title, [])) snippets rest lines // Not inside a snippet and there is a usual line - | None, _ -> + | None, _ -> getSnippets state snippets rest lines // We're inside a snippet and it ends | Some(title, acc), StringPosition.StartsWithTrim "//" (StringPosition.StartsWithTrim "[/snippet]" _) -> getSnippets None ((title, acc |> List.rev)::snippets) rest lines // We're inside snippet - add current line to it - | Some(title, acc), _ -> + | Some(title, acc), _ -> getSnippets (Some(title, (line, tokens)::acc)) snippets rest lines -/// Preprocesses a line and merges all subsequent comments on a line +/// Preprocesses a line and merges all subsequent comments on a line /// into a single long comment (so that we can parse it as snippet command) -let rec mergeComments (line:SnippetLine) (cmt:Token option) (acc:SnippetLine) = - match line, cmt with +let rec mergeComments (line:SnippetLine) (cmt:Token option) (acc:SnippetLine) = + match line, cmt with | [], Some(cmt) -> cmt::acc |> List.rev | [], None -> acc |> List.rev | (str, tok)::line, None when tok.TokenName = "COMMENT" || tok.TokenName = "LINE_COMMENT" -> @@ -82,44 +82,44 @@ let rec mergeComments (line:SnippetLine) (cmt:Token option) (acc:SnippetLine) = /// Continue reading shrinked code until we reach the end (*[/omit]*) tag /// (see the function below for more information and beginning of shrinking) -let rec shrinkOmittedCode (text:StringBuilder) line content (source:Snippet) = - match content, source with +let rec shrinkOmittedCode (text:StringBuilder) line content (source:Snippet) = + match content, source with // Take the next line, merge comments and continue looking for end - | [], (line, content)::source -> + | [], (line, content)::source -> shrinkOmittedCode (text.Append("\n")) line (mergeComments content None []) source - | (String.StartsAndEndsWithTrim ("(*", "*)") "[/omit]", tok)::rest, source + | (String.StartsAndEndsWithTrim ("(*", "*)") "[/omit]", tok)::rest, source when tok.TokenName = "COMMENT" -> line, rest, source, text - | (str, _tok)::rest, _ -> + | (str, _tok)::rest, _ -> shrinkOmittedCode (text.Append(str)) line rest source | [], [] -> line, [], [], text -/// Find all code marked using the (*[omit:<...>]*) tags and replace it with +/// Find all code marked using the (*[omit:<...>]*) tags and replace it with /// a special token (named "OMIT...." where "...." is a replacement string) -let rec shrinkLine line (content:SnippetLine) (source:Snippet) = - match content with +let rec shrinkLine line (content:SnippetLine) (source:Snippet) = + match content with | [] -> [], source | (String.StartsAndEndsWithTrim ("(*", "*)") (String.StartsAndEndsWithTrim ("[omit:", "]") body), (tok:FSharpTokenInfo))::rest - when tok.TokenName = "COMMENT" -> - let line, remcontent, source, text = + when tok.TokenName = "COMMENT" -> + let line, remcontent, source, text = shrinkOmittedCode (StringBuilder()) line rest source let line, source = shrinkLine line remcontent source (body, { tok with TokenName = "OMIT" + (text.ToString()) })::line, source | (String.StartsWithTrim "//" (String.StartsAndEndsWith ("[fsi:", "]") fsi), (tok:FSharpTokenInfo))::rest -> let line, source = shrinkLine line rest source (fsi, { tok with TokenName = "FSI"})::line, source - | (str, tok)::rest -> + | (str, tok)::rest -> let line, source = shrinkLine line rest source (str, tok)::line, source /// Process the whole source file and shrink all blocks marked using /// special 'omit' meta-comments (see the two functions above) -let rec shrinkOmittedParts (source:Snippet) : Snippet = - [ match source with +let rec shrinkOmittedParts (source:Snippet) : Snippet = + [ match source with | [] -> () - | (line, content)::source -> - let content, source = shrinkLine line (mergeComments content None []) source + | (line, content)::source -> + let content, source = shrinkLine line (mergeComments content None []) source yield line, content yield! shrinkOmittedParts source ] diff --git a/src/FSharp.Formatting.CodeFormat/Pervasive.fs b/src/FSharp.Formatting.CodeFormat/Pervasive.fs index 655491567..1fc939e75 100644 --- a/src/FSharp.Formatting.CodeFormat/Pervasive.fs +++ b/src/FSharp.Formatting.CodeFormat/Pervasive.fs @@ -4,8 +4,8 @@ module internal FSharp.Formatting.CodeFormat.Pervasive open System open System.Diagnostics open System.Runtime.CompilerServices -open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Syntax +open FSharp.Compiler.CodeAnalysis open FSharp.Compiler.Text [] @@ -87,7 +87,7 @@ let asyncMaybe = AsyncMaybeBuilder() let inline liftAsync (computation : Async<'T>) : Async<'T option> = async { let! a = computation - return Some a + return Some a } @@ -99,7 +99,7 @@ module Async = return f a } - /// Creates an asynchronous workflow that runs the asynchronous workflow given as an argument at most once. + /// Creates an asynchronous workflow that runs the asynchronous workflow given as an argument at most once. /// When the returned workflow is started for the second time, it reuses the result of the previous execution. let cache (input : Async<'T>) = let agent = MailboxProcessor>.Start <| fun agent -> @@ -109,7 +109,7 @@ module Async = replyCh.Reply res while true do let! replyCh = agent.Receive () - replyCh.Reply res + replyCh.Reply res } async { return! agent.PostAndAsyncReply id } @@ -130,23 +130,20 @@ type FSharpChecker with let tryGetFreshResultsWithTimeout () : Async = async { try let! worker = Async.StartChild (parseAndCheckFile, 2000) - let! result = worker + let! result = worker return Ready result with :? TimeoutException -> return StillRunning parseAndCheckFile } let bindParsedInput (results: (FSharpParseFileResults * FSharpCheckFileResults) option) = match results with - | Some (parseResults, checkResults) -> - match parseResults.ParseTree with - | Some parsedInput -> Some (parseResults, parsedInput, checkResults) - | None -> None + | Some (parseResults, checkResults) -> Some (parseResults, parseResults.ParseTree, checkResults) | None -> None if allowStaleResults then async { let! freshResults = tryGetFreshResultsWithTimeout() - + let! results = match freshResults with | Ready x -> async.Return x diff --git a/src/FSharp.Formatting.CodeFormat/ToolTipReader.fs b/src/FSharp.Formatting.CodeFormat/ToolTipReader.fs index 072816c82..f3c1f728a 100644 --- a/src/FSharp.Formatting.CodeFormat/ToolTipReader.fs +++ b/src/FSharp.Formatting.CodeFormat/ToolTipReader.fs @@ -12,14 +12,30 @@ open System.Web open FSharp.Collections open FSharp.Compiler -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.Symbols +open FSharp.Compiler.Xml +open FSharp.Compiler.EditorServices +open FSharp.Compiler.Text // -------------------------------------------------------------------------------------- -// Implements formatting of tool tips +// Implements formatting of tool tips // -------------------------------------------------------------------------------------- +let linesFromTaggedText (tags: TaggedText []) = + seq { + let content = StringBuilder() + for tag in tags do + if tag.Tag = TextTag.Space && tag.Text.Contains "\n" + then + yield string content + content.Clear() |> ignore + else + content.Append tag.Text |> ignore + // yield any remaining text + if content.Length <> 0 then yield string content + } /// Turn string into a sequence of lines interleaved with line breaks -let formatMultilineString (lines:string[]) = +let formatMultilineString (lines: string []) = [ for line in lines do yield HardLineBreak yield Literal line ] @@ -28,69 +44,69 @@ let formatMultilineString (lines:string[]) = /// Format comment in the tool tip let private formatComment xmlDoc = match xmlDoc with - | FSharpXmlDoc.Text(unprocessedLines, _processedLines) -> - [ Emphasis (formatMultilineString unprocessedLines) + | FSharpXmlDoc.FromXmlText(xmlDoc) -> + [ Emphasis (formatMultilineString xmlDoc.UnprocessedLines) HardLineBreak ] | _ -> - // TODO: For 'XmlCommentSignature' we could get documentation + // TODO: For 'XmlCommentSignature' we could get documentation // from 'xml' files, but we don't know where to get them... [] /// Format the element of a tool tip (comment, overloads, etc.) let private formatElement tooltip = match tooltip with - | FSharpToolTipElement.None -> [] - //| FSharpToolTipElement.(it, comment) -> + | ToolTipElement.None -> [] + //| FSharpToolTipElement.(it, comment) -> // [ yield! formatMultilineString it // yield HardLineBreak // yield! formatComment comment ] - | FSharpToolTipElement.Group(items) -> + | ToolTipElement.Group(items) -> // Trim the items to at most 10 displayed in a tool tip - let items, trimmed = + let items, trimmed = if items.Length <= 10 then items, false else items |> Seq.take 10 |> List.ofSeq, true [ for it in items do - yield! formatMultilineString (it.MainDescription.Split('\n')) + yield! it.MainDescription |> linesFromTaggedText |> Seq.toArray |> formatMultilineString yield HardLineBreak yield! formatComment it.XmlDoc // Add note with the number of omitted overloads - if trimmed then + if trimmed then let msg = sprintf "(+%d other overloads)" (items.Length - 10) yield Literal " " yield Emphasis [Literal (msg) ] yield HardLineBreak ] - //| FSharpToolTipElement.SingleParameter(_paramType,_doc,_name) -> + //| FSharpToolTipElement.SingleParameter(_paramType,_doc,_name) -> // [ yield ToolTipSpan.Literal _paramType // yield ToolTipSpan.HardLineBreak - // yield! formatComment _doc + // yield! formatComment _doc // ] - | FSharpToolTipElement.CompositionError(_err) -> [] + | ToolTipElement.CompositionError(_err) -> [] -/// Format entire tool tip as a value of type ToolTipSpans -let private formatTip tip = - let spans = +/// Format entire tool tip as a value of type ToolTipSpans +let private formatTip tip = + let spans = match tip with - | FSharpToolTipText([single]) -> formatElement single - | FSharpToolTipText(items) -> + | ToolTipText([single]) -> formatElement single + | ToolTipText(items) -> [ yield Literal "Multiple items" yield HardLineBreak for first, item in Seq.mapi (fun i it -> i = 0, it) items do - if not first then + if not first then yield HardLineBreak yield Literal "--------------------" yield HardLineBreak yield! formatElement item ] // Remove unnecessary line breaks - spans + spans |> List.skipWhile ((=) HardLineBreak) |> List.rev |> List.skipWhile ((=) HardLineBreak) |> List.rev -/// Format a tool tip, but first make sure that there is actually +/// Format a tool tip, but first make sure that there is actually /// some text in the tip. Returns None if no information is available let tryFormatTip = function - | FSharpToolTipText(elems) - when elems |> List.forall (function - FSharpToolTipElement.None -> true | _ -> false) -> None + | ToolTipText(elems) + when elems |> List.forall (function + ToolTipElement.None -> true | _ -> false) -> None | tip -> Some(formatTip tip) \ No newline at end of file diff --git a/src/FSharp.Formatting.CommandTool/FSharp.Formatting.CommandTool.fsproj b/src/FSharp.Formatting.CommandTool/FSharp.Formatting.CommandTool.fsproj index e240a7f48..a930cc7ab 100644 --- a/src/FSharp.Formatting.CommandTool/FSharp.Formatting.CommandTool.fsproj +++ b/src/FSharp.Formatting.CommandTool/FSharp.Formatting.CommandTool.fsproj @@ -3,7 +3,7 @@ Exe fsdocs - netcoreapp3.1 + net5.0 FSharp.Formatting.CommandTool LatestMajor true diff --git a/src/FSharp.Formatting.Common/YaafFSharpScripting.fs b/src/FSharp.Formatting.Common/YaafFSharpScripting.fs index cc35f6764..6923caac4 100644 --- a/src/FSharp.Formatting.Common/YaafFSharpScripting.fs +++ b/src/FSharp.Formatting.Common/YaafFSharpScripting.fs @@ -8,8 +8,10 @@ open System.Reflection.Emit open System.Diagnostics open System.Runtime.CompilerServices open FSharp.Compiler.Interactive.Shell -open FSharp.Compiler.SourceCodeServices +open FSharp.Compiler.CodeAnalysis open FSharp.Compiler.Text +open FSharp.Compiler.Diagnostics +open FSharp.Compiler.Symbols #nowarn "25" // Binding incomplete: let [ t ] = list @@ -178,13 +180,13 @@ module internal CompilerServiceExtensions = let mapError (err:FSharpDiagnostic) = sprintf "**** %s: %s" (if err.Severity = FSharpDiagnosticSeverity.Error then "error" else "warning") err.Message if results.HasCriticalErrors then - let errors = results.Errors |> Seq.map mapError + let errors = results.Diagnostics |> Seq.map mapError let errorMsg = sprintf "Parsing and checking project failed: \n\t%s" (System.String.Join("\n\t", errors)) Log.errorf "%s" errorMsg failwith errorMsg else - if results.Errors.Length > 0 then - let warnings = results.Errors |> Seq.map mapError + if results.Diagnostics.Length > 0 then + let warnings = results.Diagnostics |> Seq.map mapError Log.warnf "Parsing and checking warnings: \n\t%s" (System.String.Join("\n\t", warnings)) let references = results.ProjectContext.GetReferencedAssemblies() references diff --git a/tests/FSharp.ApiDocs.Tests/AttributeTests.fs b/tests/FSharp.ApiDocs.Tests/AttributeTests.fs index f299ab05d..868839244 100644 --- a/tests/FSharp.ApiDocs.Tests/AttributeTests.fs +++ b/tests/FSharp.ApiDocs.Tests/AttributeTests.fs @@ -7,7 +7,6 @@ open NUnit.Framework open FSharp.Formatting.ApiDocs open FSharp.Formatting.Templating open FsUnitTyped -open FSharp.Compiler.SourceCodeServices open NUnit.Framework.Internal open System @@ -39,16 +38,16 @@ let tfm = // test project to be directed to the directory below let testBin = __SOURCE_DIRECTORY__ "files/bin" configuration tfm |> fullpath -#if INTERACTIVE +#if INTERACTIVE ;; printfn "\n-- Root - %s" root;; printfn "\n-- TestBin - %s" testBin;; -#endif +#endif do FSharp.Formatting.TestHelpers.enableLogging() let library = testBin "AttributesTestLib.dll" -let inputs = ApiDocInput.FromFile(library) +let inputs = ApiDocInput.FromFile(library) let findModule name (moduleInfos: ApiDocEntityInfo list)= moduleInfos @@ -104,12 +103,12 @@ let ``ApiDocs extracts Attribute with named arguments``() = attribute.Name |> shouldEqual "TestAttribute" attribute.FullName |> shouldEqual "AttributeTestNamespace.TestAttribute" attribute.ConstructorArguments |> shouldBeEmpty - + attribute.NamedConstructorArguments |> shouldContain ("Int", box 1) attribute.NamedConstructorArguments |> shouldContain ("String", box "test") let _,arrayArgument = attribute.NamedConstructorArguments |> Seq.find (fun (n,_)-> n="Array") arrayArgument |> shouldEqual (box [| box "1"; box "2"|]) - () + () [] let ``ApiDocs extracts Attribute on interface``() = diff --git a/tests/FSharp.ApiDocs.Tests/FSharp.ApiDocs.Tests.fsproj b/tests/FSharp.ApiDocs.Tests/FSharp.ApiDocs.Tests.fsproj index 4cb94c658..2dcd66d03 100644 --- a/tests/FSharp.ApiDocs.Tests/FSharp.ApiDocs.Tests.fsproj +++ b/tests/FSharp.ApiDocs.Tests/FSharp.ApiDocs.Tests.fsproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 LatestMajor true diff --git a/tests/FSharp.CodeFormat.Tests/FSharp.CodeFormat.Tests.fsproj b/tests/FSharp.CodeFormat.Tests/FSharp.CodeFormat.Tests.fsproj index 2300a4bc1..856fe3dfb 100644 --- a/tests/FSharp.CodeFormat.Tests/FSharp.CodeFormat.Tests.fsproj +++ b/tests/FSharp.CodeFormat.Tests/FSharp.CodeFormat.Tests.fsproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 LatestMajor true diff --git a/tests/FSharp.Literate.Tests/FSharp.Literate.Tests.fsproj b/tests/FSharp.Literate.Tests/FSharp.Literate.Tests.fsproj index 92220c17b..1993dbdd0 100644 --- a/tests/FSharp.Literate.Tests/FSharp.Literate.Tests.fsproj +++ b/tests/FSharp.Literate.Tests/FSharp.Literate.Tests.fsproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 LatestMajor true diff --git a/tests/FSharp.Markdown.Tests/FSharp.Markdown.Tests.fsproj b/tests/FSharp.Markdown.Tests/FSharp.Markdown.Tests.fsproj index 396a5ab55..0e158dbef 100644 --- a/tests/FSharp.Markdown.Tests/FSharp.Markdown.Tests.fsproj +++ b/tests/FSharp.Markdown.Tests/FSharp.Markdown.Tests.fsproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 LatestMajor true From 61645a3a2a15494d92e287efa1da2f0c670c93b6 Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Tue, 29 Jun 2021 14:52:53 -0500 Subject: [PATCH 2/3] build/publish on net5 only --- .github/workflows/pull-requests.yml | 2 +- .github/workflows/push-master.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull-requests.yml b/.github/workflows/pull-requests.yml index 0b8329316..0f35818eb 100644 --- a/.github/workflows/pull-requests.yml +++ b/.github/workflows/pull-requests.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest] - dotnet: [3.1.302, 5.0.100] + dotnet: [5.0.100] runs-on: ${{ matrix.os }} steps: diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml index da9771100..186304e7c 100644 --- a/.github/workflows/push-master.yml +++ b/.github/workflows/push-master.yml @@ -12,7 +12,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest] - dotnet: [3.1.302] + dotnet: [5.0.100] runs-on: ${{ matrix.os }} steps: From 374a3abf604d2bbf452d54fc34d862fea9593cae Mon Sep 17 00:00:00 2001 From: Chet Husk Date: Tue, 29 Jun 2021 15:06:21 -0500 Subject: [PATCH 3/3] Fix a few references to netcoreapp3.1, as well as warnings --- Directory.Build.props | 2 - README.md | 4 +- .../GenerateModel.fs | 2 - .../CodeFormatAgent.fs | 2 +- .../BuildCommand.fs | 30 +++++------ .../ProjectCracker.fs | 4 +- .../HtmlFormatting.fs | 54 +++++++++---------- .../LatexFormatting.fs | 46 ++++++++-------- tests/FSharp.ApiDocs.Tests/AttributeTests.fs | 7 +-- tests/FSharp.Literate.Tests/files/simple.fsx | 2 +- 10 files changed, 72 insertions(+), 81 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index c3d846a0e..247c34c11 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -7,8 +7,6 @@ true true /warnon:1182 - - /langversion:4.7 diff --git a/README.md b/README.md index 82890951b..bce33b7b4 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,8 @@ See https://fsprojects.github.io/FSharp.Formatting/ One built you can run the command-line tool to self-build the docs for this directory using dotnet build - src\FSharp.Formatting.CommandTool\bin\Debug\netcoreapp3.1\fsdocs.exe watch - src\FSharp.Formatting.CommandTool\bin\Debug\netcoreapp3.1\fsdocs.exe build --clean + src\FSharp.Formatting.CommandTool\bin\Debug\net5.0\fsdocs.exe watch + src\FSharp.Formatting.CommandTool\bin\Debug\net5.0\fsdocs.exe build --clean ## Maintainer(s) diff --git a/src/FSharp.Formatting.ApiDocs/GenerateModel.fs b/src/FSharp.Formatting.ApiDocs/GenerateModel.fs index 55f6a2da8..c095c9d2e 100644 --- a/src/FSharp.Formatting.ApiDocs/GenerateModel.fs +++ b/src/FSharp.Formatting.ApiDocs/GenerateModel.fs @@ -2146,8 +2146,6 @@ type ApiDocModel internal (substitutions, collection, entityInfos, root, qualify static member internal Generate(projects: ApiDocInput list, collectionName, libDirs, otherFlags, qualify, urlRangeHighlight, root, substitutions, strict, extensions) = - let (@@) a b = Path.Combine(a, b) - // Default template file names let otherFlags = defaultArg otherFlags [] diff --git a/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs b/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs index 1c813c519..bdfe8e3a4 100644 --- a/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs +++ b/src/FSharp.Formatting.CodeFormat/CodeFormatAgent.fs @@ -154,7 +154,7 @@ type CodeFormatAgent() = | SemanticClassificationType.TypeArgument -> Some TokenKind.TypeArgument | SemanticClassificationType.Operator -> Some TokenKind.Operator | SemanticClassificationType.IntrinsicFunction -> Some TokenKind.Keyword - | n -> None + | _ -> None // Processes a single line of the snippet diff --git a/src/FSharp.Formatting.CommandTool/BuildCommand.fs b/src/FSharp.Formatting.CommandTool/BuildCommand.fs index a6ab44d87..1363dc6aa 100644 --- a/src/FSharp.Formatting.CommandTool/BuildCommand.fs +++ b/src/FSharp.Formatting.CommandTool/BuildCommand.fs @@ -173,7 +173,7 @@ type internal DocContent(outputDirectory, previous: Map<_,_>, lineNumbers, fsiEv // Two-letter directory names (e.g. 'ja') with 'docs' count as multi-language and are suppressed from table-of-content // generation and site search index let isOtherLang = isOtherLang || (indirName.Length = 2 && allCultures |> Array.contains indirName ) - + let possibleNewHtmlTemplate = Path.Combine(inputFolder, "_template.html") let htmlTemplate = if File.Exists(possibleNewHtmlTemplate) then Some possibleNewHtmlTemplate else htmlTemplate let possibleNewPynbTemplate = Path.Combine(inputFolder, "_template.ipynb") @@ -227,7 +227,7 @@ type internal DocContent(outputDirectory, previous: Map<_,_>, lineNumbers, fsiEv match thing with | (inputFile, isOtherLang, model) when // Don't put the index or other-language entries in the list - not isOtherLang && + not isOtherLang && model.OutputKind = OutputKind.Html && not (Path.GetFileNameWithoutExtension(inputFile) = "index") -> model | _ -> () ] @@ -245,7 +245,7 @@ type internal DocContent(outputDirectory, previous: Map<_,_>, lineNumbers, fsiEv for model in snd modelsByCategory.[0] do let link = model.Uri(root) li [Class "nav-item"] [ a [Class "nav-link"; (Href link)] [encode model.Title ] ] - else + else // At least one category has been specified. Sort each category by index and emit // Use 'Other' as a header for uncategorised things for (cat, modelsInCategory) in modelsByCategory do @@ -543,7 +543,7 @@ type CoreBuildOptions(watch) = else this.output // This is in-package - // From .nuget\packages\fsharp.formatting.commandtool\7.1.7\tools\netcoreapp3.1\any + // From .nuget\packages\fsharp.formatting.commandtool\7.1.7\tools\net5.0\any // to .nuget\packages\fsharp.formatting.commandtool\7.1.7\templates let dir = Path.GetDirectoryName(typeof.Assembly.Location) let defaultTemplateAttempt1 = Path.GetFullPath(Path.Combine(dir, "..", "..", "..", "templates", "_template.html")) @@ -562,7 +562,7 @@ type CoreBuildOptions(watch) = let extraInputs = [ if not this.nodefaultcontent then // The "extras" content goes in "." - // From .nuget\packages\fsharp.formatting.commandtool\7.1.7\tools\netcoreapp3.1\any + // From .nuget\packages\fsharp.formatting.commandtool\7.1.7\tools\net5.0\any // to .nuget\packages\fsharp.formatting.commandtool\7.1.7\extras let attempt1 = Path.GetFullPath(Path.Combine(dir, "..", "..", "..", "extras")) if (try Directory.Exists(attempt1) with _ -> false) then @@ -570,8 +570,8 @@ type CoreBuildOptions(watch) = (attempt1, ".") else // This is for in-repo use only, assuming we are executing directly from - // src\FSharp.Formatting.CommandTool\bin\Debug\netcoreapp3.1\fsdocs.exe - // src\FSharp.Formatting.CommandTool\bin\Release\netcoreapp3.1\fsdocs.exe + // src\FSharp.Formatting.CommandTool\bin\Debug\net5.0\fsdocs.exe + // src\FSharp.Formatting.CommandTool\bin\Release\net5.0\fsdocs.exe let attempt2 = Path.GetFullPath(Path.Combine(dir, "..", "..", "..", "..", "..", "docs", "content")) if (try Directory.Exists(attempt2) with _ -> false) then printfn "using extra content from %s" attempt2 @@ -607,7 +607,7 @@ type CoreBuildOptions(watch) = // if running in watch mode, inject hot reload script [ParamKeys.``fsdocs-watch-script``, Serve.generateWatchScript this.port_option] else - // otherwise, inject empty replacement string + // otherwise, inject empty replacement string [ParamKeys.``fsdocs-watch-script``, ""] // Incrementally generate API docs (regenerates all api docs, in two phases) @@ -623,10 +623,10 @@ type CoreBuildOptions(watch) = OutputKind.Html, Path.Combine(this.input, "_template.html") OutputKind.Md, Path.Combine(this.input, "reference", "_template.md") OutputKind.Md, Path.Combine(this.input, "_template.md") - ] + ] match templates |> Seq.tryFind (fun (_,path) -> path |> File.Exists) with | Some (kind, path) -> kind, Some path - | None -> + | None -> let templateFiles = templates |> Seq.map snd |> String.concat "', '" match defaultTemplate with | Some d -> @@ -635,14 +635,14 @@ type CoreBuildOptions(watch) = | None -> printfn "note, no template file '%s' found, and no default template at '%s'" templateFiles defaultTemplateAttempt1 OutputKind.Html, None - + printfn "" printfn "API docs:" printfn " generating model for %d assemblies in API docs..." apiDocInputs.Length let model, globals, index, phase2 = - match outputKind with - | OutputKind.Html -> + match outputKind with + | OutputKind.Html -> ApiDocs.GenerateHtmlPhased ( inputs = apiDocInputs, output = output, @@ -770,7 +770,7 @@ type CoreBuildOptions(watch) = let ok = let ok1 = runGeneratePhase1() // Note, the above generates these outputs: - // latestApiDocModel + // latestApiDocModel // latestApiDocGlobalParameters // latestApiDocCodeReferenceResolver // latestApiDocPhase2 @@ -845,7 +845,7 @@ type CoreBuildOptions(watch) = Serve.signalHotReload <- true } |> Async.Start - ) + ) let apiDocsDependenciesChanged = Event<_>() apiDocsDependenciesChanged.Publish.Add(fun () -> diff --git a/src/FSharp.Formatting.CommandTool/ProjectCracker.fs b/src/FSharp.Formatting.CommandTool/ProjectCracker.fs index e6e036060..8e646702a 100644 --- a/src/FSharp.Formatting.CommandTool/ProjectCracker.fs +++ b/src/FSharp.Formatting.CommandTool/ProjectCracker.fs @@ -138,7 +138,7 @@ module Crack = RepositoryCommit : string option } - let private crackProjectFileAndIncludeTargetFrameworks slnDir extraMsbuildProperties (file : string) = + let private crackProjectFileAndIncludeTargetFrameworks _slnDir extraMsbuildProperties (file : string) = let additionalInfo = [ "OutputType" "IsTestProject" @@ -184,7 +184,7 @@ module Crack = let msgs = (loggedMessages.ToArray() |> Array.toList) match result with | Ok projOptions -> - + let props = projOptions.CustomProperties |> List.map (fun p -> p.Name, p.Value)|> Map.ofList //printfn "props = %A" (Map.toList props) let msbuildPropString prop = props |> Map.tryFind prop |> Option.bind (function s when String.IsNullOrWhiteSpace(s) -> None | s -> Some s) diff --git a/src/FSharp.Formatting.Markdown/HtmlFormatting.fs b/src/FSharp.Formatting.Markdown/HtmlFormatting.fs index 53d54aadf..b5e0d9028 100644 --- a/src/FSharp.Formatting.Markdown/HtmlFormatting.fs +++ b/src/FSharp.Formatting.Markdown/HtmlFormatting.fs @@ -19,21 +19,21 @@ open MarkdownUtils // -------------------------------------------------------------------------------------- /// Basic escaping as done by Markdown -let internal htmlEncode (code:string) = +let internal htmlEncode (code:string) = code.Replace("&", "&").Replace("<", "<").Replace(">", ">") /// Basic escaping as done by Markdown including quotes -let internal htmlEncodeQuotes (code:string) = +let internal htmlEncodeQuotes (code:string) = (htmlEncode code).Replace("\"", """) /// Lookup a specified key in a dictionary, possibly /// ignoring newlines or spaces in the key. -let internal (|LookupKey|_|) (dict:IDictionary<_, _>) (key:string) = - [ key; key.Replace("\r\n", ""); key.Replace("\r\n", " "); +let internal (|LookupKey|_|) (dict:IDictionary<_, _>) (key:string) = + [ key; key.Replace("\r\n", ""); key.Replace("\r\n", " "); key.Replace("\n", ""); key.Replace("\n", " ") ] |> Seq.tryPick (fun key -> match dict.TryGetValue(key) with - | true, v -> Some v + | true, v -> Some v | _ -> None) /// Generates a unique string out of given input @@ -70,7 +70,7 @@ let internal noBreak (_ctx:FormattingContext) () = () /// Write MarkdownSpan value to a TextWriter let rec internal formatSpan (ctx:FormattingContext) span = - match span with + match span with | LatexDisplayMath(body, _) -> // use mathjax grammar, for detail, check: http://www.mathjax.org/ ctx.Writer.Write("\\[" + (htmlEncode body) + "\\]") @@ -78,15 +78,15 @@ let rec internal formatSpan (ctx:FormattingContext) span = // use mathjax grammar, for detail, check: http://www.mathjax.org/ ctx.Writer.Write("\\(" + (htmlEncode body) + "\\)") - | AnchorLink(id, _) -> ctx.Writer.Write(" ") + | AnchorLink(id, _) -> ctx.Writer.Write(" ") | EmbedSpans(cmd, _) -> formatSpans ctx (cmd.Render()) | Literal(str, _) -> ctx.Writer.Write(str) | HardLineBreak(_) -> ctx.Writer.Write("
" + ctx.Newline) - | IndirectLink(body, _, LookupKey ctx.Links (link, title), _) - | DirectLink(body, link, title, _) -> + | IndirectLink(body, _, LookupKey ctx.Links (link, title), _) + | DirectLink(body, link, title, _) -> ctx.Writer.Write(" ctx.Writer.Write("\" title=\"") ctx.Writer.Write(htmlEncodeQuotes title) @@ -101,13 +101,13 @@ let rec internal formatSpan (ctx:FormattingContext) span = ctx.Writer.Write("]") ctx.Writer.Write(original) - | IndirectImage(body, _, LookupKey ctx.Links (link, title), _) - | DirectImage(body, link, title, _) -> + | IndirectImage(body, _, LookupKey ctx.Links (link, title), _) + | DirectImage(body, link, title, _) -> ctx.Writer.Write("\"") ctx.Writer.Write("\" title=\"") ctx.Writer.Write(htmlEncodeQuotes title) @@ -119,15 +119,15 @@ let rec internal formatSpan (ctx:FormattingContext) span = ctx.Writer.Write("]") ctx.Writer.Write(original) - | Strong(body, _) -> + | Strong(body, _) -> ctx.Writer.Write("") formatSpans ctx body ctx.Writer.Write("") - | InlineCode(body, _) -> + | InlineCode(body, _) -> ctx.Writer.Write("") ctx.Writer.Write(htmlEncode body) ctx.Writer.Write("") - | Emphasis(body, _) -> + | Emphasis(body, _) -> ctx.Writer.Write("") formatSpans ctx body ctx.Writer.Write("") @@ -142,7 +142,7 @@ let internal formatAnchor (ctx:FormattingContext) (spans:MarkdownSpans) = |> Seq.cast |> Seq.map (fun m -> m.Value) - let rec gather (span:MarkdownSpan) : seq = + let rec gather (span:MarkdownSpan) : seq = seq { match span with | Literal(str, _) -> yield! extractWords str @@ -154,8 +154,8 @@ let internal formatAnchor (ctx:FormattingContext) (spans:MarkdownSpans) = and gathers (spans:MarkdownSpans) = Seq.collect gather spans - spans - |> gathers + spans + |> gathers |> String.concat "-" |> fun name -> if String.IsNullOrWhiteSpace name then "header" else name |> ctx.UniqueNameGenerator.GetName @@ -175,7 +175,7 @@ let rec internal formatParagraph (ctx:FormattingContext) paragraph = ctx.Writer.Write("

\\[" + (htmlEncode body) + "\\]

") | EmbedParagraphs(cmd, _) -> formatParagraphs ctx (cmd.Render()) - | Heading(n, spans, _) -> + | Heading(n, spans, _) -> ctx.Writer.Write("") if ctx.GenerateHeaderAnchors then let anchorName = formatAnchor ctx spans @@ -188,7 +188,7 @@ let rec internal formatParagraph (ctx:FormattingContext) paragraph = | Paragraph(spans, _) -> ctx.ParagraphIndent() ctx.Writer.Write("

") - for span in spans do + for span in spans do formatSpan ctx span ctx.Writer.Write("

") | HorizontalRule(_, _) -> @@ -266,7 +266,7 @@ let rec internal formatParagraph (ctx:FormattingContext) paragraph = formatParagraphs { ctx with ParagraphIndent = fun () -> ctx.ParagraphIndent() (*; ctx.Writer.Write(" ")*) } body ctx.ParagraphIndent() ctx.Writer.Write("") - | Span(spans, _) -> + | Span(spans, _) -> formatSpans ctx spans | InlineHtmlBlock(code, _, _) -> ctx.Writer.Write(code) @@ -276,24 +276,24 @@ let rec internal formatParagraph (ctx:FormattingContext) paragraph = for (code, _) in lines do ctx.Writer.Write(htmlEncode code) ctx.Writer.Write("") - | YamlFrontmatter (lines, _) -> () + | YamlFrontmatter (_lines, _) -> () ctx.LineBreak() /// Write a list of MarkdownParagraph values to a TextWriter -and internal formatParagraphs ctx paragraphs = +and internal formatParagraphs ctx paragraphs = let length = List.length paragraphs let smallCtx = { ctx with LineBreak = smallBreak ctx } let bigCtx = { ctx with LineBreak = bigBreak ctx } for last, paragraph in paragraphs |> Seq.mapi (fun i v -> (i = length - 1), v) do formatParagraph (if last then smallCtx else bigCtx) paragraph -/// Format Markdown document and write the result to +/// Format Markdown document and write the result to /// a specified TextWriter. Parameters specify newline character /// and a dictionary with link keys defined in the document. -let formatMarkdown writer generateAnchors wrap links substitutions newline crefResolver paragraphs = +let formatMarkdown writer generateAnchors wrap links substitutions newline crefResolver paragraphs = let ctx = { Links = links; Substitutions=substitutions; Newline=newline; ResolveApiDocReference=crefResolver; DefineSymbol="HTML" } let paragraphs = applySubstitutionsInMarkdown ctx paragraphs - formatParagraphs + formatParagraphs { Writer = writer Links = links Newline = newline diff --git a/src/FSharp.Formatting.Markdown/LatexFormatting.fs b/src/FSharp.Formatting.Markdown/LatexFormatting.fs index 433476728..3d1a77e2f 100644 --- a/src/FSharp.Formatting.Markdown/LatexFormatting.fs +++ b/src/FSharp.Formatting.Markdown/LatexFormatting.fs @@ -29,18 +29,18 @@ let specialChars = @"<\textbackslash>", @"{\textbackslash}"; "~",@"{\textasciitilde}"; "^", @"{\textasciicircum}" |] - + let latexEncode s = specialChars |> Array.fold (fun (acc:string) (k, v) -> acc.Replace(k, v)) (System.Net.WebUtility.HtmlDecode s) /// Lookup a specified key in a dictionary, possibly /// ignoring newlines or spaces in the key. -let (|LookupKey|_|) (dict:IDictionary<_, _>) (key:string) = - [ key; key.Replace("\r\n", ""); key.Replace("\r\n", " "); +let (|LookupKey|_|) (dict:IDictionary<_, _>) (key:string) = + [ key; key.Replace("\r\n", ""); key.Replace("\r\n", " "); key.Replace("\n", ""); key.Replace("\n", " ") ] |> Seq.tryPick (fun key -> match dict.TryGetValue(key) with - | true, v -> Some v + | true, v -> Some v | _ -> None) /// Context passed around while formatting the LaTEX @@ -55,7 +55,7 @@ let smallBreak (ctx:FormattingContext) () = let noBreak (_ctx:FormattingContext) () = () /// Write MarkdownSpan value to a TextWriter -let rec formatSpan (ctx:FormattingContext) = function +let rec formatSpan (ctx:FormattingContext) = function | LatexInlineMath(body, _) -> ctx.Writer.Write(sprintf "$%s$" body) | LatexDisplayMath(body, _) -> ctx.Writer.Write(sprintf "$$%s$$" body) | EmbedSpans(cmd, _) -> formatSpans ctx (cmd.Render()) @@ -63,7 +63,7 @@ let rec formatSpan (ctx:FormattingContext) = function | HardLineBreak(_) -> ctx.LineBreak(); ctx.LineBreak() | AnchorLink _ -> () - | IndirectLink(body, _, LookupKey ctx.Links (link, _), _) + | IndirectLink(body, _, LookupKey ctx.Links (link, _), _) | DirectLink(body, link, _, _) | IndirectLink(body, link, _, _) -> ctx.Writer.Write(@"\href{") @@ -72,8 +72,8 @@ let rec formatSpan (ctx:FormattingContext) = function formatSpans ctx body ctx.Writer.Write("}") - | IndirectImage(body, _, LookupKey ctx.Links (link, _), _) - | DirectImage(body, link, _, _) + | IndirectImage(body, _, LookupKey ctx.Links (link, _), _) + | DirectImage(body, link, _, _) | IndirectImage(body, link, _, _) -> // Use the technique introduced at // http://stackoverflow.com/q/14014827 @@ -82,7 +82,7 @@ let rec formatSpan (ctx:FormattingContext) = function ctx.LineBreak() ctx.Writer.Write(@"\includegraphics[width=1.0\textwidth]{") ctx.Writer.Write(latexEncode link) - ctx.Writer.Write("}") + ctx.Writer.Write("}") ctx.LineBreak() if not (System.String.IsNullOrWhiteSpace(body)) then ctx.Writer.Write(@"\caption{") @@ -92,15 +92,15 @@ let rec formatSpan (ctx:FormattingContext) = function ctx.Writer.Write(@"\end{figure}") ctx.LineBreak() - | Strong(body, _) -> + | Strong(body, _) -> ctx.Writer.Write(@"\textbf{") formatSpans ctx body ctx.Writer.Write("}") - | InlineCode(body, _) -> + | InlineCode(body, _) -> ctx.Writer.Write(@"\texttt{") ctx.Writer.Write(latexEncode body) ctx.Writer.Write("}") - | Emphasis(body, _) -> + | Emphasis(body, _) -> ctx.Writer.Write(@"\emph{") formatSpans ctx body ctx.Writer.Write("}") @@ -121,8 +121,8 @@ let rec formatParagraph (ctx:FormattingContext) paragraph = ctx.LineBreak(); ctx.LineBreak() | EmbedParagraphs(cmd, _) -> formatParagraphs ctx (cmd.Render()) - | Heading(n, spans, _) -> - let level = + | Heading(n, spans, _) -> + let level = match n with | 1 -> @"\section*" | 2 -> @"\subsection*" @@ -136,7 +136,7 @@ let rec formatParagraph (ctx:FormattingContext) paragraph = ctx.LineBreak() | Paragraph(spans, _) -> ctx.LineBreak(); ctx.LineBreak() - for span in spans do + for span in spans do formatSpan ctx span | HorizontalRule(_) -> @@ -169,11 +169,11 @@ let rec formatParagraph (ctx:FormattingContext) paragraph = ctx.LineBreak() let bodyCtx = { ctx with LineBreak = noBreak ctx } - let formatRow (prefix:string) (postfix:string) row = + let formatRow (prefix:string) (postfix:string) row = row |> Seq.iteri (fun i cell -> if i <> 0 then ctx.Writer.Write(" & ") ctx.Writer.Write(prefix) - cell |> List.iter (formatParagraph bodyCtx) + cell |> List.iter (formatParagraph bodyCtx) ctx.Writer.Write(postfix) ) for header in Option.toList headers do @@ -205,7 +205,7 @@ let rec formatParagraph (ctx:FormattingContext) paragraph = ctx.Writer.Write(@"\end{quote}") ctx.LineBreak() - | Span(spans, _) -> + | Span(spans, _) -> formatSpans ctx spans | InlineHtmlBlock(code, _executionCount, _) -> ctx.Writer.Write(code) @@ -217,23 +217,23 @@ let rec formatParagraph (ctx:FormattingContext) paragraph = ctx.LineBreak() ctx.Writer.Write(@"\end{lstlisting}") ctx.LineBreak() - | YamlFrontmatter (lines, _) -> () + | YamlFrontmatter (_lines, _) -> () ctx.LineBreak() /// Write a list of MarkdownParagraph values to a TextWriter -and formatParagraphs ctx paragraphs = +and formatParagraphs ctx paragraphs = let length = List.length paragraphs let ctx = { ctx with LineBreak = smallBreak ctx } for _last, paragraph in paragraphs |> Seq.mapi (fun i v -> (i = length - 1), v) do formatParagraph ctx paragraph -/// Format Markdown document and write the result to +/// Format Markdown document and write the result to /// a specified TextWriter. Parameters specify newline character /// and a dictionary with link keys defined in the document. -let formatMarkdown writer links replacements newline crefResolver paragraphs = +let formatMarkdown writer links replacements newline crefResolver paragraphs = let ctx = { Links = links; Substitutions=replacements; Newline=newline; ResolveApiDocReference=crefResolver; DefineSymbol="LATEX" } let paragraphs = applySubstitutionsInMarkdown ctx paragraphs - formatParagraphs + formatParagraphs { Writer = writer Links = links Newline = newline diff --git a/tests/FSharp.ApiDocs.Tests/AttributeTests.fs b/tests/FSharp.ApiDocs.Tests/AttributeTests.fs index 868839244..eac3f9326 100644 --- a/tests/FSharp.ApiDocs.Tests/AttributeTests.fs +++ b/tests/FSharp.ApiDocs.Tests/AttributeTests.fs @@ -27,12 +27,7 @@ let configuration = "Release" #endif -let tfm = -#if NETCOREAPP - "netstandard2.1" -#else - "net472" -#endif +let tfm = "netstandard2.1" // NOTE - For these tests to run properly they require the output of all the metadata // test project to be directed to the directory below diff --git a/tests/FSharp.Literate.Tests/files/simple.fsx b/tests/FSharp.Literate.Tests/files/simple.fsx index 13bb88345..1434a1b7b 100644 --- a/tests/FSharp.Literate.Tests/files/simple.fsx +++ b/tests/FSharp.Literate.Tests/files/simple.fsx @@ -13,4 +13,4 @@ substitute-in-markdown: {{fsdocs-source-basename}} *) let hello = "Code sample" -let goodbye = "substitute-in-fsx-code: {{fsdocs-source-basename}}" \ No newline at end of file +let goodbye = "substitute-in-fsx-code: {{fsdocs-source-basename}}"