diff --git a/.nuget/NuGet.Config b/.nuget/NuGet.Config deleted file mode 100644 index 67f8ea046..000000000 --- a/.nuget/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.nuget/NuGet.exe b/.nuget/NuGet.exe deleted file mode 100644 index 6bb79fe53..000000000 Binary files a/.nuget/NuGet.exe and /dev/null differ diff --git a/.nuget/NuGet.targets b/.nuget/NuGet.targets deleted file mode 100644 index 93c0559e6..000000000 --- a/.nuget/NuGet.targets +++ /dev/null @@ -1,152 +0,0 @@ - - - - $(MSBuildProjectDirectory)\..\ - - - false - - - false - - - true - - - false - - - - - - - - - - - $([System.IO.Path]::Combine($(SolutionDir), ".nuget")) - - - - - $(SolutionDir).nuget - packages.config - - - - packages.$(MSBuildProjectName.Replace(' ', '_')).config - - - - - - $(PackagesProjectConfig) - - - - - packages.config - - - - - - - $(NuGetToolsPath)\NuGet.exe - @(PackageSource) - - "$(NuGetExePath)" - mono --runtime=v4.0.30319 $(NuGetExePath) - - $(TargetDir.Trim('\\')) - - -RequireConsent - -NonInteractive - - "$(SolutionDir) " - "$(SolutionDir)" - - - $(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" $(NonInteractiveSwitch) $(RequireConsentSwitch) -solutionDir $(PaddedSolutionDir) - $(NuGetCommand) pack "$(ProjectPath)" -Properties "Configuration=$(Configuration);Platform=$(Platform)" $(NonInteractiveSwitch) -OutputDirectory "$(PackageOutputDir)" -symbols - - - - RestorePackages; - $(BuildDependsOn); - - - - - $(BuildDependsOn); - BuildPackage; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/CHANGELOG.md b/CHANGELOG.md index 27786986b..4296ad254 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.19.0] - 2021-06-12 + +- Update to FCS 39 [@baronfel] + - Consumers of the API will now need to call `Ionide.ProjInfo.Init.init()`, see the FSharpLint.Console project within this repo for an example. + ## [0.18.1] - 2021-01-27 - Update docs. diff --git a/Directory.Build.targets b/Directory.Build.targets deleted file mode 100644 index 63dd75283..000000000 --- a/Directory.Build.targets +++ /dev/null @@ -1,12 +0,0 @@ - - - - - diff --git a/NuGet.Config b/NuGet.Config deleted file mode 100644 index 3f0e00340..000000000 --- a/NuGet.Config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/paket.dependencies b/paket.dependencies index 4cd4b07ea..3fa6408f9 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -7,15 +7,19 @@ nuget Argu nuget BenchmarkDotNet nuget BenchmarkDotNet.Diagnostics.Windows nuget FParsec -nuget FSharp.Compiler.Service ~> 38.0 -nuget Dotnet.ProjInfo.Workspace ~> 0.41.0 -nuget Dotnet.ProjInfo.Workspace.FCS ~> 0.41.0 +nuget FSharp.Compiler.Service ~> 39.0 +nuget Ionide.ProjInfo.ProjectSystem ~> 0.52.0 +nuget Ionide.ProjInfo.FCS ~> 0.52.0 nuget FSharp.Core nuget nunit nuget NUnit3TestAdapter nuget Microsoft.NET.Test.Sdk nuget Newtonsoft.Json -nuget Microsoft.Build.Utilities.Core 16.7 +nuget Microsoft.Build.Tasks.Core ~> 16.8 copy_local: false +nuget Microsoft.Build.Framework ~> 16.8 copy_local: false +nuget Microsoft.Build.Locator copy_local: false +nuget Microsoft.Build.Utilities.Core ~> 16.8 copy_local: false +nuget Microsoft.Build ~> 16.8 copy_local: false group Docs source https://api.nuget.org/v3/index.json diff --git a/paket.lock b/paket.lock index 9102bce6b..f4558cbbf 100644 --- a/paket.lock +++ b/paket.lock @@ -5,14 +5,14 @@ NUGET Argu (6.1.1) FSharp.Core (>= 4.3.2) System.Configuration.ConfigurationManager (>= 4.4) - BenchmarkDotNet (0.12.1) - BenchmarkDotNet.Annotations (>= 0.12.1) + BenchmarkDotNet (0.13) + BenchmarkDotNet.Annotations (>= 0.13) CommandLineParser (>= 2.4.3) - Iced (>= 1.4) + Iced (>= 1.8) Microsoft.CodeAnalysis.CSharp (>= 2.10) Microsoft.Diagnostics.NETCore.Client (>= 0.2.61701) - Microsoft.Diagnostics.Runtime (>= 1.1.57604) - Microsoft.Diagnostics.Tracing.TraceEvent (>= 2.0.49) + Microsoft.Diagnostics.Runtime (>= 1.1.126102) + Microsoft.Diagnostics.Tracing.TraceEvent (>= 2.0.61) Microsoft.DotNet.PlatformAbstractions (>= 2.1) Microsoft.Win32.Registry (>= 4.5) Perfolizer (>= 0.2.1) @@ -21,169 +21,246 @@ NUGET System.Reflection.Emit.Lightweight (>= 4.3) System.Threading.Tasks.Extensions (>= 4.5.2) System.ValueTuple (>= 4.5) - BenchmarkDotNet.Annotations (0.12.1) - BenchmarkDotNet.Diagnostics.Windows (0.12.1) - BenchmarkDotNet (>= 0.12.1) - Microsoft.Diagnostics.Tracing.TraceEvent (>= 2.0.49) + BenchmarkDotNet.Annotations (0.13) + BenchmarkDotNet.Diagnostics.Windows (0.13) + BenchmarkDotNet (>= 0.13) + Microsoft.Diagnostics.Tracing.TraceEvent (>= 2.0.61) CommandLineParser (2.8) - Dotnet.ProjInfo (0.44) - FSharp.Core (>= 4.6.2) - Microsoft.NETFramework.ReferenceAssemblies (>= 1.0) - System.ValueTuple (>= 4.4) - Dotnet.ProjInfo.Workspace (0.41.1) - Dotnet.ProjInfo (>= 0.41.1) - FSharp.Core (>= 4.6.2) - Microsoft.NETFramework.ReferenceAssemblies (>= 1.0) - Sln (>= 0.3) - Dotnet.ProjInfo.Workspace.FCS (0.41.1) - Dotnet.ProjInfo.Workspace (>= 0.41.1) - FSharp.Compiler.Service (>= 35.0) - FSharp.Core (>= 4.6.2) - Microsoft.NETFramework.ReferenceAssemblies (>= 1.0) FParsec (1.1.1) FSharp.Core (>= 4.3.4) - FSharp.Compiler.Service (38.0) - FSharp.Core (5.0) - FSharp.Core (5.0) - Iced (1.6) - Microsoft.Build.Framework (16.7) + 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) + System.Buffers (>= 4.5.1) + System.Collections.Immutable (>= 5.0) + System.Diagnostics.Process (>= 4.3) + System.Diagnostics.TraceSource (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Linq.Queryable (>= 4.3) + System.Memory (>= 4.5.4) + System.Net.Requests (>= 4.3) + System.Net.Security (>= 4.3) + System.Reflection.Emit (>= 4.3) + System.Reflection.Metadata (>= 5.0) + System.Reflection.TypeExtensions (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Loader (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Principal (>= 4.3) + System.Threading.Tasks.Parallel (>= 4.3) + System.Threading.Thread (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + FSharp.Core (5.0.1) + Iced (1.11.3) + Ionide.ProjInfo (0.52) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + FSharp.Core (>= 5.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Ionide.ProjInfo.Sln (>= 0.52) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.Build (>= 16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Microsoft.Build.Locator (>= 1.4.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) + Ionide.ProjInfo.FCS (0.48) + FSharp.Compiler.Service (>= 39.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + FSharp.Core (>= 5.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo (>= 0.48) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.ProjectSystem (0.48) + FSharp.Compiler.Service (>= 39.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + FSharp.Core (>= 5.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo (>= 0.48) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.FCS (>= 0.48) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.Sln (>= 0.48) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Newtonsoft.Json (>= 12.0.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.Sln (0.52) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Bcl.AsyncInterfaces (5.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Build (16.10) - copy_local: false + Microsoft.Build.Framework (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.NET.StringTools (>= 1.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Win32.Registry (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + System.Collections.Immutable (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Configuration.ConfigurationManager (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Reflection.Metadata (>= 1.6) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + System.Security.Principal.Windows (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net5.0)) + System.Text.Json (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Build.Framework (16.10) - copy_local: false System.Security.Permissions (>= 4.7) - Microsoft.Build.Utilities.Core (16.7) - Microsoft.Build.Framework (>= 16.7) + Microsoft.Build.Locator (1.4.1) - copy_local: false + Microsoft.Build.Tasks.Core (16.10) - copy_local: false + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) + Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 1.5) + System.CodeDom (>= 4.4) + System.Collections.Immutable (>= 5.0) + System.Reflection.Metadata (>= 1.6) + System.Resources.Extensions (>= 4.6) + 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.10) - copy_local: false + 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.0) - Microsoft.CodeAnalysis.Common (3.5) - Microsoft.CodeAnalysis.Analyzers (>= 3.0.0-beta2.20059.3) - System.Collections.Immutable (>= 1.5) - System.Memory (>= 4.5.3) - System.Reflection.Metadata (>= 1.6) - System.Runtime.CompilerServices.Unsafe (>= 4.6) + Microsoft.CodeAnalysis.Analyzers (3.3.2) + Microsoft.CodeAnalysis.Common (3.9) + Microsoft.CodeAnalysis.Analyzers (>= 3.0) + 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.3) - Microsoft.CodeAnalysis.CSharp (3.5) - Microsoft.CodeAnalysis.Common (3.5) - Microsoft.CodeCoverage (16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.Diagnostics.NETCore.Client (0.2.61701) - Microsoft.Diagnostics.Runtime (1.1.122004) - Microsoft.Diagnostics.Tracing.TraceEvent (2.0.55) + System.Threading.Tasks.Extensions (>= 4.5.4) + Microsoft.CodeAnalysis.CSharp (3.9) + Microsoft.CodeAnalysis.Common (3.9) + Microsoft.CodeCoverage (16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0)) + Microsoft.Diagnostics.NETCore.Client (0.2.227602) + Microsoft.Bcl.AsyncInterfaces (>= 1.1) + Microsoft.Extensions.Logging (>= 2.1.1) + Microsoft.Diagnostics.Runtime (2.0.226801) + Microsoft.Diagnostics.NETCore.Client (>= 0.2.221401) + System.Buffers (>= 4.5.1) + System.Collections.Immutable (>= 5.0) + System.Memory (>= 4.5.4) + System.Reflection.Metadata (>= 5.0) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + Microsoft.Diagnostics.Tracing.TraceEvent (2.0.69) System.Runtime.CompilerServices.Unsafe (>= 4.5.2) - Microsoft.DotNet.InternalAbstractions (1.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= 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.DotNet.PlatformAbstractions (3.1.3) - Microsoft.NET.Test.Sdk (16.8) - Microsoft.CodeCoverage (>= 16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.TestPlatform.TestHost (>= 16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.NETCore.Platforms (3.1) - Microsoft.NETCore.Targets (3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.NETFramework.ReferenceAssemblies (1.0) - Microsoft.TestPlatform.ObjectModel (16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + Microsoft.DotNet.PlatformAbstractions (3.1.6) + Microsoft.Extensions.DependencyInjection (5.0.1) + Microsoft.Bcl.AsyncInterfaces (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.DependencyInjection.Abstractions (5.0) + Microsoft.Extensions.Logging (5.0) + Microsoft.Extensions.DependencyInjection (>= 5.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0) + Microsoft.Extensions.Logging.Abstractions (>= 5.0) + Microsoft.Extensions.Options (>= 5.0) + System.Diagnostics.DiagnosticSource (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.Logging.Abstractions (5.0) + Microsoft.Extensions.Options (5.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0) + Microsoft.Extensions.Primitives (>= 5.0) + Microsoft.Extensions.Primitives (5.0.1) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netcoreapp3.0)) (&& (== net5.0) (>= uap10.1)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) + Microsoft.NET.StringTools (1.0) - copy_local: false + 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.0) (>= net45)) (&& (== netstandard2.0) (>= netcoreapp1.0)) + Microsoft.TestPlatform.TestHost (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) + Microsoft.NETCore.Platforms (5.0.2) + Microsoft.NETCore.Targets (5.0) + Microsoft.TestPlatform.ObjectModel (16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) NuGet.Frameworks (>= 5.0) - Microsoft.TestPlatform.TestHost (16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.TestPlatform.ObjectModel (>= 16.8) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= uap10.0)) - Newtonsoft.Json (>= 9.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) (&& (== netstandard2.0) (>= uap10.0)) - Microsoft.Win32.Primitives (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Reflection.Metadata (>= 1.6) + Microsoft.TestPlatform.TestHost (16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) + Microsoft.TestPlatform.ObjectModel (>= 16.10) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0)) + Newtonsoft.Json (>= 9.0.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= uap10.0)) + Microsoft.Win32.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - Microsoft.Win32.Registry (4.7) - System.Buffers (>= 4.5) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.3) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Security.AccessControl (>= 4.7) - System.Security.Principal.Windows (>= 4.7) - Microsoft.Win32.SystemEvents (4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + Microsoft.Win32.Registry (5.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + Microsoft.Win32.SystemEvents (5.0) - copy_local: false, restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) NETStandard.Library (2.0.3) Microsoft.NETCore.Platforms (>= 1.1) - Newtonsoft.Json (12.0.3) - NuGet.Frameworks (5.5.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - NUnit (3.12) + Newtonsoft.Json (13.0.1) + NuGet.Frameworks (5.9.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp1.0)) (&& (== netstandard2.0) (>= netcoreapp2.1)) + NUnit (3.13.2) NETStandard.Library (>= 2.0) - NUnit3TestAdapter (3.17) - Microsoft.DotNet.InternalAbstractions (>= 1.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.ComponentModel.EventBasedAsync (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.ComponentModel.TypeConverter (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Diagnostics.Process (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Reflection (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime.InteropServices.RuntimeInformation (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Threading.Thread (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Xml.XmlDocument (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Xml.XPath.XmlDocument (>= 4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + NUnit3TestAdapter (4.0) Perfolizer (0.2.1) System.Memory (>= 4.5.3) - runtime.native.System (4.3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + 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) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.native.System (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - Sln (0.3) - System.AppContext (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) - System.Buffers (4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== 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.0) - System.CodeDom (4.7) - System.Collections (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + runtime.native.System.Net.Http (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Net.Security (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + 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) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) + 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) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + 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) + System.Buffers (4.5.1) + System.CodeDom (5.0) + System.Collections (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Collections.Immutable (1.7) - System.Memory (>= 4.5.3) - restriction: || (&& (== net5.0) (>= net46)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Collections.NonGeneric (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= 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: || (== net5.0) (&& (== netstandard2.0) (>= 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: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) - System.ComponentModel.EventBasedAsync (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= 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: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.ComponentModel (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.ComponentModel.TypeConverter (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Collections.Concurrent (4.3) System.Collections (>= 4.3) - System.Collections.NonGeneric (>= 4.3) - System.Collections.Specialized (>= 4.3) - System.ComponentModel (>= 4.3) - System.ComponentModel.Primitives (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 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.Configuration.ConfigurationManager (4.7) - System.Security.Cryptography.ProtectedData (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Diagnostics.Debug (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Threading.Tasks (>= 4.3) + System.Collections.Immutable (5.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Configuration.ConfigurationManager (5.0) - copy_local: false + 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.Process (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Diagnostics.DiagnosticSource (5.0.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.0) + System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== 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)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Diagnostics.Process (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.Win32.Primitives (>= 4.3) Microsoft.Win32.Registry (>= 4.3) @@ -205,27 +282,48 @@ NUGET System.Threading.Tasks (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - System.Drawing.Common (4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - Microsoft.Win32.SystemEvents (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.Globalization (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Diagnostics.TraceSource (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + System.Collections (>= 4.3) + 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.Diagnostics.Tracing (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Globalization.Extensions (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Drawing.Common (5.0.2) - copy_local: false, restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Win32.SystemEvents (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + System.Formats.Asn1 (5.0) - copy_local: false + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== net5.0) (>= monotouch)) (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= xamarinios)) (&& (== net5.0) (>= xamarinmac)) (&& (== net5.0) (>= xamarintvos)) (&& (== net5.0) (>= xamarinwatchos)) (== netstandard2.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Globalization (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Globalization.Calendars (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Globalization (>= 4.3) + System.Runtime (>= 4.3) + System.Globalization.Extensions (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.Globalization (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Runtime.InteropServices (>= 4.3) - System.IO (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.IO (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading.Tasks (>= 4.3) - System.IO.FileSystem (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.IO.FileSystem (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.IO (>= 4.3) @@ -234,24 +332,137 @@ NUGET System.Runtime.Handles (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.IO.FileSystem.Primitives (4.3) + System.Runtime (>= 4.3) + System.Linq (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Linq (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.Extensions (>= 4.3) + System.Linq.Expressions (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Linq (>= 4.3) + System.ObjectModel (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Emit (>= 4.3) + System.Reflection.Emit.ILGeneration (>= 4.3) + System.Reflection.Emit.Lightweight (>= 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.Management (4.7) - Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - Microsoft.Win32.Registry (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.CodeDom (>= 4.7) + System.Threading (>= 4.3) + System.Linq.Queryable (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Linq (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Extensions (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Management (5.0) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + Microsoft.Win32.Registry (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + System.CodeDom (>= 5.0) System.Memory (4.5.4) System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== 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.0) System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net5.0) (>= monoandroid)) (&& (== 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.0) - System.Numerics.Vectors (4.5) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Net.Http (4.3.4) + Microsoft.NETCore.Platforms (>= 1.1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.DiagnosticSource (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.IO.FileSystem (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Primitives (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime (>= 4.3.1) + System.Runtime.Handles (>= 4.3) + System.Net.Requests (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Net.Http (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Net.WebHeaderCollection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Security (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.Win32.Primitives (>= 4.3) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Security (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Security.Principal (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + System.Net.WebHeaderCollection (4.3) + System.Collections (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Numerics.Vectors (4.5) - restriction: || (&& (== net5.0) (< netcoreapp2.0)) (== netstandard2.0) + System.ObjectModel (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Reflection (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.IO (>= 4.3) @@ -259,326 +470,511 @@ NUGET System.Runtime (>= 4.3) System.Reflection.Emit (4.7) System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Reflection.Emit.ILGeneration (4.7) System.Reflection.Emit.Lightweight (4.7) System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netstandard2.0)) (&& (== net5.0) (< portable-net45+wp8)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Extensions (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Reflection.Extensions (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Reflection.Metadata (1.8) - System.Collections.Immutable (>= 1.7) - restriction: || (&& (== net5.0) (>= net45)) (&& (== net5.0) (< netcoreapp3.1)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (== netstandard2.0) - System.Reflection.Primitives (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Reflection.Metadata (5.0) + System.Collections.Immutable (>= 5.0) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netstandard1.1)) (&& (== net5.0) (< netstandard2.0)) (== netstandard2.0) + System.Reflection.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Reflection.TypeExtensions (4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Resources.ResourceManager (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Reflection.TypeExtensions (4.7) + System.Resources.Extensions (5.0) - copy_local: false + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) + System.Resources.ResourceManager (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Globalization (>= 4.3) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Runtime (4.3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (4.7.1) - System.Runtime.Extensions (4.3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.CompilerServices.Unsafe (5.0) - copy_local: false + System.Runtime.Extensions (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) System.Runtime (>= 4.3.1) - System.Runtime.Handles (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.Handles (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Runtime.InteropServices (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.InteropServices (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Reflection (>= 4.3) System.Reflection.Primitives (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices.RuntimeInformation (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - runtime.native.System (>= 4.3) + System.Runtime.Loader (4.3) + System.IO (>= 4.3) System.Reflection (>= 4.3) - System.Reflection.Extensions (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Numerics (4.3) + System.Globalization (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Threading (>= 4.3) - System.Security.AccessControl (4.7) - Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.Security.Principal.Windows (>= 4.7) - System.Security.Cryptography.ProtectedData (4.7) - System.Memory (>= 4.5.3) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Security.Permissions (4.7) - System.Security.AccessControl (>= 4.7) - System.Windows.Extensions (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Security.Principal.Windows (4.7) - System.Text.Encoding (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) + System.Runtime.Extensions (>= 4.3) + System.Security.AccessControl (5.0) + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + System.Security.Principal.Windows (>= 5.0) + System.Security.Claims (4.3) + System.Collections (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (4.7) - Microsoft.NETCore.Platforms (>= 3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) - System.Runtime.CompilerServices.Unsafe (>= 4.7) - restriction: || (&& (== net5.0) (>= net461)) (&& (== net5.0) (< netcoreapp2.0)) (&& (== net5.0) (< netcoreapp3.1)) (== netstandard2.0) - System.Text.Encoding.Extensions (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.Extensions (>= 4.3) + System.Security.Principal (>= 4.3) + System.Security.Cryptography.Algorithms (4.3.1) Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.IO (>= 4.3) + System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Text.RegularExpressions (4.3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime (>= 4.3.1) - System.Threading (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Tasks (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Security.Cryptography.Cng (5.0) - copy_local: false + System.Formats.Asn1 (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Security.Cryptography.Csp (4.3) Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks.Extensions (4.5.4) - 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.0) - System.Threading.Thread (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Runtime (>= 4.3) - System.Threading.ThreadPool (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) System.Runtime.Handles (>= 4.3) - System.ValueTuple (4.5) - System.Windows.Extensions (4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Drawing.Common (>= 4.7) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Xml.ReaderWriter (4.3.1) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Security.Cryptography.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) 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.Collections.Concurrent (>= 4.3) + System.Linq (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Text.Encoding.Extensions (>= 4.3) - System.Text.RegularExpressions (>= 4.3) + System.Security.Cryptography.OpenSsl (5.0) + System.Formats.Asn1 (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Security.Cryptography.Pkcs (5.0.1) - copy_local: false + System.Buffers (>= 4.5.1) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (== netstandard2.0) + System.Formats.Asn1 (>= 5.0) + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net5.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net5.0) (>= uap10.1)) (== netstandard2.0) + System.Security.Cryptography.Cng (>= 5.0) + System.Security.Cryptography.Primitives (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.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.3) - System.Xml.XmlDocument (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) + System.Security.Cryptography.ProtectedData (5.0) - copy_local: false, restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Security.Cryptography.X509Certificates (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Http (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) + System.Globalization.Calendars (>= 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.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Cng (>= 4.3) + System.Security.Cryptography.Csp (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Xml.ReaderWriter (>= 4.3) - System.Xml.XPath (4.3) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Collections (>= 4.3) + System.Security.Cryptography.Xml (5.0) - copy_local: false + System.Memory (>= 4.5.4) - restriction: || (&& (== net5.0) (< netcoreapp2.1)) (== netstandard2.0) + System.Security.Cryptography.Pkcs (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Security.Permissions (5.0) - copy_local: false + System.Security.AccessControl (>= 5.0) + System.Windows.Extensions (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Security.Principal (4.3) + System.Runtime (>= 4.3) + System.Security.Principal.Windows (5.0) - copy_local: false + System.Text.Encoding (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Text.Encoding.CodePages (5.0) - copy_local: false + Microsoft.NETCore.Platforms (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.0)) + 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.Json (5.0.2) - copy_local: false, restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Threading (4.3) + System.Runtime (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Tasks (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Threading.Tasks.Dataflow (5.0) - copy_local: false + System.Threading.Tasks.Extensions (4.5.4) + 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.0) + System.Threading.Tasks.Parallel (4.3) + System.Collections.Concurrent (>= 4.3) System.Diagnostics.Debug (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) + System.Diagnostics.Tracing (>= 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: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp2.1)) - System.Collections (>= 4.3) - System.Globalization (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.Thread (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.Threading.ThreadPool (4.3) + System.Runtime (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.ValueTuple (4.5) + System.Windows.Extensions (5.0) - copy_local: false, restriction: || (== net5.0) (&& (== netstandard2.0) (>= net472) (>= netcoreapp3.0)) (&& (== netstandard2.0) (>= net5.0)) + System.Drawing.Common (>= 5.0) - restriction: || (== net5.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) GROUP Build STORAGE: NONE RESTRICTION: == netstandard2.0 NUGET remote: https://api.nuget.org/v3/index.json - BlackFox.VsWhere (1.0) + BlackFox.VsWhere (1.1) FSharp.Core (>= 4.2.3) - Fake.Api.GitHub (5.20) - FSharp.Core (>= 4.7.1) - Octokit (>= 0.47) - Fake.Core.CommandLineParsing (5.20) + Microsoft.Win32.Registry (>= 4.7) + Fake.Api.GitHub (5.20.4) + FSharp.Core (>= 4.7.2) + Octokit (>= 0.48) + Fake.Core.CommandLineParsing (5.20.4) FParsec (>= 1.1.1) - FSharp.Core (>= 4.7.1) - Fake.Core.Context (5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.Environment (5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.FakeVar (5.20) - Fake.Core.Context (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.Process (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.FakeVar (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) - System.Collections.Immutable (>= 1.7) - Fake.Core.ReleaseNotes (5.20) - Fake.Core.SemVer (>= 5.20) - Fake.Core.String (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.SemVer (5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.String (5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.Target (5.20) - Fake.Core.CommandLineParsing (>= 5.20) - Fake.Core.Context (>= 5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.FakeVar (>= 5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - FSharp.Control.Reactive (>= 4.2) - FSharp.Core (>= 4.7.1) - Fake.Core.Tasks (5.20) - Fake.Core.Trace (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.Trace (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.FakeVar (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.UserInput (5.20) - FSharp.Core (>= 4.7.1) - Fake.Core.Xml (5.20) - Fake.Core.String (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.DotNet.AssemblyInfoFile (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.DotNet.Cli (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.DotNet.MsBuild (>= 5.20) - Fake.DotNet.NuGet (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) + FSharp.Core (>= 4.7.2) + Fake.Core.Context (5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.Environment (5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.FakeVar (5.20.4) + Fake.Core.Context (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.Process (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.FakeVar (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) + System.Collections.Immutable (>= 1.7.1) + Fake.Core.ReleaseNotes (5.20.4) + Fake.Core.SemVer (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.SemVer (5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.String (5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.Target (5.20.4) + Fake.Core.CommandLineParsing (>= 5.20.4) + Fake.Core.Context (>= 5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.FakeVar (>= 5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + FSharp.Control.Reactive (>= 4.4.2) + FSharp.Core (>= 4.7.2) + Fake.Core.Tasks (5.20.4) + Fake.Core.Trace (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.Trace (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.FakeVar (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.UserInput (5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Core.Xml (5.20.4) + Fake.Core.String (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.DotNet.AssemblyInfoFile (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.DotNet.Cli (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.DotNet.MSBuild (>= 5.20.4) + Fake.DotNet.NuGet (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) Mono.Posix.NETStandard (>= 1.0) Newtonsoft.Json (>= 12.0.3) - Fake.DotNet.MsBuild (5.20) - BlackFox.VsWhere (>= 1.0) - Fake.Core.Environment (>= 5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) - MSBuild.StructuredLogger (>= 2.1.117) - Fake.DotNet.NuGet (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.SemVer (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Tasks (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.Core.Xml (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - Fake.Net.Http (>= 5.20) - FSharp.Core (>= 4.7.1) + Fake.DotNet.MSBuild (5.20.4) + BlackFox.VsWhere (>= 1.1) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) + MSBuild.StructuredLogger (>= 2.1.176) + Fake.DotNet.NuGet (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.SemVer (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Tasks (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.Core.Xml (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + Fake.Net.Http (>= 5.20.4) + FSharp.Core (>= 4.7.2) Newtonsoft.Json (>= 12.0.3) - NuGet.Protocol (>= 5.5.1) - Fake.DotNet.Paket (5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.DotNet.Cli (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.IO.FileSystem (5.20) - Fake.Core.String (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Net.Http (5.20) - Fake.Core.Trace (>= 5.20) - FSharp.Core (>= 4.7.1) - Fake.Tools.Git (5.20) - Fake.Core.Environment (>= 5.20) - Fake.Core.Process (>= 5.20) - Fake.Core.SemVer (>= 5.20) - Fake.Core.String (>= 5.20) - Fake.Core.Trace (>= 5.20) - Fake.IO.FileSystem (>= 5.20) - FSharp.Core (>= 4.7.1) + NuGet.Protocol (>= 5.6) + Fake.DotNet.Paket (5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.DotNet.Cli (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.IO.FileSystem (5.20.4) + Fake.Core.String (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Net.Http (5.20.4) + Fake.Core.Trace (>= 5.20.4) + FSharp.Core (>= 4.7.2) + Fake.Tools.Git (5.20.4) + Fake.Core.Environment (>= 5.20.4) + Fake.Core.Process (>= 5.20.4) + Fake.Core.SemVer (>= 5.20.4) + Fake.Core.String (>= 5.20.4) + Fake.Core.Trace (>= 5.20.4) + Fake.IO.FileSystem (>= 5.20.4) + FSharp.Core (>= 4.7.2) FParsec (1.1.1) FSharp.Core (>= 4.3.4) - FSharp.Control.Reactive (4.3) - FSharp.Core (>= 4.7) - System.Reactive (>= 4.3.2) - FSharp.Core (4.7.2) - Microsoft.Build (16.5) - Microsoft.Build.Framework (16.5) - System.Runtime.Serialization.Primitives (>= 4.1.1) - System.Threading.Thread (>= 4.0) - Microsoft.Build.Tasks.Core (16.5) - Microsoft.Build.Framework (>= 16.5) - Microsoft.Build.Utilities.Core (>= 16.5) + FSharp.Control.Reactive (5.0.2) + FSharp.Core (>= 4.7.2) + System.Reactive (>= 5.0) + FSharp.Core (5.0.1) + Microsoft.Build (16.10) + Microsoft.Build.Framework (16.10) + System.Security.Permissions (>= 4.7) + 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 (>= 1.5) - System.Linq.Parallel (>= 4.0.1) - System.Net.Http (>= 4.3.4) + System.Collections.Immutable (>= 5.0) System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.1) System.Resources.Extensions (>= 4.6) - System.Resources.Writer (>= 4.0) + 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.5) - Microsoft.Build.Framework (>= 16.5) + Microsoft.Build.Utilities.Core (16.10) + Microsoft.Build.Framework (>= 16.10) + Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 1.5) + System.Collections.Immutable (>= 5.0) + System.Configuration.ConfigurationManager (>= 4.7) + System.Security.Permissions (>= 4.7) System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.NETCore.Platforms (3.1.1) - Microsoft.NETCore.Targets (3.1) - Microsoft.Win32.Primitives (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - Microsoft.Win32.Registry (4.7) - System.Buffers (>= 4.5) - System.Memory (>= 4.5.3) - System.Security.AccessControl (>= 4.7) - System.Security.Principal.Windows (>= 4.7) + Microsoft.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NETCore.Platforms (5.0.2) + Microsoft.NETCore.Targets (5.0) + Microsoft.Win32.Registry (5.0) + System.Buffers (>= 4.5.1) + System.Memory (>= 4.5.4) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.133) + MSBuild.StructuredLogger (2.1.507) Microsoft.Build (>= 16.4) Microsoft.Build.Framework (>= 16.4) Microsoft.Build.Tasks.Core (>= 16.4) Microsoft.Build.Utilities.Core (>= 16.4) - System.IO.Compression (>= 4.3) - Newtonsoft.Json (12.0.3) - NuGet.Common (5.6) - NuGet.Frameworks (>= 5.6) + Newtonsoft.Json (13.0.1) + NuGet.Common (5.9.1) + NuGet.Frameworks (>= 5.9.1) + NuGet.Configuration (5.9.1) + NuGet.Common (>= 5.9.1) + System.Security.Cryptography.ProtectedData (>= 4.4) + NuGet.Frameworks (5.9.1) + NuGet.Packaging (5.9.1) + Newtonsoft.Json (>= 9.0.1) + NuGet.Configuration (>= 5.9.1) + NuGet.Versioning (>= 5.9.1) + System.Security.Cryptography.Cng (>= 5.0) + System.Security.Cryptography.Pkcs (>= 5.0) + NuGet.Protocol (5.9.1) + NuGet.Packaging (>= 5.9.1) + NuGet.Versioning (5.9.1) + Octokit (0.50) + System.Buffers (4.5.1) + System.CodeDom (5.0) + System.Collections.Immutable (5.0) + System.Memory (>= 4.5.4) + System.Configuration.ConfigurationManager (5.0) + System.Security.Cryptography.ProtectedData (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Formats.Asn1 (5.0) + System.Buffers (>= 4.5.1) + System.Memory (>= 4.5.4) + System.Memory (4.5.4) + System.Buffers (>= 4.5.1) + System.Numerics.Vectors (>= 4.4) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + System.Numerics.Vectors (4.5) + System.Reactive (5.0) + System.Runtime.InteropServices.WindowsRuntime (>= 4.3) + System.Threading.Tasks.Extensions (>= 4.5.4) + System.Reflection.Metadata (5.0) + System.Collections.Immutable (>= 5.0) + System.Resources.Extensions (5.0) + System.Memory (>= 4.5.4) + System.Runtime (4.3.1) + Microsoft.NETCore.Platforms (>= 1.1.1) + Microsoft.NETCore.Targets (>= 1.1.3) + System.Runtime.CompilerServices.Unsafe (5.0) + System.Runtime.InteropServices.WindowsRuntime (4.3) + System.Runtime (>= 4.3) + System.Security.AccessControl (5.0) + System.Security.Principal.Windows (>= 5.0) + System.Security.Cryptography.Cng (5.0) + System.Security.Cryptography.Pkcs (5.0.1) + System.Buffers (>= 4.5.1) + System.Formats.Asn1 (>= 5.0) + System.Memory (>= 4.5.4) + System.Security.Cryptography.Cng (>= 5.0) + System.Security.Cryptography.ProtectedData (5.0) + System.Memory (>= 4.5.4) + System.Security.Cryptography.Xml (5.0) + System.Memory (>= 4.5.4) + System.Security.Cryptography.Pkcs (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Security.Permissions (5.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (5.0) + System.Text.Encoding.CodePages (5.0) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + System.Threading.Tasks.Dataflow (5.0) + System.Threading.Tasks.Extensions (4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + +GROUP Docs +STORAGE: SYMLINK +RESTRICTION: == netstandard2.0 +NUGET + remote: https://api.nuget.org/v3/index.json + 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) + System.Buffers (>= 4.5.1) + System.Collections.Immutable (>= 5.0) System.Diagnostics.Process (>= 4.3) + System.Diagnostics.TraceSource (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Linq.Queryable (>= 4.3) + System.Memory (>= 4.5.4) + System.Net.Requests (>= 4.3) + System.Net.Security (>= 4.3) + System.Reflection.Emit (>= 4.3) + System.Reflection.Metadata (>= 5.0) + System.Reflection.TypeExtensions (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Loader (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Principal (>= 4.3) + System.Threading.Tasks.Parallel (>= 4.3) System.Threading.Thread (>= 4.3) - NuGet.Configuration (5.6) - NuGet.Common (>= 5.6) - System.Security.Cryptography.ProtectedData (>= 4.3) - NuGet.Frameworks (5.6) - NuGet.Packaging (5.6) - Newtonsoft.Json (>= 9.0.1) - NuGet.Configuration (>= 5.6) - NuGet.Versioning (>= 5.6) - System.Dynamic.Runtime (>= 4.3) - NuGet.Protocol (5.6) - NuGet.Packaging (>= 5.6) - System.Dynamic.Runtime (>= 4.3) - NuGet.Versioning (5.6) - Octokit (0.47) + System.Threading.ThreadPool (>= 4.3) + FSharp.Core (5.0.1) + FSharp.Formatting (4.1) + FSharp.Compiler.Service (>= 35.0) + Markdig (0.24) + System.Memory (>= 4.5.4) + Microsoft.Build.Framework (16.10) + System.Security.Permissions (>= 4.7) + 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.Resources.Extensions (>= 4.6) + 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.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.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.NETCore.Platforms (5.0.2) + Microsoft.NETCore.Targets (5.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) + System.Memory (>= 4.5.4) + System.Security.AccessControl (>= 5.0) + System.Security.Principal.Windows (>= 5.0) + Newtonsoft.Json (13.0.1) 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) @@ -588,10 +984,10 @@ NUGET runtime.native.System (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.IO.Compression (4.3.2) + runtime.native.System.Net.Http (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - runtime.native.System.Net.Http (4.3.1) + runtime.native.System.Net.Security (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) runtime.native.System.Security.Cryptography.Apple (4.3.1) @@ -623,7 +1019,7 @@ NUGET 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) System.Buffers (4.5.1) - System.CodeDom (4.7) + System.CodeDom (5.0) System.Collections (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -639,14 +1035,18 @@ NUGET System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Collections.Immutable (1.7.1) + System.Collections.Immutable (5.0) System.Memory (>= 4.5.4) + 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 (4.7.1) + System.Diagnostics.DiagnosticSource (5.0.1) System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) System.Diagnostics.Process (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.Win32.Primitives (>= 4.3) @@ -669,25 +1069,23 @@ NUGET System.Threading.Tasks (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - System.Diagnostics.Tracing (4.3) + System.Diagnostics.TraceSource (4.3) Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Dynamic.Runtime (4.3) + runtime.native.System (>= 4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) - System.Linq (>= 4.3) - System.Linq.Expressions (>= 4.3) - System.ObjectModel (>= 4.3) - System.Reflection (>= 4.3) - System.Reflection.Emit (>= 4.3) - System.Reflection.Emit.ILGeneration (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Reflection.TypeExtensions (>= 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.Diagnostics.Tracing (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Formats.Asn1 (5.0) + System.Buffers (>= 4.5.1) + System.Memory (>= 4.5.4) System.Globalization (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -710,22 +1108,6 @@ NUGET System.Runtime (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading.Tasks (>= 4.3) - System.IO.Compression (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System (>= 4.3) - runtime.native.System.IO.Compression (>= 4.3) - System.Buffers (>= 4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.IO (>= 4.3) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) System.IO.FileSystem (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -761,17 +1143,15 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) - System.Linq.Parallel (4.3) + System.Linq.Queryable (4.3) System.Collections (>= 4.3) - System.Collections.Concurrent (>= 4.3) System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) System.Linq (>= 4.3) + System.Linq.Expressions (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Extensions (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Runtime.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) System.Memory (4.5.4) System.Buffers (>= 4.5.1) System.Numerics.Vectors (>= 4.4) @@ -808,6 +1188,54 @@ NUGET Microsoft.NETCore.Targets (>= 1.1.3) System.Runtime (>= 4.3.1) System.Runtime.Handles (>= 4.3) + System.Net.Requests (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) + System.Net.Http (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Net.WebHeaderCollection (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Net.Security (4.3.2) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.Win32.Primitives (>= 4.3) + runtime.native.System (>= 4.3) + runtime.native.System.Net.Security (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + System.Collections (>= 4.3) + System.Collections.Concurrent (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Globalization.Extensions (>= 4.3) + System.IO (>= 4.3) + System.Net.Primitives (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Claims (>= 4.3) + System.Security.Cryptography.Algorithms (>= 4.3) + System.Security.Cryptography.Encoding (>= 4.3) + System.Security.Cryptography.OpenSsl (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (>= 4.3) + System.Security.Principal (>= 4.3) + System.Text.Encoding (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) + System.Threading.ThreadPool (>= 4.3) + System.Net.WebHeaderCollection (4.3) + System.Collections (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) System.Numerics.Vectors (4.5) System.ObjectModel (4.3) System.Collections (>= 4.3) @@ -815,9 +1243,6 @@ NUGET System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Threading (>= 4.3) - System.Reactive (4.4.1) - System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.4) System.Reflection (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -834,14 +1259,14 @@ NUGET Microsoft.NETCore.Targets (>= 1.1) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Reflection.Metadata (1.8.1) - System.Collections.Immutable (>= 1.7.1) + System.Reflection.Metadata (5.0) + System.Collections.Immutable (>= 5.0) 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 (4.7.1) + System.Resources.Extensions (5.0) System.Memory (>= 4.5.4) System.Resources.ResourceManager (4.3) Microsoft.NETCore.Platforms (>= 1.1) @@ -849,17 +1274,10 @@ NUGET System.Globalization (>= 4.3) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Resources.Writer (4.3) - System.Collections (>= 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.Runtime (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (4.7.1) + System.Runtime.CompilerServices.Unsafe (5.0) System.Runtime.Extensions (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) @@ -875,18 +1293,25 @@ NUGET System.Reflection.Primitives (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices.WindowsRuntime (4.3) + System.Runtime.Loader (4.3) + System.IO (>= 4.3) + System.Reflection (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Numerics (4.3) System.Globalization (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Runtime.Serialization.Primitives (4.3) + System.Security.AccessControl (5.0) + System.Security.Principal.Windows (>= 5.0) + System.Security.Claims (4.3) + System.Collections (>= 4.3) + System.Globalization (>= 4.3) + System.IO (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Security.AccessControl (4.7) - System.Security.Principal.Windows (>= 4.7) + System.Runtime.Extensions (>= 4.3) + System.Security.Principal (>= 4.3) System.Security.Cryptography.Algorithms (4.3.1) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) @@ -902,7 +1327,7 @@ NUGET System.Security.Cryptography.Encoding (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Security.Cryptography.Cng (4.7) + System.Security.Cryptography.Cng (5.0) System.Security.Cryptography.Csp (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.IO (>= 4.3) @@ -930,7 +1355,12 @@ NUGET System.Runtime.InteropServices (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (4.7) + System.Security.Cryptography.OpenSsl (5.0) + System.Security.Cryptography.Pkcs (5.0.1) + System.Buffers (>= 4.5.1) + System.Formats.Asn1 (>= 5.0) + System.Memory (>= 4.5.4) + System.Security.Cryptography.Cng (>= 5.0) System.Security.Cryptography.Primitives (4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) @@ -939,8 +1369,8 @@ NUGET System.Runtime (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Security.Cryptography.ProtectedData (4.7) - System.Memory (>= 4.5.3) + System.Security.Cryptography.ProtectedData (5.0) + System.Memory (>= 4.5.4) System.Security.Cryptography.X509Certificates (4.3.2) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System (>= 4.3) @@ -967,13 +1397,21 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Security.Principal.Windows (4.7) + System.Security.Cryptography.Xml (5.0) + System.Memory (>= 4.5.4) + System.Security.Cryptography.Pkcs (>= 5.0) + System.Security.Permissions (>= 5.0) + System.Security.Permissions (5.0) + System.Security.AccessControl (>= 5.0) + System.Security.Principal (4.3) + System.Runtime (>= 4.3) + System.Security.Principal.Windows (5.0) System.Text.Encoding (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Text.Encoding.CodePages (4.7.1) - System.Runtime.CompilerServices.Unsafe (>= 4.7.1) + System.Text.Encoding.CodePages (5.0) + System.Runtime.CompilerServices.Unsafe (>= 5.0) System.Text.Encoding.Extensions (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -986,80 +1424,18 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (4.11.1) - System.Threading.Tasks.Extensions (4.5.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + System.Threading.Tasks.Dataflow (5.0) + System.Threading.Tasks.Parallel (4.3) + System.Collections.Concurrent (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.Extensions (>= 4.3) + System.Threading (>= 4.3) + System.Threading.Tasks (>= 4.3) System.Threading.Thread (4.3) System.Runtime (>= 4.3) System.Threading.ThreadPool (4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - -GROUP Docs -STORAGE: SYMLINK -RESTRICTION: == netstandard2.0 -NUGET - remote: https://api.nuget.org/v3/index.json - FSharp.Compiler.Service (35.0) - FSharp.Core (>= 4.6.2) - System.Buffers (>= 4.5) - System.Collections.Immutable (>= 1.5) - System.Memory (>= 4.5.3) - System.Reflection.Emit (>= 4.3) - System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.3) - System.Runtime.Loader (>= 4.0) - FSharp.Core (4.7.2) - FSharp.Formatting (4.0.1) - FSharp.Compiler.Service (>= 35.0) - Markdig (0.20) - System.Memory (>= 4.5.4) - Microsoft.NETCore.Platforms (3.1.1) - Microsoft.NETCore.Targets (3.1) - Newtonsoft.Json (12.0.3) - System.Buffers (4.5.1) - System.Collections.Immutable (1.7.1) - System.Memory (>= 4.5.4) - System.IO (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - System.Numerics.Vectors (4.5) - System.Reflection (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.Reflection.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Reflection.Emit (4.7) - System.Reflection.Emit.ILGeneration (>= 4.7) - System.Reflection.Emit.ILGeneration (4.7) - System.Reflection.Metadata (1.8.1) - System.Collections.Immutable (>= 1.7.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.Runtime (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (4.7.1) - System.Runtime.Loader (4.3) - System.IO (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Text.Encoding (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Threading.Tasks (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) diff --git a/src/FSharpLint.Console/Output.fs b/src/FSharpLint.Console/Output.fs index c173e45ec..eeb4a0531 100644 --- a/src/FSharpLint.Console/Output.fs +++ b/src/FSharpLint.Console/Output.fs @@ -1,7 +1,7 @@ module FSharpLint.Console.Output open System -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework type IOutput = @@ -14,11 +14,11 @@ type IOutput = type StandardOutput () = - let getErrorMessage (range:FSharp.Compiler.Range.range) = + let getErrorMessage (range:Range) = let error = Resources.GetString("LintSourceError") String.Format(error, range.StartLine, range.StartColumn) - let highlightErrorText (range:range) (errorLine:string) = + let highlightErrorText (range:Range) (errorLine:string) = let highlightColumnLine = if String.length errorLine = 0 then "^" else diff --git a/src/FSharpLint.Console/Program.fs b/src/FSharpLint.Console/Program.fs index 13e120846..9c8dce072 100644 --- a/src/FSharpLint.Console/Program.fs +++ b/src/FSharpLint.Console/Program.fs @@ -69,7 +69,7 @@ let private inferFileType (target:string) = else FileType.Source -let private start (arguments:ParseResults) = +let private start (arguments:ParseResults) (toolsPath:Ionide.ProjInfo.Types.ToolsPath) = let mutable exitCode = 0 let output = @@ -116,9 +116,9 @@ let private start (arguments:ParseResults) = match fileType with | FileType.File -> Lint.lintFile lintParams target | FileType.Source -> Lint.lintSource lintParams target - | FileType.Solution -> Lint.lintSolution lintParams target + | FileType.Solution -> Lint.lintSolution lintParams target toolsPath | FileType.Project - | _ -> Lint.lintProject lintParams target + | _ -> Lint.lintProject lintParams target toolsPath handleLintResult lintResult with | e -> @@ -128,6 +128,10 @@ let private start (arguments:ParseResults) = | _ -> () exitCode + +/// Must be called only once per process. +/// We're calling it globally so we can call main multiple times from our tests. +let toolsPath = Ionide.ProjInfo.Init.init() [] let main argv = @@ -136,4 +140,4 @@ let main argv = | _ -> Some ConsoleColor.Red) let parser = ArgumentParser.Create(programName = "fsharplint", errorHandler = errorHandler) let parseResults = parser.ParseCommandLine argv - start parseResults \ No newline at end of file + start parseResults toolsPath diff --git a/src/FSharpLint.Core/Application/Lint.fs b/src/FSharpLint.Core/Application/Lint.fs index 4617b797c..5060c34b0 100644 --- a/src/FSharpLint.Core/Application/Lint.fs +++ b/src/FSharpLint.Core/Application/Lint.fs @@ -6,10 +6,10 @@ open System.Collections.Generic open System.IO open System.Runtime.InteropServices open System.Threading -open FSharp.Compiler +open FSharp.Compiler.Text open FSharp.Compiler.SourceCodeServices -open Dotnet.ProjInfo.Workspace -open Dotnet.ProjInfo.Workspace.FCS +open Ionide.ProjInfo.ProjectSystem +open Ionide.ProjInfo.FCS open FSharpLint.Core open FSharpLint.Framework open FSharpLint.Framework.Configuration @@ -59,7 +59,7 @@ module Lint = with get() = let getParseFailureReason = function | ParseFile.FailedToParseFile failures -> - let getFailureReason (x:FSharp.Compiler.SourceCodeServices.FSharpErrorInfo) = + let getFailureReason (x:FSharpDiagnostic) = sprintf "failed to parse file %s, message: %s" x.FileName x.Message String.Join(", ", failures |> Array.map getFailureReason) @@ -115,7 +115,7 @@ module Lint = type Context = { IndentationRuleContext:Map - NoTabCharactersRuleContext:(string * Range.range) list } + NoTabCharactersRuleContext:(string * Range) list } let runAstNodeRules (rules:RuleMetadata []) (globalConfig:Rules.GlobalRuleConfig) typeCheckResults (filePath:string) (fileContent:string) (lines:string []) syntaxArray = let mutable indentationRuleState = Map.empty @@ -240,21 +240,18 @@ module Lint = | None -> Async.RunSynchronously(work, timeoutMs) try - let typeChecksSuccessful (typeChecks:Async list) = - typeChecks - |> List.reduce (Async.combine (&&)) + let typeChecksSuccessful (typeChecks:(unit -> bool) list) = + (true, typeChecks) + ||> List.fold (fun acc cur -> acc && cur()) let typeCheckSuggestion (suggestion:Suggestion.LintWarning) = - typeChecksSuccessful suggestion.Details.TypeChecks - |> Async.map (fun checkSuccessful -> if checkSuccessful then Some suggestion else None) + if typeChecksSuccessful suggestion.Details.TypeChecks + then Some suggestion + else None suggestionsRequiringTypeChecks - |> Seq.map typeCheckSuggestion - |> Async.Parallel - |> runSynchronously - |> Array.iter (function - | Some suggestion -> suggest suggestion - | None -> ()) + |> Seq.choose typeCheckSuggestion + |> Seq.iter suggest with | :? TimeoutException -> () // Do nothing. with @@ -287,13 +284,26 @@ module Lint = (exitCode, (workingDir, exePath, args)) - let getProjectInfo (projectFilePath:string) = - let locator = MSBuildLocator() - let loader = Dotnet.ProjInfo.Workspace.Loader.Create (LoaderConfig.Default locator) - let netFwInfo = NetFWInfo.Create (NetFWInfoConfig.Default locator) - let fcsBinder = FCSBinder (netFwInfo, loader, FSharpChecker.Create(keepAssemblyContents=true)) - loader.LoadProjects [projectFilePath] - fcsBinder.GetProjectOptions projectFilePath + let getProjectInfo (projectFilePath:string) (toolsPath:Ionide.ProjInfo.Types.ToolsPath) = + let errorMessageFromNotifications notifications = + let extractError = function + | Ionide.ProjInfo.Types.WorkspaceProjectState.Failed(_projFile, error) -> Some(string(error)) + | _ -> None + + notifications + |> Seq.tryPick extractError + |> function Some(error) -> error | None -> "Unknown error when loading project file." + + let loader = Ionide.ProjInfo.WorkspaceLoader.Create toolsPath + let notifications = ResizeArray<_>() + loader.Notifications.Add notifications.Add + let options = loader.LoadProjects [projectFilePath] + options + |> Seq.tryFind (fun opt -> opt.ProjectFileName = projectFilePath) + |> Option.map (fun proj -> Ionide.ProjInfo.FCS.mapToFSharpProjectOptions proj options) + |> function + | Some proj -> Ok proj + | None -> errorMessageFromNotifications notifications |> Error let getFailedFiles = function | ParseFile.Failed failure -> Some failure @@ -380,7 +390,7 @@ module Lint = /// Lints an entire F# project by retrieving the files from a given /// path to the `.fsproj` file. - let lintProject (optionalParams:OptionalLintParameters) (projectFilePath:string) = + let lintProject (optionalParams:OptionalLintParameters) (projectFilePath:string) (toolsPath:Ionide.ProjInfo.Types.ToolsPath) = if IO.File.Exists projectFilePath then let projectFilePath = Path.GetFullPath projectFilePath let lintWarnings = LinkedList() @@ -426,13 +436,13 @@ module Lint = else Failure (FailedToParseFilesInProject failedFiles) - match getProjectInfo projectFilePath with + match getProjectInfo projectFilePath toolsPath with | Ok projectOptions -> match parseFilesInProject (Array.toList projectOptions.SourceFiles) projectOptions with | Success _ -> lintWarnings |> Seq.toList |> LintResult.Success | Failure x -> LintResult.Failure x - | Error err -> - MSBuildFailedToLoadProjectFile (projectFilePath, BuildFailure.InvalidProjectFileMessage (string err)) + | Error error -> + MSBuildFailedToLoadProjectFile (projectFilePath, BuildFailure.InvalidProjectFileMessage error) |> LintResult.Failure | Error err -> RunTimeConfigError err @@ -442,7 +452,7 @@ module Lint = |> LintResult.Failure /// Lints an entire F# solution by linting all projects specified in the `.sln` file. - let lintSolution (optionalParams:OptionalLintParameters) (solutionFilePath:string) = + let lintSolution (optionalParams:OptionalLintParameters) (solutionFilePath:string) (toolsPath:Ionide.ProjInfo.Types.ToolsPath) = if IO.File.Exists solutionFilePath then let solutionFilePath = Path.GetFullPath solutionFilePath let solutionFolder = Path.GetDirectoryName solutionFilePath @@ -469,7 +479,7 @@ module Lint = let (successes, failures) = projectsInSolution - |> Array.map (fun projectFilePath -> lintProject optionalParams projectFilePath) + |> Array.map (fun projectFilePath -> lintProject optionalParams projectFilePath toolsPath) |> Array.fold (fun (successes, failures) result -> match result with | LintResult.Success warnings -> diff --git a/src/FSharpLint.Core/Application/Lint.fsi b/src/FSharpLint.Core/Application/Lint.fsi index 357a6997e..8664f2fdc 100644 --- a/src/FSharpLint.Core/Application/Lint.fsi +++ b/src/FSharpLint.Core/Application/Lint.fsi @@ -18,7 +18,7 @@ module Lint = open FSharpLint.Framework open FSharpLint.Framework.Configuration open FSharpLint.Framework.Rules - open FSharp.Compiler + open FSharp.Compiler.Text open FSharp.Compiler.SourceCodeServices /// Provides information on what the linter is currently doing. @@ -108,7 +108,7 @@ module Lint = { IndentationRuleContext : Map // TODO: investigate incorrect indentation warning // fsharplint:disable-next-line Indentation - NoTabCharactersRuleContext : (string * Range.range) list } + NoTabCharactersRuleContext : (string * Range) list } /// Result of running the linter. [] @@ -126,11 +126,11 @@ module Lint = val runLineRules : LineRules -> Rules.GlobalRuleConfig -> string -> string -> string [] -> Context -> Suggestion.LintWarning [] /// Lints an entire F# solution by linting all projects specified in the `.sln` file. - val lintSolution : optionalParams:OptionalLintParameters -> solutionFilePath:string -> LintResult + val lintSolution : optionalParams:OptionalLintParameters -> solutionFilePath:string -> toolsPath:Ionide.ProjInfo.Types.ToolsPath -> LintResult /// Lints an entire F# project by retrieving the files from a given /// path to the `.fsproj` file. - val lintProject : optionalParams:OptionalLintParameters -> projectFilePath:string -> LintResult + val lintProject : optionalParams:OptionalLintParameters -> projectFilePath:string -> toolsPath:Ionide.ProjInfo.Types.ToolsPath -> LintResult /// Lints F# source code. val lintSource : optionalParams:OptionalLintParameters -> source:string -> LintResult diff --git a/src/FSharpLint.Core/FSharpLint.Core.fsproj b/src/FSharpLint.Core/FSharpLint.Core.fsproj index fffc7b7fb..c120dc610 100644 --- a/src/FSharpLint.Core/FSharpLint.Core.fsproj +++ b/src/FSharpLint.Core/FSharpLint.Core.fsproj @@ -1,7 +1,7 @@  - netstandard2.0 + net5.0 true true true diff --git a/src/FSharpLint.Core/Framework/Ast.fs b/src/FSharpLint.Core/Framework/Ast.fs index e0162f4ba..e168a8f9d 100644 --- a/src/FSharpLint.Core/Framework/Ast.fs +++ b/src/FSharpLint.Core/Framework/Ast.fs @@ -1,6 +1,6 @@ namespace FSharpLint.Framework -open FSharp.Compiler.Range +open FSharp.Compiler.Text /// Used to walk the FSharp Compiler's abstract syntax tree, /// so that each node can be visited by a list of visitors. diff --git a/src/FSharpLint.Core/Framework/HintParser.fs b/src/FSharpLint.Core/Framework/HintParser.fs index c99ab9940..e5663b504 100644 --- a/src/FSharpLint.Core/Framework/HintParser.fs +++ b/src/FSharpLint.Core/Framework/HintParser.fs @@ -426,7 +426,7 @@ module HintParser = >>= fun ident -> let identStr = System.String.Join("", ident) - let isKeyword = List.exists ((=) identStr) PrettyNaming.KeywordNames + let isKeyword = List.exists ((=) identStr) FSharpKeywords.KeywordNames if isKeyword then fail (sprintf "Unexpected keyword %s" identStr) else preturn ident diff --git a/src/FSharpLint.Core/Framework/ParseFile.fs b/src/FSharpLint.Core/Framework/ParseFile.fs index 91be14c01..8bca3fb69 100644 --- a/src/FSharpLint.Core/Framework/ParseFile.fs +++ b/src/FSharpLint.Core/Framework/ParseFile.fs @@ -28,7 +28,7 @@ module ParseFile = [] type ParseFileFailure = - | FailedToParseFile of FSharpErrorInfo [] + | FailedToParseFile of FSharpDiagnostic [] | AbortedTypeCheck [] @@ -56,16 +56,12 @@ module ParseFile = let getProjectOptionsFromScript (checker:FSharpChecker) file (source:string) = let sourceText = SourceText.ofString source - #if NETSTANDARD2_0 let assumeDotNetFramework = false - #else - let assumeDotNetFramework = true - #endif + let otherOpts = [| "--targetprofile:netstandard" |] let (options, _diagnostics) = - checker.GetProjectOptionsFromScript(file, sourceText, assumeDotNetFramework = assumeDotNetFramework, useSdkRefs = assumeDotNetFramework) + checker.GetProjectOptionsFromScript(file, sourceText, assumeDotNetFramework = assumeDotNetFramework, useSdkRefs = not assumeDotNetFramework, otherFlags = otherOpts) |> Async.RunSynchronously - options /// Parses a file using `FSharp.Compiler.Service`. diff --git a/src/FSharpLint.Core/Framework/Rules.fs b/src/FSharpLint.Core/Framework/Rules.fs index e0f7b6542..5f246f3d1 100644 --- a/src/FSharpLint.Core/Framework/Rules.fs +++ b/src/FSharpLint.Core/Framework/Rules.fs @@ -1,7 +1,7 @@ module FSharpLint.Framework.Rules open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharp.Compiler.SourceCodeServices open FSharpLint.Framework.AbstractSyntaxArray open FSharpLint.Framework.Ast @@ -67,7 +67,7 @@ type NamingConfig = type NamingRuleConfig = { Config:NamingConfig - GetIdentifiersToCheck:AstNodeRuleParams -> (Ident * string * Async option) [] } + GetIdentifiersToCheck:AstNodeRuleParams -> (Ident * string * (unit -> bool) option) [] } type LineRuleConfig = { Runner:LineRuleParams -> WarningDetails [] } diff --git a/src/FSharpLint.Core/Framework/Suggestion.fs b/src/FSharpLint.Core/Framework/Suggestion.fs index fddb7d387..afc263a78 100644 --- a/src/FSharpLint.Core/Framework/Suggestion.fs +++ b/src/FSharpLint.Core/Framework/Suggestion.fs @@ -1,7 +1,7 @@ module FSharpLint.Framework.Suggestion open System -open FSharp.Compiler.Range +open FSharp.Compiler.Text /// Information for consuming applications to provide an automated fix for a lint suggestion. [] @@ -10,7 +10,7 @@ type SuggestedFix = { FromText:string /// Location of the text to be replaced. - FromRange:range + FromRange:Range /// Text to replace the `FromText`, i.e. the fix. ToText:string @@ -19,7 +19,7 @@ type SuggestedFix = { [] type WarningDetails = { /// Location of the code that prompted the suggestion. - Range:range + Range:Range /// Suggestion message to describe the possible problem to the user. Message:string @@ -27,9 +27,9 @@ type WarningDetails = { /// Information to provide an automated fix. SuggestedFix:Lazy option - /// Async type checks to be performed to confirm this suggestion is valid. + /// Type checks to be performed to confirm this suggestion is valid. /// Suggestion is only considered valid when all type checks resolve to true. - TypeChecks:Async list + TypeChecks:(unit -> bool) list } with member internal this.WithTypeCheck typeCheck = match typeCheck with diff --git a/src/FSharpLint.Core/Framework/Utilities.fs b/src/FSharpLint.Core/Framework/Utilities.fs index 49cac0a6d..8e9c4d69c 100644 --- a/src/FSharpLint.Core/Framework/Utilities.fs +++ b/src/FSharpLint.Core/Framework/Utilities.fs @@ -26,7 +26,7 @@ module ExpressionUtilities = open System open FSharp.Compiler open FSharp.Compiler.SyntaxTree - open FSharp.Compiler.Range + open FSharp.Compiler.Text open FSharp.Compiler.SourceCodeServices let (|Identifier|_|) = function @@ -44,7 +44,7 @@ module ExpressionUtilities = range.EndColumn, "", identNames) - | _ -> async.Return None + | _ -> None /// Converts an operator name e.g. op_Add to the operator symbol e.g. + let identAsDecompiledOpName (ident:Ident) = @@ -80,7 +80,7 @@ module ExpressionUtilities = lidwd.Lid |> longIdentToString /// Tries to find the source code within a given range. - let tryFindTextOfRange (range:range) (text:string) = + let tryFindTextOfRange (range:Range) (text:string) = let startIndex = findPos range.Start text let endIndex = findPos range.End text @@ -89,8 +89,8 @@ module ExpressionUtilities = text.Substring(startIndex, endIndex - startIndex) |> Some | _ -> None - let getLeadingSpaces (range:range) (text:string) = - let range = mkRange "" (mkPos range.StartLine 0) range.End + let getLeadingSpaces (range:Range) (text:string) = + let range = Range.mkRange "" (Pos.mkPos range.StartLine 0) range.End tryFindTextOfRange range text |> Option.map (fun text -> text.ToCharArray() @@ -115,7 +115,7 @@ module ExpressionUtilities = /// Counts the number of comment lines preceding the given range of text. let countPrecedingCommentLines (text:string) (startPos:pos) (endPos:pos) = - let range = mkRange "" startPos endPos + let range = Range.mkRange "" startPos endPos tryFindTextOfRange range text |> Option.map (fun precedingText -> @@ -128,7 +128,7 @@ module ExpressionUtilities = |> Array.length) |> Option.defaultValue 0 - let rangeContainsOtherRange (containingRange:range) (range:range) = + let rangeContainsOtherRange (containingRange:Range) (range:Range) = range.StartLine >= containingRange.StartLine && range.EndLine <= containingRange.EndLine module String = diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs index 7369f0611..01d8db76a 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs @@ -21,15 +21,14 @@ let private checkForUselessBinding (checkInfo:FSharpCheckFileResults option) pat | :? FSharpMemberOrFunctionOrValue as v -> not v.IsMutable | _ -> true - let checkNotMutable (ident:Ident) = async { - let! symbol = + let checkNotMutable (ident:Ident) = fun () -> + let symbol = checkInfo.GetSymbolUseAtLocation( ident.idRange.StartLine, ident.idRange.EndColumn, "", [ident.idText]) match symbol with - | Some(symbol) -> return isNotMutable symbol - | None -> return false - } + | Some(symbol) -> isNotMutable symbol + | None -> false let rec matchingIdentifier (bindingIdent:Ident) = function | SynExpr.Paren(expr, _, _, _) -> diff --git a/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs b/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs index 9b86aa106..241fa51ac 100644 --- a/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs @@ -4,7 +4,7 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.PrettyNaming +open FSharp.Compiler.SourceCodeServices open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules @@ -25,7 +25,7 @@ let private validateLambdaIsNotPointless (text:string) lambda range = let generateError (identifier:LongIdent) = let identifier = identifier - |> List.map (fun x -> DemangleOperatorName x.idText) + |> List.map (fun x -> PrettyNaming.DemangleOperatorName x.idText) |> String.concat "." let suggestedFix = lazy( diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs index e2f8ef6e3..103efa497 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.AstInfo open FSharpLint.Framework.Rules open FSharpLint.Rules.Helper.Naming -let private getMemberIdents _ = function +let private getMemberIdents _ = function | SynPat.LongIdent(longIdent, _, _, _, _, _) -> match List.tryLast longIdent.Lid with | Some(ident) when ident.idText.StartsWith "op_" -> diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs index d6a991a56..7ac11f4dc 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs @@ -2,7 +2,7 @@ module FSharpLint.Rules.Helper.Naming open System open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Ast open FSharpLint.Framework.AstInfo @@ -54,7 +54,7 @@ let private NumberOfExpectedBackticks = 4 /// the information as to whether the identifier was backticked doesn't appear to be in the AST. let private isNotDoubleBackTickedIdent = let isDoubleBackTickedIdent (identifier:Ident) = - let diffOfRangeAgainstIdent (r:range) = (r.EndColumn - r.StartColumn) - identifier.idText.Length + let diffOfRangeAgainstIdent (r:Range) = (r.EndColumn - r.StartColumn) - identifier.idText.Length let range = identifier.idRange not range.IsSynthetic && diffOfRangeAgainstIdent range = NumberOfExpectedBackticks @@ -170,7 +170,7 @@ let toAstNodeRule (namingRule:RuleMetadata) = } let isActivePattern (identifier:Ident) = - FSharp.Compiler.PrettyNaming.IsActivePatternName identifier.idText + FSharp.Compiler.SourceCodeServices.PrettyNaming.IsActivePatternName identifier.idText let activePatternIdentifiers (identifier:Ident) = identifier.idText.Split('|') @@ -244,14 +244,13 @@ let isLiteral = isAttribute "Literal" let isMeasureType = isAttribute "Measure" -let isNotUnionCase (checkFile:FSharpCheckFileResults) (ident:Ident) = async { - let! symbol = checkFile.GetSymbolUseAtLocation( +let isNotUnionCase (checkFile:FSharpCheckFileResults) (ident:Ident) = + let symbol = checkFile.GetSymbolUseAtLocation( ident.idRange.StartLine, ident.idRange.EndColumn, "", [ident.idText]) match symbol with - | Some(symbol) when (symbol.Symbol :? FSharpUnionCase) -> return false - | Some(_) | None -> return true -} + | Some(symbol) when (symbol.Symbol :? FSharpUnionCase) -> false + | Some(_) | None -> true let isInterface typeDef = let hasConstructor = function @@ -284,7 +283,7 @@ let isModule (moduleKind:SynModuleOrNamespaceKind) = /// Is module name implicitly created from file name? let isImplicitModule (SynModuleOrNamespace.SynModuleOrNamespace(longIdent, _, moduleKind, _, _, _, _, range)) = - let zeroLengthRange (r:range) = + let zeroLengthRange (r:Range) = (r.EndColumn - r.StartColumn) = 0 && r.StartLine = r.EndLine // Check the identifiers in the module name have no length. @@ -292,7 +291,9 @@ let isImplicitModule (SynModuleOrNamespace.SynModuleOrNamespace(longIdent, _, mo // TODO: does SynModuleOrNamespaceKind.AnonModule replace this check? isModule moduleKind && longIdent |> List.forall (fun x -> zeroLengthRange x.idRange) -let rec getPatternIdents isPublic getIdents argsAreParameters pattern = +type GetIdents<'t> = bool -> SynPat -> 't [] + +let rec getPatternIdents<'t> isPublic (getIdents:GetIdents<'t>) argsAreParameters pattern = match pattern with | SynPat.LongIdent(_, _, _, args, access, _) -> let isPublic = checkIfPublic isPublic access diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/NonPublicValuesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/NonPublicValuesNames.fs index f8e0a5203..34e1b796e 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/NonPublicValuesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/NonPublicValuesNames.fs @@ -7,8 +7,10 @@ open FSharpLint.Framework.Rules open FSharpLint.Rules.Helper.Naming let private getValueOrFunctionIdents typeChecker isPublic pattern = - let checkNotUnionCase ident = - typeChecker |> Option.map (fun checker -> isNotUnionCase checker ident) + let checkNotUnionCase ident = fun () -> + typeChecker + |> Option.map (fun checker -> isNotUnionCase checker ident) + |> Option.defaultValue false match pattern with | SynPat.LongIdent(longIdent, _, _, _, _, _) -> @@ -19,7 +21,7 @@ let private getValueOrFunctionIdents typeChecker isPublic pattern = | Some ident when not (isActivePattern ident) && singleIdentifier -> let checkNotUnionCase = checkNotUnionCase ident if not isPublic then - (ident, ident.idText, checkNotUnionCase) + (ident, ident.idText, Some checkNotUnionCase) |> Array.singleton else Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs index 51f47ec73..04df6bdcd 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs @@ -13,14 +13,16 @@ let private getMemberIdents _ = function | _ -> Array.empty let private getValueOrFunctionIdents typeChecker isPublic pattern = - let checkNotUnionCase ident = - typeChecker |> Option.map (fun checker -> isNotUnionCase checker ident) + let checkNotUnionCase ident = fun () -> + typeChecker + |> Option.map (fun checker -> isNotUnionCase checker ident) + |> Option.defaultValue true match pattern with | SynPat.Named(_, ident, _, _, _) | SynPat.OptionalVal(ident, _) when not (isActivePattern ident) -> let checkNotUnionCase = checkNotUnionCase ident - (ident, ident.idText, checkNotUnionCase) |> Array.singleton + (ident, ident.idText, Some checkNotUnionCase) |> Array.singleton | _ -> Array.empty let private getIdentifiers (args:AstNodeRuleParams) = diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs index 6933b3cec..1946d76c3 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs @@ -7,8 +7,10 @@ open FSharpLint.Framework.Rules open FSharpLint.Rules.Helper.Naming let private getValueOrFunctionIdents typeChecker isPublic pattern = - let checkNotUnionCase ident = - typeChecker |> Option.map (fun checker -> isNotUnionCase checker ident) + let checkNotUnionCase ident = fun () -> + typeChecker + |> Option.map (fun checker -> isNotUnionCase checker ident) + |> Option.defaultValue false let isNotActivePattern (ident:Ident) = ident.idText.StartsWith("|") @@ -23,7 +25,7 @@ let private getValueOrFunctionIdents typeChecker isPublic pattern = | Some ident when singleIdentifier -> let checkNotUnionCase = checkNotUnionCase ident if isPublic && isNotActivePattern ident then - (ident, ident.idText, checkNotUnionCase) + (ident, ident.idText, Some checkNotUnionCase) |> Array.singleton else Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/NoPartialFunctions.fs b/src/FSharpLint.Core/Rules/Conventions/NoPartialFunctions.fs index 984f99762..2c65ea725 100644 --- a/src/FSharpLint.Core/Rules/Conventions/NoPartialFunctions.fs +++ b/src/FSharpLint.Core/Rules/Conventions/NoPartialFunctions.fs @@ -1,7 +1,7 @@ module FSharpLint.Rules.NoPartialFunctions open System -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast @@ -67,7 +67,7 @@ let private partialFunctionIdentifiers = ("List.pick", Function "List.tryPick") ] |> Map.ofList -let private checkIfPartialIdentifier (config:Config) (identifier:string) (range:range) = +let private checkIfPartialIdentifier (config:Config) (identifier:string) (range:Range) = if List.contains identifier config.AllowedPartials then None elif List.contains identifier config.AdditionalPartials then diff --git a/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs b/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs index 417759edc..8d8aeb580 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs @@ -3,7 +3,7 @@ module FSharpLint.Rules.RecursiveAsyncFunction open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules @@ -29,8 +29,8 @@ let private getFunctionNameFromAsyncCompExprBinding = function | _ -> None -let checkRecursiveAsyncFunction (args:AstNodeRuleParams) (range:range) (doBangExpr:SynExpr) breadcrumbs = - let doTokenRange = mkRange "do!" (mkPos range.StartLine range.StartColumn) (mkPos range.StartLine (range.StartColumn + 3)) +let checkRecursiveAsyncFunction (args:AstNodeRuleParams) (range:Range) (doBangExpr:SynExpr) breadcrumbs = + let doTokenRange = Range.mkRange "do!" (Pos.mkPos range.StartLine range.StartColumn) (Pos.mkPos range.StartLine (range.StartColumn + 3)) match doBangExpr with | SynExpr.App (funcExpr=(SynExpr.Ident callerIdent)) -> breadcrumbs diff --git a/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs b/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs index 982b352bc..03ee5c5a7 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs @@ -15,19 +15,18 @@ let private implementsIDisposable (fsharpType:FSharpType) = else false -let private doesNotImplementIDisposable (checkFile:FSharpCheckFileResults) (ident:LongIdentWithDots) = async { +let private doesNotImplementIDisposable (checkFile:FSharpCheckFileResults) (ident:LongIdentWithDots) = fun () -> let names = ident.Lid |> List.map (fun x -> x.idText) - let! symbol = checkFile.GetSymbolUseAtLocation(ident.Range.StartLine, ident.Range.EndColumn, "", names) + let symbol = checkFile.GetSymbolUseAtLocation(ident.Range.StartLine, ident.Range.EndColumn, "", names) match symbol with | Some(symbol) when (symbol.Symbol :? FSharpMemberOrFunctionOrValue) -> let ctor = symbol.Symbol :?> FSharpMemberOrFunctionOrValue - return - ctor.DeclaringEntity - |> Option.exists (fun ctorForType -> - Seq.forall (implementsIDisposable >> not) ctorForType.AllInterfaces) - | Some(_) | None -> return false -} + + ctor.DeclaringEntity + |> Option.exists (fun ctorForType -> + Seq.forall (implementsIDisposable >> not) ctorForType.AllInterfaces) + | Some(_) | None -> false let private generateFix (text:string) range = lazy( ExpressionUtilities.tryFindTextOfRange range text diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/SourceLengthHelper.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/SourceLengthHelper.fs index 9213a910a..92a5ba709 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/SourceLengthHelper.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/SourceLengthHelper.fs @@ -3,7 +3,7 @@ module FSharpLint.Rules.Helper.SourceLength open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion -open FSharp.Compiler.Range +open FSharp.Compiler.Text [] type Config = { MaxLines:int } @@ -12,7 +12,7 @@ let private error name i actual = let errorFormatString = Resources.GetString("RulesSourceLengthError") String.Format(errorFormatString, name, i, actual) -let private length (range:range) = range.EndLine - range.StartLine +let private length (range:Range) = range.EndLine - range.StartLine let checkSourceLengthRule (config:Config) range errorName = let actualLines = length range diff --git a/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs index 73221beea..186babf81 100644 --- a/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs @@ -2,7 +2,7 @@ module FSharpLint.Rules.ClassMemberSpacing open System open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast @@ -24,10 +24,10 @@ let checkClassMemberSpacing (args:AstNodeRuleParams) (members:SynMemberDefns) = then 1 else 0 - mkRange + Range.mkRange "" - (mkPos (memberOne.Range.EndLine + 1) 0) - (mkPos (memberTwo.Range.StartLine + endOffset) 0) + (Pos.mkPos (memberOne.Range.EndLine + 1) 0) + (Pos.mkPos (memberTwo.Range.StartLine + endOffset) 0) { Range = intermediateRange Message = Resources.GetString("RulesFormattingClassMemberSpacingError") diff --git a/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs index 00ddb4a88..23ee90021 100644 --- a/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs @@ -2,7 +2,7 @@ module FSharpLint.Rules.ModuleDeclSpacing open System open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast @@ -26,10 +26,10 @@ let checkModuleDeclSpacing (args:AstNodeRuleParams) synModuleOrNamespace = then 1 else 0 - mkRange + Range.mkRange "" - (mkPos (declOne.Range.EndLine + 1) 0) - (mkPos (declTwo.Range.StartLine + endOffset) 0) + (Pos.mkPos (declOne.Range.EndLine + 1) 0) + (Pos.mkPos (declTwo.Range.StartLine + endOffset) 0) { Range = intermediateRange Message = Resources.GetString("RulesFormattingModuleDeclSpacingError") SuggestedFix = None diff --git a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleCommaSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleCommaSpacing.fs index 0d0f9af23..cfb968e82 100644 --- a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleCommaSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleCommaSpacing.fs @@ -2,7 +2,7 @@ module FSharpLint.Rules.TupleCommaSpacing open System open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast @@ -16,7 +16,7 @@ let checkTupleCommaSpacing (args:AstNodeRuleParams) (tupleExprs:SynExpr list) tu |> Array.pairwise |> Array.choose (fun (expr, nextExpr) -> if expr.Range.EndLine = nextExpr.Range.StartLine && expr.Range.EndColumn + 2 <> nextExpr.Range.StartColumn then - let commaRange = mkRange "" expr.Range.End nextExpr.Range.Start + let commaRange = Range.mkRange "" expr.Range.End nextExpr.Range.Start let suggestedFix = ExpressionUtilities.tryFindTextOfRange commaRange args.FileContent |> Option.map (fun commaText -> diff --git a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleIndentation.fs b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleIndentation.fs index 082f55564..45695e33e 100644 --- a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleIndentation.fs +++ b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleIndentation.fs @@ -3,7 +3,7 @@ module FSharpLint.Rules.TupleIndentation open System open System.Diagnostics.CodeAnalysis open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast @@ -19,7 +19,7 @@ let checkTupleIndentation _ (tupleExprs:SynExpr list) _ _ = |> Array.pairwise |> Array.choose (fun (expr, nextExpr) -> if expr.Range.StartColumn <> nextExpr.Range.StartColumn then - { Range = mkRange "" expr.Range.Start nextExpr.Range.End + { Range = Range.mkRange "" expr.Range.Start nextExpr.Range.End Message = Resources.GetString("RulesFormattingTupleIndentationError") SuggestedFix = None TypeChecks = [] } |> Some diff --git a/src/FSharpLint.Core/Rules/Formatting/TypedItemSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/TypedItemSpacing.fs index 011d4615d..dc0d322af 100644 --- a/src/FSharpLint.Core/Rules/Formatting/TypedItemSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/TypedItemSpacing.fs @@ -1,7 +1,7 @@ module FSharpLint.Rules.TypedItemSpacing open System -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharp.Compiler.SyntaxTree open FSharpLint.Framework open FSharpLint.Framework.Suggestion @@ -40,7 +40,7 @@ let private expectedSpacesFromConfig (typedItemStyle:TypedItemStyle) = | _ -> (0, 0) /// Checks the provided range, containing a typed item, has valid spacing. -let private checkRange (config:Config) (args:AstNodeRuleParams) (range:range) = +let private checkRange (config:Config) (args:AstNodeRuleParams) (range:Range) = let (expectedSpacesBefore, expectedSpacesAfter) = expectedSpacesFromConfig config.TypedItemStyle diff --git a/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs b/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs index f3e5b50cf..c7305f65b 100644 --- a/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs +++ b/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs @@ -4,7 +4,6 @@ open System open System.Collections.Generic open System.Diagnostics open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.PrettyNaming open FSharp.Compiler.SourceCodeServices open FSharpLint.Framework open FSharpLint.Framework.Suggestion @@ -204,7 +203,7 @@ module private MatchExpression = [] type HintMatch = - | Match of Async list + | Match of (unit -> bool) list | NoMatch let private (&&~) lhs rhs = @@ -219,21 +218,19 @@ module private MatchExpression = | SynExpr.Ident(ident), SynExpr.Ident(opIdent) when opIdent.idText = "op_Equality" -> match arguments.FSharpCheckFileResults with | Some(checkFile) -> - async { - let! symbolUse = + fun () -> + let symbolUse = checkFile.GetSymbolUseAtLocation( ident.idRange.StartLine, ident.idRange.EndColumn, "", [ident.idText]) - return - match symbolUse with - | Some(symbolUse) -> - match symbolUse.Symbol with - | :? FSharpParameter - | :? FSharpField -> false - | :? FSharpMemberOrFunctionOrValue as x -> not x.IsProperty - | _ -> true - | None -> true - } + match symbolUse with + | Some(symbolUse) -> + match symbolUse.Symbol with + | :? FSharpParameter + | :? FSharpField -> false + | :? FSharpMemberOrFunctionOrValue as x -> not x.IsProperty + | _ -> true + | None -> true |> List.singleton |> Match | None -> @@ -525,7 +522,7 @@ module private FormatHint = | HintExpr(Expression.Identifier(identifier)) | HintPat(Pattern.Identifier(identifier)) -> identifier - |> List.map DemangleOperatorName + |> List.map PrettyNaming.DemangleOperatorName |> String.concat "." | HintExpr(Expression.FunctionApplication(expressions)) -> expressions |> surroundExpressionsString (HintExpr >> toString) "" "" " " @@ -597,8 +594,8 @@ let private hintError typeChecks hint (args:AstNodeRuleParams) range matchedVari let error = System.String.Format(errorFormatString, matched, message) { Range = range; Message = error; SuggestedFix = None; TypeChecks = typeChecks } -let private getMethodParameters (checkFile:FSharpCheckFileResults) (methodIdent:LongIdentWithDots) = async { - let! symbol = +let private getMethodParameters (checkFile:FSharpCheckFileResults) (methodIdent:LongIdentWithDots) = + let symbol = checkFile.GetSymbolUseAtLocation( methodIdent.Range.StartLine, methodIdent.Range.EndColumn, @@ -609,24 +606,21 @@ let private getMethodParameters (checkFile:FSharpCheckFileResults) (methodIdent: | Some(symbol) when (symbol.Symbol :? FSharpMemberOrFunctionOrValue) -> let symbol = symbol.Symbol :?> FSharpMemberOrFunctionOrValue - if symbol.IsMember then return symbol.CurriedParameterGroups |> Seq.tryHead - else return None - | _ -> return None -} + if symbol.IsMember then symbol.CurriedParameterGroups |> Seq.tryHead + else None + | _ -> None /// Check a lambda function can be replaced with a function, /// it will not be if the lambda is automatically getting /// converted to a delegate type e.g. Func. -let private canReplaceLambdaWithFunction checkFile methodIdent index = async { - let! parameters = getMethodParameters checkFile methodIdent - +let private canReplaceLambdaWithFunction checkFile methodIdent index = + let parameters = getMethodParameters checkFile methodIdent match parameters with | Some(parameters) when index < Seq.length parameters -> let parameter = parameters.[index] - return not (parameter.Type.HasTypeDefinition && parameter.Type.TypeDefinition.IsDelegate) - | _ -> return true -} + not (parameter.Type.HasTypeDefinition && parameter.Type.TypeDefinition.IsDelegate) + | _ -> true /// Check if lambda can be replaced with an identifier (cannot in the case when is a parameter with the type of a delegate). let private (|RequiresCheck|CanBeReplaced|CannotBeReplaced|) (breadcrumbs, range) = @@ -677,7 +671,7 @@ let private confirmFuzzyMatch (args:AstNodeRuleParams) (hint:HintParser.Hint) = | RequiresCheck(index, methodIdent) -> match args.CheckInfo with | Some checkFile -> - let typeCheck = canReplaceLambdaWithFunction checkFile methodIdent index + let typeCheck = fun () -> canReplaceLambdaWithFunction checkFile methodIdent index suggest (typeCheck ::typeChecks) | None -> () | CanBeReplaced -> suggest typeChecks diff --git a/src/FSharpLint.Core/Rules/Typography/Indentation.fs b/src/FSharpLint.Core/Rules/Typography/Indentation.fs index 2102957d9..6513990cf 100644 --- a/src/FSharpLint.Core/Rules/Typography/Indentation.fs +++ b/src/FSharpLint.Core/Rules/Typography/Indentation.fs @@ -3,7 +3,7 @@ module FSharpLint.Rules.Indentation open System open FSharpLint.Framework open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules @@ -12,9 +12,9 @@ let [] RuleName = "Indentation" module ContextBuilder = - let private firstRangePerLine (ranges:range list) = + let private firstRangePerLine (ranges:Range list) = List.foldBack - (fun (range:range) map -> Map.add range.StartLine range map) + (fun (range:Range) map -> Map.add range.StartLine range map) ranges Map.empty |> Map.toList @@ -31,7 +31,7 @@ module ContextBuilder = helper [] seqExpr |> List.rev - let private createAbsoluteAndOffsetOverrides expectedIndentation (rangeToUpdate:range) = + let private createAbsoluteAndOffsetOverrides expectedIndentation (rangeToUpdate:Range) = let absoluteOverride = (rangeToUpdate.StartLine, (true, expectedIndentation)) let relativeOverrides = [(rangeToUpdate.StartLine + 1)..rangeToUpdate.EndLine] @@ -49,7 +49,7 @@ module ContextBuilder = | _ -> [] - let private createAbsoluteAndOffsetOverridesBasedOnFirst (ranges:range list) = + let private createAbsoluteAndOffsetOverridesBasedOnFirst (ranges:Range list) = match ranges with | (first::others) -> let expectedIndentation = first.StartColumn @@ -120,7 +120,7 @@ module ContextBuilder = let checkIndentation (expectedSpaces:int) (line:string) (lineNumber:int) (indentationOverrides:Map) = let lineTrimmedStart = line.TrimStart() let numLeadingSpaces = line.Length - lineTrimmedStart.Length - let range = mkRange "" (mkPos lineNumber 0) (mkPos lineNumber numLeadingSpaces) + let range = Range.mkRange "" (Pos.mkPos lineNumber 0) (Pos.mkPos lineNumber numLeadingSpaces) if lineTrimmedStart.StartsWith "//" || lineTrimmedStart.StartsWith "(*" then None diff --git a/src/FSharpLint.Core/Rules/Typography/MaxCharactersOnLine.fs b/src/FSharpLint.Core/Rules/Typography/MaxCharactersOnLine.fs index fc2a1541f..8ae8f7f7c 100644 --- a/src/FSharpLint.Core/Rules/Typography/MaxCharactersOnLine.fs +++ b/src/FSharpLint.Core/Rules/Typography/MaxCharactersOnLine.fs @@ -4,7 +4,7 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Rules -open FSharp.Compiler.Range +open FSharp.Compiler.Text [] type Config = { MaxCharactersOnLine:int } @@ -13,7 +13,7 @@ let checkMaxCharactersOnLine (config:Config) (args:LineRuleParams) = let maxCharacters = config.MaxCharactersOnLine let lineLength = String.length args.Line if lineLength > maxCharacters then - let range = mkRange "" (mkPos args.LineNumber (maxCharacters + 1)) (mkPos args.LineNumber lineLength) + let range = Range.mkRange "" (Pos.mkPos args.LineNumber (maxCharacters + 1)) (Pos.mkPos args.LineNumber lineLength) let errorFormatString = Resources.GetString("RulesTypographyLineLengthError") { Range = range Message = String.Format(errorFormatString, (maxCharacters + 1)) diff --git a/src/FSharpLint.Core/Rules/Typography/MaxLinesInFile.fs b/src/FSharpLint.Core/Rules/Typography/MaxLinesInFile.fs index 20b78f4ea..97c308cd5 100644 --- a/src/FSharpLint.Core/Rules/Typography/MaxLinesInFile.fs +++ b/src/FSharpLint.Core/Rules/Typography/MaxLinesInFile.fs @@ -4,7 +4,7 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Rules -open FSharp.Compiler.Range +open FSharp.Compiler.Text [] type Config = { MaxLinesInFile:int } @@ -12,7 +12,7 @@ type Config = { MaxLinesInFile:int } let private checkNumberOfLinesInFile numberOfLines line maxLines = if numberOfLines > maxLines then let errorFormatString = Resources.GetString("RulesTypographyFileLengthError") - { Range = mkRange "" (mkPos (maxLines + 1) 0) (mkPos numberOfLines (String.length line)) + { Range = Range.mkRange "" (Pos.mkPos (maxLines + 1) 0) (Pos.mkPos numberOfLines (String.length line)) Message = String.Format(errorFormatString, (maxLines + 1)) SuggestedFix = None TypeChecks = [] } |> Array.singleton diff --git a/src/FSharpLint.Core/Rules/Typography/NoTabCharacters.fs b/src/FSharpLint.Core/Rules/Typography/NoTabCharacters.fs index 87e677fba..31d104f4f 100644 --- a/src/FSharpLint.Core/Rules/Typography/NoTabCharacters.fs +++ b/src/FSharpLint.Core/Rules/Typography/NoTabCharacters.fs @@ -4,7 +4,7 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharp.Compiler.SyntaxTree -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules @@ -24,7 +24,7 @@ let checkNoTabCharacters literalStrings (args:LineRuleParams) = let indexOfTab = args.Line.IndexOf('\t') if indexOfTab >= 0 then - let range = mkRange "" (mkPos args.LineNumber indexOfTab) (mkPos args.LineNumber (indexOfTab + 1)) + let range = Range.mkRange "" (Pos.mkPos args.LineNumber indexOfTab) (Pos.mkPos args.LineNumber (indexOfTab + 1)) if isInLiteralString literalStrings range |> not then { Range = range Message = Resources.GetString("RulesTypographyTabCharacterError") diff --git a/src/FSharpLint.Core/Rules/Typography/TrailingNewLineInFile.fs b/src/FSharpLint.Core/Rules/Typography/TrailingNewLineInFile.fs index c1a8a3594..461bc88e5 100644 --- a/src/FSharpLint.Core/Rules/Typography/TrailingNewLineInFile.fs +++ b/src/FSharpLint.Core/Rules/Typography/TrailingNewLineInFile.fs @@ -4,12 +4,12 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Rules -open FSharp.Compiler.Range +open FSharp.Compiler.Text let checkTrailingNewLineInFile (args:LineRuleParams) = if args.IsLastLine && args.FileContent.EndsWith("\n") then - let pos = mkPos args.LineNumber 0 - { Range = mkRange "" pos pos + let pos = Pos.mkPos args.LineNumber 0 + { Range = Range.mkRange "" pos pos Message = Resources.GetString("RulesTypographyTrailingLineError") SuggestedFix = None TypeChecks = [] } |> Array.singleton diff --git a/src/FSharpLint.Core/Rules/Typography/TrailingWhitespaceOnLine.fs b/src/FSharpLint.Core/Rules/Typography/TrailingWhitespaceOnLine.fs index 0494a25f7..1346c1a07 100644 --- a/src/FSharpLint.Core/Rules/Typography/TrailingWhitespaceOnLine.fs +++ b/src/FSharpLint.Core/Rules/Typography/TrailingWhitespaceOnLine.fs @@ -4,7 +4,7 @@ open System open FSharpLint.Framework open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Rules -open FSharp.Compiler.Range +open FSharp.Compiler.Text [] type Config = @@ -46,7 +46,7 @@ let checkTrailingWhitespaceOnLine (config:Config) (args:LineRuleParams) = if stringEndsWithWhitespace then let whitespaceLength = lengthOfWhitespaceOnEnd line - let range = mkRange "" (mkPos lineNumber (line.Length - whitespaceLength)) (mkPos lineNumber line.Length) + let range = Range.mkRange "" (Pos.mkPos lineNumber (line.Length - whitespaceLength)) (Pos.mkPos lineNumber line.Length) { Range = range Message = Resources.GetString("RulesTypographyTrailingWhitespaceError") SuggestedFix = None diff --git a/src/FSharpLint.Core/paket.references b/src/FSharpLint.Core/paket.references index 1d9ab19b3..771759c48 100644 --- a/src/FSharpLint.Core/paket.references +++ b/src/FSharpLint.Core/paket.references @@ -1,8 +1,12 @@ FSharp.Compiler.Service FParsec -Dotnet.ProjInfo -Dotnet.ProjInfo.Workspace -Dotnet.ProjInfo.Workspace.FCS +Ionide.ProjInfo +Ionide.ProjInfo.ProjectSystem +Ionide.ProjInfo.FCS FSharp.Core Newtonsoft.Json -Microsoft.Build.Utilities.Core \ No newline at end of file +Microsoft.Build.Tasks.Core copy_local: false +Microsoft.Build.Framework copy_local: false +Microsoft.Build.Locator copy_local: false +Microsoft.Build.Utilities.Core copy_local: false +Microsoft.Build copy_local: false diff --git a/tests/FSharpLint.Benchmarks/Benchmark.fs b/tests/FSharpLint.Benchmarks/Benchmark.fs index 86bf2b808..c1ad13542 100644 --- a/tests/FSharpLint.Benchmarks/Benchmark.fs +++ b/tests/FSharpLint.Benchmarks/Benchmark.fs @@ -2,7 +2,6 @@ namespace FSharpLint.Benchmarks open System.IO open BenchmarkDotNet.Attributes -open FSharp.Compiler.AbstractIL.Internal.Library open FSharp.Compiler.SourceCodeServices open FSharp.Compiler.Text open FSharpLint.Application.Lint @@ -34,7 +33,7 @@ type Benchmark () = let (fileInfo, lines) = let text = File.ReadAllText sourceFile let tree = generateAst text sourceFile - ({ Ast = tree; Source = text; TypeCheckResults = None }, String.getLines text |> Array.toList) + ({ Ast = tree; Source = text; TypeCheckResults = None }, String.toLines text |> Array.toList) [] member this.LintParsedFile () = diff --git a/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs b/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs index 841f127a8..c33069904 100644 --- a/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs +++ b/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs @@ -111,7 +111,7 @@ type TestAst() = let array = astToArray tree - let actual = array |> Array.map (fun x -> x.Hashcode) + let actual = array |> Array.map (fun x -> x.Hashcode) |> Array.toList let expected = [ Utilities.hash2 SyntaxNode.ModuleOrNamespace 0 @@ -132,7 +132,7 @@ type TestAst() = Assert.AreEqual(expected, actual) - let expected = array |> Array.map (fun x -> (x.NumberOfChildren, x.ParentIndex)) + let expected = array |> Array.map (fun x -> (x.NumberOfChildren, x.ParentIndex)) |> Array.toList Assert.AreEqual([ (14, 0) (13, 0) (12, 1) @@ -157,7 +157,7 @@ type TestAst() = let array = astToArray tree - let actual = array |> Array.map (fun x -> x.Hashcode) + let actual = array |> Array.map (fun x -> x.Hashcode) |> List.ofArray let expected = [ Utilities.hash2 SyntaxNode.ModuleOrNamespace 0 @@ -170,7 +170,7 @@ type TestAst() = Assert.AreEqual(expected, actual) - let expected = array |> Array.map (fun x -> (x.NumberOfChildren, x.ParentIndex)) + let expected = array |> Array.map (fun x -> (x.NumberOfChildren, x.ParentIndex)) |> List.ofArray Assert.AreEqual([ (6, 0) (5, 0) (4, 1) diff --git a/tests/FSharpLint.Core.Tests/Framework/TestAst.fs b/tests/FSharpLint.Core.Tests/Framework/TestAst.fs index 9a38863fc..55a18296c 100644 --- a/tests/FSharpLint.Core.Tests/Framework/TestAst.fs +++ b/tests/FSharpLint.Core.Tests/Framework/TestAst.fs @@ -5,7 +5,7 @@ open NUnit.Framework open FSharpLint.Framework.Ast open FSharpLint.Framework.Configuration open FSharpLint.Framework.ParseFile -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharp.Compiler.SyntaxTree open FSharp.Compiler.SourceCodeServices diff --git a/tests/FSharpLint.Core.Tests/Framework/TestExpressionUtilities.fs b/tests/FSharpLint.Core.Tests/Framework/TestExpressionUtilities.fs index 7e3b973e3..cf648e736 100644 --- a/tests/FSharpLint.Core.Tests/Framework/TestExpressionUtilities.fs +++ b/tests/FSharpLint.Core.Tests/Framework/TestExpressionUtilities.fs @@ -1,7 +1,7 @@ module TestExpressionUtilities open NUnit.Framework -open FSharp.Compiler.Range +open FSharp.Compiler.Text open FSharpLint.Framework.ExpressionUtilities [] @@ -11,7 +11,7 @@ type TestExpressionUtilities() = let text = "123\n345\n678" let textOfRange (line1, col1) (line2, col2) = - tryFindTextOfRange (mkRange "" (mkPos line1 col1) (mkPos line2 col2)) text + tryFindTextOfRange (Range.mkRange "" (Pos.mkPos line1 col1) (Pos.mkPos line2 col2)) text Assert.AreEqual(Some "123", textOfRange (1, 0) (1, 3)) Assert.AreEqual(Some "345", textOfRange (2, 0) (2, 3)) diff --git a/tests/FSharpLint.Core.Tests/Rules/TestRuleBase.fs b/tests/FSharpLint.Core.Tests/Rules/TestRuleBase.fs index fd5a41415..ffca4126b 100644 --- a/tests/FSharpLint.Core.Tests/Rules/TestRuleBase.fs +++ b/tests/FSharpLint.Core.Tests/Rules/TestRuleBase.fs @@ -16,10 +16,8 @@ type TestRuleBase () = member __.PostSuggestion (suggestion:Suggestion.LintWarning) = if not suggestion.Details.TypeChecks.IsEmpty then let successfulTypeCheck = - suggestion.Details.TypeChecks - |> Async.Parallel - |> Async.RunSynchronously - |> Array.reduce (&&) + (true, suggestion.Details.TypeChecks) + ||> List.fold (fun acc check -> acc && check ()) if successfulTypeCheck then suggestions.Add(suggestion) diff --git a/tests/FSharpLint.FunctionalTest/TestApi.fs b/tests/FSharpLint.FunctionalTest/TestApi.fs index 7fa242f75..44652db6d 100644 --- a/tests/FSharpLint.FunctionalTest/TestApi.fs +++ b/tests/FSharpLint.FunctionalTest/TestApi.fs @@ -33,6 +33,9 @@ module TestApi = | Some(parseTree) -> parseTree | None -> failwith "Failed to parse file." + /// Must be called once per process. + let toolsPath = Ionide.ProjInfo.Init.init() + [] [] member __.``Performance of linting an existing file``() = @@ -64,7 +67,7 @@ module TestApi = let projectPath = basePath "tests" "FSharpLint.FunctionalTest.TestedProject" "FSharpLint.FunctionalTest.TestedProject.NetCore" let projectFile = projectPath "FSharpLint.FunctionalTest.TestedProject.NetCore.fsproj" - let result = lintProject OptionalLintParameters.Default projectFile + let result = lintProject OptionalLintParameters.Default projectFile toolsPath match result with | LintResult.Success warnings -> @@ -77,7 +80,7 @@ module TestApi = let projectPath = basePath "tests" "FSharpLint.FunctionalTest.TestedProject" "FSharpLint.FunctionalTest.TestedProject.NetCore" let projectFile = projectPath "FSharpLint.FunctionalTest.TestedProject.NetCore.fsproj" - let result = lintProject OptionalLintParameters.Default projectFile + let result = lintProject OptionalLintParameters.Default projectFile toolsPath match result with | LintResult.Success warnings -> @@ -86,13 +89,13 @@ module TestApi = Assert.True(false, string err) [] - member __.``Lint project with default config tries to load `fsharplint.json``() = + member __.``Lint project with default config tries to load fsharplint.json``() = let projectPath = basePath "tests" "FSharpLint.FunctionalTest.TestedProject" "FSharpLint.FunctionalTest.TestedProject.NetCore" let projectFile = projectPath "FSharpLint.FunctionalTest.TestedProject.NetCore.fsproj" let tempConfigFile = TestContext.CurrentContext.TestDirectory "fsharplint.json" File.WriteAllText (tempConfigFile, """{ "ignoreFiles": ["*"] }""") - let result = lintProject OptionalLintParameters.Default projectFile + let result = lintProject OptionalLintParameters.Default projectFile toolsPath File.Delete tempConfigFile match result with @@ -106,7 +109,7 @@ module TestApi = let projectPath = basePath "tests" "FSharpLint.FunctionalTest.TestedProject" let solutionFile = projectPath "FSharpLint.FunctionalTest.TestedProject.sln" - let result = lintSolution OptionalLintParameters.Default solutionFile + let result = lintSolution OptionalLintParameters.Default solutionFile toolsPath match result with | LintResult.Success warnings -> @@ -122,7 +125,7 @@ module TestApi = let relativePathToProjectFile = Path.GetRelativePath (Directory.GetCurrentDirectory(), projectFile) - let result = lintProject OptionalLintParameters.Default relativePathToProjectFile + let result = lintProject OptionalLintParameters.Default relativePathToProjectFile toolsPath match result with | LintResult.Success warnings -> @@ -138,7 +141,7 @@ module TestApi = let relativePathToSolutionFile = Path.GetRelativePath (Directory.GetCurrentDirectory(), solutionFile) - let result = lintSolution OptionalLintParameters.Default relativePathToSolutionFile + let result = lintSolution OptionalLintParameters.Default relativePathToSolutionFile toolsPath match result with | LintResult.Success warnings -> diff --git a/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs b/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs index b50a021a2..fd7e1cba3 100644 --- a/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs +++ b/tests/FSharpLint.FunctionalTest/TestConsoleApplication.fs @@ -107,7 +107,8 @@ module Tests = Assert.AreEqual(expectedErrors, errors, "Did not find the following expected errors: [" + String.concat "," expectedMissing + "]\n" + - "Found the following unexpected warnings: [" + String.concat "," notExpected + "]") + "Found the following unexpected warnings: [" + String.concat "," notExpected + "]\n" + + "Complete output: " + output) [] member __.FunctionalTestConsoleApplicationSolution() = @@ -122,4 +123,5 @@ module Tests = Assert.AreEqual(expectedErrors, errors, "Did not find the following expected errors: [" + String.concat "," expectedMissing + "]\n" + - "Found the following unexpected warnings: [" + String.concat "," notExpected + "]") + "Found the following unexpected warnings: [" + String.concat "," notExpected + "]\n" + + "Complete output: " + output) diff --git a/tests/FSharpLint.FunctionalTest/paket.references b/tests/FSharpLint.FunctionalTest/paket.references index b7dc60e22..58a3defbe 100644 --- a/tests/FSharpLint.FunctionalTest/paket.references +++ b/tests/FSharpLint.FunctionalTest/paket.references @@ -1,4 +1,5 @@ nunit NUnit3TestAdapter +Microsoft.NET.Test.Sdk +FSharp.Compiler.Service FSharp.Core -Microsoft.NET.Test.Sdk \ No newline at end of file diff --git a/tests/TypeChecker.fs b/tests/TypeChecker.fs index 2f8ac0776..745d08409 100644 --- a/tests/TypeChecker.fs +++ b/tests/TypeChecker.fs @@ -841,7 +841,7 @@ let TcConst cenv ty m env c = | SynConst.Bytes _ -> error(InternalError(FSComp.SR.tcUnexpectedConstByteArray(),m)) /// Convert an Abstract IL ILFieldInit value read from .NET metadata to a TAST constant -let TcFieldInit (_m:range) lit = +let TcFieldInit (_m:Range) lit = match lit with | ILFieldInit.String s -> Const.String s | ILFieldInit.Null -> Const.Zero @@ -1280,7 +1280,7 @@ let ComputeAccessAndCompPath env declKindOpt m vis actualParent = let cpath = (if accessModPermitted then Some cpath else None) vis,cpath -let CheckForAbnormalOperatorNames cenv (idRange:range) opName isMember = +let CheckForAbnormalOperatorNames cenv (idRange:Range) opName isMember = if (idRange.EndColumn - idRange.StartColumn <= 5) && not cenv.g.compilingFslib then @@ -6339,7 +6339,7 @@ and TcConstExpr cenv overallTy env m tpenv c = //------------------------------------------------------------------------- // Check an 'assert(x)' expression. -and TcAssertExpr cenv overallTy env (m:range) tpenv x = +and TcAssertExpr cenv overallTy env (m:Range) tpenv x = let synm = m.MakeSynthetic() // Mark as synthetic so the language service won't pick it up. let callDiagnosticsExpr = SynExpr.App(ExprAtomicFlag.Atomic, false, mkSynLidGet synm ["System";"Diagnostics";"Debug"] "Assert", // wrap an extra parentheses so 'assert(x=1) isn't considered a named argument to a method call @@ -6579,7 +6579,7 @@ and TcComputationExpression cenv env overallTy mWhole interpExpr builderTy tpenv | _ -> false /// Make a builder.Method(...) call - let mkSynCall nm (m:range) args = + let mkSynCall nm (m:Range) args = let m = m.MakeSynthetic() // Mark as synthetic so the language service won't pick it up. let args = match args with @@ -15153,7 +15153,7 @@ and TcModuleOrNamespaceSignature cenv env (id:Ident,isModule,defs,xml,attribs,vi return (mspec, envAtEnd) } -and TcModuleOrNamespaceSignatureElements cenv parent env (id,modKind,defs,m:range,xml) = +and TcModuleOrNamespaceSignatureElements cenv parent env (id,modKind,defs,m:Range,xml) = eventually { let endm = m.EndRange // use end of range for errors @@ -15387,7 +15387,7 @@ and TcModuleOrNamespaceElements cenv parent endm env xml defs = return (mexpr, topAttrsNew, env, envAtEnd) } -and TcModuleOrNamespace cenv env (id,isModule,defs,xml,modAttrs,vis,m:range) = +and TcModuleOrNamespace cenv env (id,isModule,defs,xml,modAttrs,vis,m:Range) = eventually { let endm = m.EndRange let modKind = ComputeModuleOrNamespaceKind cenv.g isModule modAttrs