From 81b3280f8466e81548270d932d18dc33faad9479 Mon Sep 17 00:00:00 2001 From: webwarrior Date: Wed, 6 Dec 2023 15:10:19 +0100 Subject: [PATCH 1/7] Paket,Core,Tests: upgrade FCS to 41.0.1 Upgraded FSharp.Compiler.Service to 41.0.1. Made changes to framework, rules and test framework code necessary to accomodate changes in FCS version 41 as compared to version 40. FSharp.Compiler.Service 41.0.1 requires FSharp.Core 6. Also had to pin Microsoft.Build version to 16.11.0 because of build error. Fake uses 5.x uses FSharp.Core 5, so have to pin it in Build group. Had to pin Ionide.ProjInfo.* to version 0.53.0 (using == operator, which tells to use specific version instead of ~> wihch allows the last part stated explicitly to increase) to avoid the following error: ``` error NU1202: Package Ionide.ProjInfo 0.62.0 is not compatible with net5.0 (.NETCoreApp,Version=v5.0) ``` Updated paket.lock file using `dotnet paket update` command. And then when executing `dotnet fake build` have errors like this: ``` C:\Users\PC\.nuget\packages\system.threading.tasks.dataflow\8.0.0\buildTransitive\netcoreapp2.0\System.Threading.Tasks.Dataflow.targets(4,5): error : System.Threading.Tasks.Dataflow 8.0.0 doesn't support net5.0 and has not been tested with it. Consider upgrading your TargetFramework to net6.0 or later. You may also set true in the project file to ignore this warning and attempt to run in this unsupported configuration at your own risk. [D:\Projects\work\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj] ``` wip --- paket.dependencies | 17 +- paket.lock | 1466 ++++++++--------- .../Framework/AbstractSyntaxArray.fs | 2 +- src/FSharpLint.Core/Framework/Ast.fs | 92 +- src/FSharpLint.Core/Framework/Utilities.fs | 12 +- .../AsyncExceptionWithoutReturn.fs | 20 +- .../Conventions/AvoidSinglePipeOperator.fs | 4 +- .../Rules/Conventions/AvoidTooShortNames.fs | 20 +- .../Conventions/Binding/BindingHelper.fs | 2 +- .../Binding/FavourIgnoreOverLetWild.fs | 2 +- .../Conventions/Binding/TupleOfWildcards.fs | 4 +- .../Conventions/Binding/UselessBinding.fs | 4 +- .../Binding/WildcardNamedWithAsPattern.fs | 4 +- .../Rules/Conventions/CyclomaticComplexity.fs | 16 +- .../Rules/Conventions/FavourConsistentThis.fs | 4 +- .../Rules/Conventions/FavourReRaise.fs | 8 +- .../ReimplementsFunction.fs | 6 +- .../Conventions/Naming/ActivePatternNames.fs | 8 +- .../Conventions/Naming/EnumCasesNames.fs | 2 +- .../Conventions/Naming/ExceptionNames.fs | 2 +- .../Conventions/Naming/GenericTypesNames.fs | 8 +- .../Conventions/Naming/InterfaceNames.fs | 4 +- .../Conventions/Naming/InternalValuesNames.fs | 6 +- .../Rules/Conventions/Naming/LiteralNames.fs | 4 +- .../Conventions/Naming/MeasureTypeNames.fs | 4 +- .../Rules/Conventions/Naming/MemberNames.fs | 6 +- .../Rules/Conventions/Naming/ModuleNames.fs | 2 +- .../Conventions/Naming/NamespaceNames.fs | 2 +- .../Rules/Conventions/Naming/NamingHelper.fs | 34 +- .../Conventions/Naming/NestedFunctionNames.fs | 2 +- .../Conventions/Naming/ParameterNames.fs | 8 +- .../Conventions/Naming/PrivateValuesNames.fs | 16 +- .../Conventions/Naming/PublicValuesNames.fs | 8 +- .../Rules/Conventions/Naming/TypeNames.fs | 4 +- .../Conventions/Naming/UnionCasesNames.fs | 2 +- .../Naming/UnnestedFunctionNames.fs | 2 +- .../Rules/Conventions/NestedStatements.fs | 2 +- .../MaxNumberOfBooleanOperatorsInCondition.fs | 4 +- .../NumberOfItems/MaxNumberOfMembers.fs | 8 +- .../FailwithBadUsage.fs | 8 +- .../RaiseWithTooManyArgumentsHelper.fs | 3 +- .../Conventions/RecursiveAsyncFunction.fs | 4 +- .../Rules/Conventions/RedundantNewKeyword.fs | 4 +- .../SourceLength/MaxLinesInClass.fs | 2 +- .../SourceLength/MaxLinesInConstructor.fs | 2 +- .../SourceLength/MaxLinesInEnum.fs | 2 +- .../SourceLength/MaxLinesInFunction.fs | 2 +- .../SourceLength/MaxLinesInLambdaFunction.fs | 2 +- .../SourceLength/MaxLinesInMember.fs | 2 +- .../SourceLength/MaxLinesInModule.fs | 2 +- .../SourceLength/MaxLinesInProperty.fs | 2 +- .../SourceLength/MaxLinesInRecord.fs | 2 +- .../SourceLength/MaxLinesInUnion.fs | 2 +- .../SourceLength/MaxLinesInValue.fs | 2 +- .../Conventions/SuggestUseAutoProperty.fs | 11 +- .../PatternMatchExpressionIndentation.fs | 2 +- .../PatternMatchFormattingHelper.fs | 4 +- .../PatternMatchOrClausesOnNewLine.fs | 2 +- .../Formatting/Spacing/ClassMemberSpacing.fs | 2 +- .../Formatting/Spacing/ModuleDeclSpacing.fs | 2 +- .../TupleFormatting/TupleFormattingHelper.fs | 4 +- .../Formatting/UnionDefinitionIndentation.fs | 4 +- .../Rules/Hints/HintMatcher.fs | 30 +- .../Rules/Typography/Indentation.fs | 39 +- .../Framework/TestAbstractSyntaxArray.fs | 4 +- 65 files changed, 925 insertions(+), 1041 deletions(-) diff --git a/paket.dependencies b/paket.dependencies index af1e0bec0..9d913dbbc 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -7,10 +7,12 @@ nuget Argu nuget BenchmarkDotNet nuget BenchmarkDotNet.Diagnostics.Windows nuget FParsec -nuget FSharp.Compiler.Service ~> 40.0 -nuget Ionide.ProjInfo.ProjectSystem ~> 0.53.0 -nuget Ionide.ProjInfo.FCS ~> 0.53.0 -nuget FSharp.Core +nuget FSharp.Compiler.Service ~> 41.0.1 +nuget Ionide.ProjInfo.ProjectSystem == 0.53.0 +nuget Ionide.ProjInfo.FCS == 0.53.0 +nuget Ionide.ProjInfo == 0.53.0 +nuget Ionide.ProjInfo.Sln == 0.53.0 +nuget FSharp.Core ~> 6.0 nuget nunit nuget NUnit3TestAdapter nuget Microsoft.NET.Test.Sdk 17.7.2 @@ -20,10 +22,10 @@ nuget Microsoft.Build.Locator # don't expose as a package reference nuget Microsoft.SourceLink.GitHub copy_local: true # don't copy runtime assets -nuget Microsoft.Build.Framework copy_local: false +nuget Microsoft.Build.Framework == 16.11.0 copy_local: false nuget Microsoft.Build.Tasks.Core copy_local: false -nuget Microsoft.Build.Utilities.Core copy_local: false -nuget Microsoft.Build copy_local: false +nuget Microsoft.Build.Utilities.Core == 16.11.0 copy_local: false +nuget Microsoft.Build == 16.11.0 copy_local: false group Docs source https://api.nuget.org/v3/index.json @@ -43,6 +45,7 @@ group Build storage: none strategy: min + nuget FSharp.Core ~> 5.0 nuget Fake.Core.Target nuget Fake.Core.Process nuget Fake.DotNet.Cli diff --git a/paket.lock b/paket.lock index fbc005b4a..aa652f300 100644 --- a/paket.lock +++ b/paket.lock @@ -2,37 +2,37 @@ STORAGE: NONE RESTRICTION: || (== net6.0) (== netstandard2.0) NUGET remote: https://api.nuget.org/v3/index.json - Argu (6.1.1) + Argu (6.1.4) FSharp.Core (>= 4.3.2) System.Configuration.ConfigurationManager (>= 4.4) - BenchmarkDotNet (0.13) - BenchmarkDotNet.Annotations (>= 0.13) - CommandLineParser (>= 2.4.3) - Iced (>= 1.8) - Microsoft.CodeAnalysis.CSharp (>= 2.10) - Microsoft.Diagnostics.NETCore.Client (>= 0.2.61701) - 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) - System.Management (>= 4.5) - System.Reflection.Emit (>= 4.3) - System.Reflection.Emit.Lightweight (>= 4.3) - System.Threading.Tasks.Extensions (>= 4.5.2) - System.ValueTuple (>= 4.5) - BenchmarkDotNet.Annotations (0.13) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - BenchmarkDotNet.Diagnostics.Windows (0.13) - BenchmarkDotNet (>= 0.13) - Microsoft.Diagnostics.Tracing.TraceEvent (>= 2.0.61) - CommandLineParser (2.8) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + BenchmarkDotNet (0.13.11) + BenchmarkDotNet.Annotations (>= 0.13.11) + CommandLineParser (>= 2.9.1) + Gee.External.Capstone (>= 2.3) + Iced (>= 1.17) + Microsoft.CodeAnalysis.CSharp (>= 4.1) + Microsoft.Diagnostics.Runtime (>= 2.2.332302) + Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.0.2) + Microsoft.DotNet.PlatformAbstractions (>= 3.1.6) + Microsoft.Win32.Registry (>= 5.0) - restriction: == netstandard2.0 + Perfolizer (0.2.1) + System.Management (>= 5.0) + System.Numerics.Vectors (>= 4.5) - restriction: == netstandard2.0 + System.Reflection.Emit (>= 4.7) - restriction: == netstandard2.0 + System.Reflection.Emit.Lightweight (>= 4.7) - restriction: == netstandard2.0 + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: == netstandard2.0 + BenchmarkDotNet.Annotations (0.13.11) + BenchmarkDotNet.Diagnostics.Windows (0.13.11) + BenchmarkDotNet (>= 0.13.11) + Microsoft.Diagnostics.Tracing.TraceEvent (>= 3.0.2) + CommandLineParser (2.9.1) FParsec (1.1.1) FSharp.Core (>= 4.3.4) - FSharp.Compiler.Service (40.0) - FSharp.Core (5.0.2) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Build.Tasks.Core (>= 16.9) - Microsoft.Build.Utilities.Core (>= 16.9) + FSharp.Compiler.Service (41.0.7) + FSharp.Core (6.0.7) + Microsoft.Build.Framework (>= 17.0) + Microsoft.Build.Tasks.Core (>= 17.0) + Microsoft.Build.Utilities.Core (>= 17.0) System.Buffers (>= 4.5.1) System.Collections.Immutable (>= 5.0) System.Diagnostics.Process (>= 4.3) @@ -41,11 +41,12 @@ NUGET System.Linq.Queryable (>= 4.3) System.Memory (>= 4.5.4) System.Net.Requests (>= 4.3) - System.Net.Security (>= 4.3) + System.Net.Security (>= 4.3.1) System.Reflection.Emit (>= 4.3) System.Reflection.Metadata (>= 5.0) System.Reflection.TypeExtensions (>= 4.3) System.Runtime (>= 4.3) + System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Runtime.InteropServices (>= 4.3) System.Runtime.Loader (>= 4.3) System.Security.Claims (>= 4.3) @@ -54,27 +55,38 @@ NUGET System.Threading.Tasks.Parallel (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - FSharp.Control.Reactive (5.0.2) - restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net5.0)) - FSharp.Core (5.0.2) - Iced (1.12) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Ionide.ProjInfo (0.53.1) - restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.FCS (0.53.1) + FSharp.Control.Reactive (5.0.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + FSharp.Core (>= 4.7.2) + System.Reactive (>= 5.0 < 6.0) + FSharp.Core (6.0.7) + Gee.External.Capstone (2.3) + Iced (1.20) + Ionide.ProjInfo (0.53) + FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.Sln (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Build (>= 16.10) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Build.Framework (>= 16.10) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.Build.Locator (>= 1.4.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.FCS (0.53) FSharp.Compiler.Service (>= 40.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo (>= 0.53.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.ProjectSystem (0.53.1) + Ionide.ProjInfo (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.ProjectSystem (0.53) FSharp.Compiler.Service (>= 40.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) FSharp.Control.Reactive (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo (>= 0.53.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.FCS (>= 0.53.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.Sln (>= 0.53.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.FCS (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.Sln (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.Sln (0.53.1) - restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.Bcl.AsyncInterfaces (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (== netstandard2.0) - Microsoft.Build (16.10) - copy_local: false - Microsoft.Build.Framework (>= 16.10) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + Ionide.ProjInfo.Sln (0.53) + Microsoft.Bcl.AsyncInterfaces (8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Build (16.11) - copy_local: false + Microsoft.Build.Framework (>= 16.11) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) Microsoft.NET.StringTools (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) Microsoft.Win32.Registry (>= 4.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) System.Collections.Immutable (>= 5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) @@ -84,130 +96,134 @@ NUGET System.Text.Encoding.CodePages (>= 4.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) System.Text.Json (>= 4.7) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) System.Threading.Tasks.Dataflow (>= 4.9) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.Build.Framework (16.10) - copy_local: false - System.Security.Permissions (>= 4.7) - Microsoft.Build.Locator (1.4.1) - 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.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) + Microsoft.Build.Framework (16.11) - copy_local: false System.Security.Permissions (>= 4.7) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Tasks.Git (1.0) - copy_local: true, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Build.Utilities.Core (16.10) - copy_local: false - Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Locator (1.6.10) + Microsoft.Build.Tasks.Core (17.8.3) - copy_local: false + Microsoft.Build.Framework (>= 17.8.3) + Microsoft.Build.Utilities.Core (>= 17.8.3) + Microsoft.NET.StringTools (>= 17.8.3) + Microsoft.Win32.Registry (>= 5.0) + System.CodeDom (>= 7.0) + System.Collections.Immutable (>= 7.0) + System.Configuration.ConfigurationManager (>= 7.0) + System.Memory (>= 4.5.5) + System.Reflection.Metadata (>= 7.0) + System.Resources.Extensions (>= 7.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Security.Cryptography.Pkcs (>= 7.0.2) + System.Security.Cryptography.Xml (>= 7.0.1) + System.Security.Principal.Windows (>= 5.0) + System.Text.Encoding.CodePages (>= 7.0) + System.Threading.Tasks.Dataflow (>= 7.0) + Microsoft.Build.Tasks.Git (8.0) - copy_local: true + Microsoft.Build.Utilities.Core (16.11) - copy_local: false + Microsoft.Build.Framework (>= 16.11) Microsoft.NET.StringTools (>= 1.0) Microsoft.Win32.Registry (>= 4.3) System.Collections.Immutable (>= 5.0) System.Configuration.ConfigurationManager (>= 4.7) System.Security.Permissions (>= 4.7) System.Text.Encoding.CodePages (>= 4.0.1) - Microsoft.CodeAnalysis.Analyzers (3.3.2) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.CodeAnalysis.Common (3.10) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.CodeAnalysis.Analyzers (>= 3.3.2) - System.Collections.Immutable (>= 5.0) - System.Memory (>= 4.5.4) - System.Reflection.Metadata (>= 5.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - System.Text.Encoding.CodePages (>= 4.5.1) - System.Threading.Tasks.Extensions (>= 4.5.4) - Microsoft.CodeAnalysis.CSharp (3.10) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.CodeAnalysis.Common (3.10) + Microsoft.CodeAnalysis.Analyzers (3.3.4) + Microsoft.CodeAnalysis.Common (4.8) + Microsoft.CodeAnalysis.Analyzers (>= 3.3.4) + System.Collections.Immutable (>= 7.0) + System.Memory (>= 4.5.5) - restriction: == netstandard2.0 + System.Reflection.Metadata (>= 7.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encoding.CodePages (>= 7.0) - restriction: == netstandard2.0 + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: == netstandard2.0 + Microsoft.CodeAnalysis.CSharp (4.8) + Microsoft.CodeAnalysis.Common (4.8) Microsoft.CodeCoverage (17.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.Diagnostics.NETCore.Client (0.2.227602) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Bcl.AsyncInterfaces (>= 1.1) - Microsoft.Extensions.Logging (>= 2.1.1) - Microsoft.Diagnostics.Runtime (2.0.226801) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (>= 4.5.2) - Microsoft.DotNet.PlatformAbstractions (3.1.6) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Extensions.DependencyInjection (5.0.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Bcl.AsyncInterfaces (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0) - System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (== netstandard2.0) - Microsoft.Extensions.DependencyInjection.Abstractions (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Extensions.Logging (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.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: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< net5.0)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) - Microsoft.Extensions.Logging.Abstractions (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Extensions.Options (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.Extensions.DependencyInjection.Abstractions (>= 5.0) - Microsoft.Extensions.Primitives (>= 5.0) - Microsoft.Extensions.Primitives (5.0.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard2.0)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard2.0) (>= xamarintvos)) (&& (== net6.0) (< netstandard2.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard2.0)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< net5.0)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netcoreapp3.0)) (&& (== net6.0) (< netstandard2.0) (>= xamarintvos)) (&& (== net6.0) (< netstandard2.0) (>= xamarinwatchos)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - Microsoft.NET.StringTools (1.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Memory (>= 4.5.4) + Microsoft.Diagnostics.NETCore.Client (0.2.452401) + Microsoft.Bcl.AsyncInterfaces (>= 6.0) - restriction: == netstandard2.0 + Microsoft.Extensions.Logging (>= 6.0) + System.Buffers (>= 4.5.1) - restriction: == netstandard2.0 + Microsoft.Diagnostics.Runtime (3.1.456101) + Microsoft.Diagnostics.NETCore.Client (>= 0.2.410101) + System.Collections.Immutable (>= 6.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + Microsoft.Diagnostics.Tracing.TraceEvent (3.1.7) + Microsoft.Win32.Registry (>= 4.4) System.Runtime.CompilerServices.Unsafe (>= 5.0) + Microsoft.DotNet.PlatformAbstractions (3.1.6) + Microsoft.Extensions.DependencyInjection (8.0) + Microsoft.Bcl.AsyncInterfaces (>= 8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.DependencyInjection.Abstractions (8.0) + Microsoft.Bcl.AsyncInterfaces (>= 8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.Logging (8.0) + Microsoft.Bcl.AsyncInterfaces (>= 8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.DependencyInjection (>= 8.0) + Microsoft.Extensions.Logging.Abstractions (>= 8.0) + Microsoft.Extensions.Options (>= 8.0) + System.Diagnostics.DiagnosticSource (>= 8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.Logging.Abstractions (8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + Microsoft.Extensions.Options (8.0) + Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0) + Microsoft.Extensions.Primitives (>= 8.0) + System.ComponentModel.Annotations (>= 5.0) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + Microsoft.Extensions.Primitives (8.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + Microsoft.NET.StringTools (17.8.3) - copy_local: false + System.Memory (>= 4.5.5) + System.Runtime.CompilerServices.Unsafe (>= 6.0) Microsoft.NET.Test.Sdk (17.7.2) Microsoft.CodeCoverage (>= 17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net462)) (&& (== netstandard2.0) (>= netcoreapp3.1)) Microsoft.TestPlatform.TestHost (>= 17.7.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.NETCore.Platforms (5.0.2) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.NETCore.Targets (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.SourceLink.Common (1.0) - copy_local: true, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.SourceLink.GitHub (1.0) - copy_local: true - Microsoft.Build.Tasks.Git (>= 1.0) - Microsoft.SourceLink.Common (>= 1.0) + Microsoft.NETCore.Platforms (7.0.4) + Microsoft.NETCore.Targets (5.0) + Microsoft.SourceLink.Common (8.0) - copy_local: true + Microsoft.SourceLink.GitHub (8.0) - copy_local: true + Microsoft.Build.Tasks.Git (>= 8.0) + Microsoft.SourceLink.Common (>= 8.0) Microsoft.TestPlatform.ObjectModel (17.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) NuGet.Frameworks (>= 6.5) System.Reflection.Metadata (>= 1.6) Microsoft.TestPlatform.TestHost (17.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) Microsoft.TestPlatform.ObjectModel (>= 17.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - Microsoft.Win32.Primitives (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + Microsoft.Win32.Registry (5.0) System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard1.3)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.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) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) - NETStandard.Library (2.0.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - Microsoft.NETCore.Platforms (>= 1.1) - Newtonsoft.Json (13.0.1) + Newtonsoft.Json (13.0.3) NuGet.Frameworks (6.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - NUnit (3.13.2) - NETStandard.Library (>= 2.0) - NUnit3TestAdapter (4.0) - Perfolizer (0.2.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + NUnit (4.0.1) + NUnit3TestAdapter (4.5) + Perfolizer (0.2.1) System.Memory (>= 4.5.3) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.fedora.27-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.fedora.28-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.native.System (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.debian.9-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + 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) - runtime.native.System.Net.Http (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) @@ -223,23 +239,23 @@ NUGET runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.3) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.opensuse.42.3-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Buffers (4.5.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.CodeDom (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Collections (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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 (8.0) - copy_local: false + System.Collections (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Collections.Concurrent (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Collections.Concurrent (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Diagnostics.Tracing (>= 4.3) @@ -250,19 +266,20 @@ NUGET System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Collections.Immutable (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Collections.Immutable (8.0) - copy_local: false + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.ComponentModel.Annotations (5.0) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Configuration.ConfigurationManager (8.0) - copy_local: false + System.Security.Cryptography.ProtectedData (>= 8.0) + System.Diagnostics.Debug (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Diagnostics.DiagnosticSource (5.0.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net45) (< netstandard1.3)) (&& (== net6.0) (>= net46)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard1.1)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net45) (< netstandard1.3)) (&& (== net6.0) (>= net46)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netcoreapp3.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Diagnostics.Process (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Diagnostics.DiagnosticSource (8.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Diagnostics.Process (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.Win32.Primitives (>= 4.3) Microsoft.Win32.Registry (>= 4.3) @@ -284,7 +301,7 @@ NUGET System.Threading.Tasks (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - System.Diagnostics.TraceSource (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Diagnostics.TraceSource (4.3) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System (>= 4.3) System.Collections (>= 4.3) @@ -294,37 +311,36 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) - System.Diagnostics.Tracing (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Diagnostics.Tracing (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Drawing.Common (5.0.2) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) - System.Formats.Asn1 (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monoandroid) (< netstandard2.0)) (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Globalization (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Formats.Asn1 (8.0) - copy_local: false + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) (== net6.0)) (== netstandard2.0) + 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) (== net6.0)) (== netstandard2.0) + System.IO.FileSystem (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.IO (>= 4.3) @@ -333,15 +349,15 @@ 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) (== net6.0)) (== netstandard2.0) + System.IO.FileSystem.Primitives (4.3) System.Runtime (>= 4.3) - System.Linq (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Linq (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Linq.Expressions (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Linq.Expressions (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) @@ -359,7 +375,7 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) - System.Linq.Queryable (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Linq.Queryable (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Linq (>= 4.3) @@ -368,13 +384,13 @@ NUGET System.Reflection.Extensions (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) - System.Management (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.CodeDom (>= 5.0) - System.Memory (4.5.4) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Management (8.0) + System.CodeDom (>= 8.0) + System.Memory (4.5.5) - copy_local: false System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) System.Numerics.Vectors (>= 4.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= monotouch)) (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (&& (== net6.0) (>= xamarinios)) (&& (== net6.0) (>= xamarinmac)) (&& (== net6.0) (>= xamarintvos)) (&& (== net6.0) (>= xamarinwatchos)) (== netstandard2.0) - System.Net.Http (4.3.4) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Net.Http (4.3.4) Microsoft.NETCore.Platforms (>= 1.1.1) runtime.native.System (>= 4.3) runtime.native.System.Net.Http (>= 4.3) @@ -401,12 +417,12 @@ NUGET System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Net.Primitives (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Net.Requests (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) @@ -420,7 +436,7 @@ NUGET System.Runtime (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Net.Security (4.3.2) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Net.Security (4.3.2) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.Win32.Primitives (>= 4.3) runtime.native.System (>= 4.3) @@ -449,81 +465,82 @@ NUGET System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) System.Threading.ThreadPool (>= 4.3) - System.Net.WebHeaderCollection (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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) (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) - System.ObjectModel (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Numerics.Vectors (4.5) - restriction: == 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.Reactive (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net5.0)) - System.Reflection (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Reactive (5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + 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) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Reflection.Emit (4.7) System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Emit.ILGeneration (4.7) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Reflection.Emit.Lightweight (4.7) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Reflection.Emit.ILGeneration (4.7) + System.Reflection.Emit.Lightweight (4.7) System.Reflection.Emit.ILGeneration (>= 4.7) - restriction: || (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (< portable-net45+wp8)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Reflection.Extensions (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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 (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Collections.Immutable (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< net5.0)) (&& (== net6.0) (< netstandard1.1)) (&& (== net6.0) (< netstandard2.0)) (== netstandard2.0) - System.Reflection.Primitives (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Reflection.Metadata (8.0) - copy_local: false + System.Collections.Immutable (>= 8.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== 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) (== net6.0)) (== netstandard2.0) - System.Resources.Extensions (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Resources.ResourceManager (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Reflection.TypeExtensions (4.7) + System.Resources.Extensions (8.0) - copy_local: false + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== 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) (== net6.0)) (== netstandard2.0) + System.Runtime (4.3.1) Microsoft.NETCore.Platforms (>= 1.1.1) Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Runtime.Extensions (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (6.0) + 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) (== net6.0)) (== netstandard2.0) + 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) (== net6.0)) (== netstandard2.0) + 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.Loader (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Runtime.Loader (4.3) System.IO (>= 4.3) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Runtime.Numerics (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Runtime.Numerics (4.3) System.Globalization (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Security.AccessControl (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Security.Principal.Windows (>= 5.0) - System.Security.Claims (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.AccessControl (6.0) - copy_local: false, restriction: == netstandard2.0 + System.Security.Principal.Windows (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (== netstandard2.0) + System.Security.Claims (4.3) System.Collections (>= 4.3) System.Globalization (>= 4.3) System.IO (>= 4.3) @@ -531,7 +548,7 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Security.Principal (>= 4.3) - System.Security.Cryptography.Algorithms (4.3.1) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.Algorithms (4.3.1) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System.Security.Cryptography.Apple (>= 4.3.1) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) @@ -546,8 +563,8 @@ NUGET System.Security.Cryptography.Encoding (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Security.Cryptography.Cng (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Security.Cryptography.Csp (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.Cng (5.0) - copy_local: false + System.Security.Cryptography.Csp (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.IO (>= 4.3) System.Reflection (>= 4.3) @@ -561,7 +578,7 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Security.Cryptography.Encoding (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.Encoding (4.3) Microsoft.NETCore.Platforms (>= 1.1) runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) System.Collections (>= 4.3) @@ -574,13 +591,14 @@ NUGET System.Runtime.InteropServices (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Security.Cryptography.OpenSsl (5.0) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Security.Cryptography.Pkcs (5.0.1) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (== netstandard2.0) - System.Formats.Asn1 (>= 5.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0) (< netstandard2.1)) (&& (== net6.0) (< netcoreapp2.1) (< netstandard2.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Primitives (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.OpenSsl (5.0) + System.Formats.Asn1 (>= 5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Security.Cryptography.Pkcs (8.0) - copy_local: false + System.Buffers (>= 4.5.1) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Formats.Asn1 (>= 8.0) + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Security.Cryptography.Cng (>= 5.0) - restriction: || (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) + System.Security.Cryptography.Primitives (4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) System.IO (>= 4.3) @@ -588,8 +606,9 @@ NUGET System.Runtime (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Security.Cryptography.ProtectedData (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) - System.Security.Cryptography.X509Certificates (4.3.2) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.ProtectedData (8.0) - copy_local: false + System.Memory (>= 4.5.5) - restriction: == netstandard2.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) @@ -615,38 +634,44 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - System.Security.Cryptography.Xml (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.1)) (== netstandard2.0) - System.Security.Cryptography.Pkcs (>= 5.0) - System.Security.Permissions (>= 5.0) - System.Security.Permissions (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Security.AccessControl (>= 5.0) - System.Security.Principal (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Security.Cryptography.Xml (8.0) - copy_local: false + System.Memory (>= 4.5.5) - restriction: == netstandard2.0 + System.Security.AccessControl (>= 6.0) - restriction: == netstandard2.0 + System.Security.Cryptography.Pkcs (>= 8.0) + System.Security.Permissions (8.0) - copy_local: false + System.Security.AccessControl (>= 6.0) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Windows.Extensions (>= 8.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + System.Security.Principal (4.3) System.Runtime (>= 4.3) - System.Security.Principal.Windows (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Text.Encoding (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Runtime.CompilerServices.Unsafe (>= 5.0) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< net5.0)) (&& (== net6.0) (< netcoreapp2.0)) (== netstandard2.0) - System.Text.Encoding.Extensions (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Text.Encoding.CodePages (8.0) - copy_local: false + System.Memory (>= 4.5.5) - restriction: || (&& (== net6.0) (>= net462)) (== netstandard2.0) + System.Runtime.CompilerServices.Unsafe (>= 6.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) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) - System.Threading (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Text.Encodings.Web (8.0) - copy_local: false, restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Json (8.0) - copy_local: false, restriction: || (== net6.0) (&& (== netstandard2.0) (>= net472)) (&& (== netstandard2.0) (>= net5.0)) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Text.Encodings.Web (>= 8.0) + System.Threading (4.3) System.Runtime (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Threading.Tasks (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + 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, restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Threading.Tasks.Dataflow (8.0) - copy_local: false + System.Threading.Tasks.Extensions (4.5.4) - restriction: == netstandard2.0 System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (== netstandard2.0) - System.Threading.Tasks.Parallel (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Threading.Tasks.Parallel (4.3) System.Collections.Concurrent (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Diagnostics.Tracing (>= 4.3) @@ -655,13 +680,12 @@ NUGET System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Threading.Thread (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Threading.Thread (4.3) System.Runtime (>= 4.3) - System.Threading.ThreadPool (4.3) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) + System.Threading.ThreadPool (4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.ValueTuple (4.5) - restriction: || (&& (== net5.0) (== net6.0)) (== netstandard2.0) - System.Windows.Extensions (5.0) - copy_local: false, restriction: || (&& (== net5.0) (== net6.0)) (&& (== net5.0) (== netstandard2.0)) (&& (== net6.0) (== netstandard2.0)) (&& (== netstandard2.0) (>= netcoreapp3.0)) + System.Windows.Extensions (8.0) - copy_local: false, restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) GROUP Build STORAGE: NONE @@ -672,484 +696,276 @@ NUGET BlackFox.VsWhere (1.1) FSharp.Core (>= 4.2.3) Microsoft.Win32.Registry (>= 4.7) - Fake.Api.GitHub (6.0) - FSharp.Core (>= 6.0.3) - Octokit (>= 0.50) - Fake.Core.CommandLineParsing (6.0) + 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 (>= 6.0.3) - Fake.Core.Context (6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.Environment (6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.FakeVar (6.0) - Fake.Core.Context (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.Process (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.FakeVar (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) - System.Collections.Immutable (>= 6.0) - Fake.Core.ReleaseNotes (6.0) - Fake.Core.SemVer (>= 6.0) - Fake.Core.String (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.SemVer (6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.String (6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.Target (6.0) - Fake.Core.CommandLineParsing (>= 6.0) - Fake.Core.Context (>= 6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.FakeVar (>= 6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - FSharp.Control.Reactive (>= 5.0.2) - FSharp.Core (>= 6.0.3) - Fake.Core.Tasks (6.0) - Fake.Core.Trace (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.Trace (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.FakeVar (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.UserInput (6.0) - FSharp.Core (>= 6.0.3) - Fake.Core.Xml (6.0) - Fake.Core.String (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.DotNet.AssemblyInfoFile (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.DotNet.Cli (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.DotNet.MSBuild (>= 6.0) - Fake.DotNet.NuGet (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) + 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 (>= 13.0.1) - Fake.DotNet.MSBuild (6.0) + Newtonsoft.Json (>= 12.0.3) + Fake.DotNet.MSBuild (5.20.4) BlackFox.VsWhere (>= 1.1) - Fake.Core.Environment (>= 6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) - MSBuild.StructuredLogger (>= 2.1.545) - Fake.DotNet.NuGet (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.SemVer (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Tasks (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.Core.Xml (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - Fake.Net.Http (>= 6.0) - FSharp.Core (>= 6.0.3) - Newtonsoft.Json (>= 13.0.1) - NuGet.Protocol (>= 6.0) - Fake.DotNet.Paket (6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.DotNet.Cli (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.IO.FileSystem (6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Net.Http (6.0) - Fake.Core.Trace (>= 6.0) - FSharp.Core (>= 6.0.3) - Fake.Tools.Git (6.0) - Fake.Core.Environment (>= 6.0) - Fake.Core.Process (>= 6.0) - Fake.Core.SemVer (>= 6.0) - Fake.Core.String (>= 6.0) - Fake.Core.Trace (>= 6.0) - Fake.IO.FileSystem (>= 6.0) - FSharp.Core (>= 6.0.3) + 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.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 (5.0.2) + FSharp.Control.Reactive (4.4.2) FSharp.Core (>= 4.7.2) - System.Reactive (>= 5.0) - FSharp.Core (6.0.3) - Microsoft.Build (16.10) - Microsoft.Build.Framework (>= 16.10) - Microsoft.NET.StringTools (>= 1.0) + System.Reactive (>= 4.4.1) + FSharp.Core (5.0.2) + Microsoft.Build (16.4) + Microsoft.Build.Framework (>= 16.4) Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Configuration.ConfigurationManager (>= 4.7) + System.Collections.Immutable (>= 1.5) + System.Diagnostics.TraceSource (>= 4.0) + System.Memory (>= 4.5.3) System.Reflection.Metadata (>= 1.6) - System.Security.Principal.Windows (>= 4.7) + System.Reflection.TypeExtensions (>= 4.1) + System.Runtime.Loader (>= 4.0) + System.Security.Principal.Windows (>= 4.3) System.Text.Encoding.CodePages (>= 4.0.1) - System.Text.Json (>= 4.7) System.Threading.Tasks.Dataflow (>= 4.9) - 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.Build.Framework (16.4) + System.Runtime.Serialization.Primitives (>= 4.1.1) + System.Threading.Thread (>= 4.0) + Microsoft.Build.Tasks.Core (16.4) + Microsoft.Build.Framework (>= 16.4) + Microsoft.Build.Utilities.Core (>= 16.4) Microsoft.Win32.Registry (>= 4.3) System.CodeDom (>= 4.4) - System.Collections.Immutable (>= 5.0) + System.Collections.Immutable (>= 1.5) + System.Linq.Parallel (>= 4.0.1) + System.Net.Http (>= 4.3.4) System.Reflection.Metadata (>= 1.6) + System.Reflection.TypeExtensions (>= 4.1) System.Resources.Extensions (>= 4.6) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Cryptography.Xml (>= 4.7) - System.Security.Permissions (>= 4.7) + System.Resources.Writer (>= 4.0) System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Utilities.Core (16.10) - Microsoft.Build.Framework (>= 16.10) - Microsoft.NET.StringTools (>= 1.0) + Microsoft.Build.Tasks.Git (1.0) + Microsoft.Build.Utilities.Core (16.4) + Microsoft.Build.Framework (>= 16.4) Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 5.0) - System.Configuration.ConfigurationManager (>= 4.7) - System.Security.Permissions (>= 4.7) + System.Collections.Immutable (>= 1.5) 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 (3.1) - Microsoft.NETCore.Targets (1.0.1) + Microsoft.NETCore.Targets (1.1) + Microsoft.SourceLink.Common (1.0) + Microsoft.SourceLink.GitHub (1.0) + Microsoft.Build.Tasks.Git (>= 1.0) + Microsoft.SourceLink.Common (>= 1.0) Microsoft.Win32.Registry (4.7) System.Security.AccessControl (>= 4.7) System.Security.Principal.Windows (>= 4.7) - Microsoft.Win32.SystemEvents (4.7) - Microsoft.NETCore.Platforms (>= 3.1) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.545) - Microsoft.Build (>= 16.10) - Microsoft.Build.Framework (>= 16.10) - Microsoft.Build.Tasks.Core (>= 16.10) - Microsoft.Build.Utilities.Core (>= 16.10) - Newtonsoft.Json (13.0.1) - NuGet.Common (6.0.2) - NuGet.Frameworks (>= 6.0.2) - NuGet.Configuration (6.0.2) - NuGet.Common (>= 6.0.2) - System.Security.Cryptography.ProtectedData (>= 4.4) - NuGet.Frameworks (6.0.2) - NuGet.Packaging (6.0.2) - Newtonsoft.Json (>= 13.0.1) - NuGet.Configuration (>= 6.0.2) - NuGet.Versioning (>= 6.0.2) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.Pkcs (>= 5.0) - NuGet.Protocol (6.0.2) - NuGet.Packaging (>= 6.0.2) - NuGet.Versioning (6.0.2) - Octokit (0.50) + MSBuild.StructuredLogger (2.1.176) + Microsoft.Build (>= 16.4) + Microsoft.Build.Framework (>= 16.4) + Microsoft.Build.Tasks.Core (>= 16.4) + Microsoft.Build.Utilities.Core (>= 16.4) + Microsoft.SourceLink.GitHub (>= 1.0) + Newtonsoft.Json (12.0.3) + NuGet.Common (5.8.1) + NuGet.Frameworks (>= 5.8.1) + NuGet.Configuration (5.6) + NuGet.Common (>= 5.6) + System.Security.Cryptography.ProtectedData (>= 4.3) + NuGet.Frameworks (5.8.1) + 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.48) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.native.System (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Net.Http (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (4.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) + runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3) + runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) + runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) System.CodeDom (4.4) - System.Collections (4.0.11) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Collections.Immutable (6.0) - System.Runtime.CompilerServices.Unsafe (>= 6.0) - System.Configuration.ConfigurationManager (4.7) - System.Security.Cryptography.ProtectedData (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Drawing.Common (4.7) - Microsoft.NETCore.Platforms (>= 3.1) - Microsoft.Win32.SystemEvents (>= 4.7) - System.Formats.Asn1 (5.0) - System.Globalization (4.0.11) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.IO (4.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Text.Encoding (>= 4.0.11) - System.Threading.Tasks (>= 4.0.11) - System.Memory (4.5.4) - System.Reactive (5.0) - System.Reflection (4.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.IO (>= 4.1) - System.Reflection.Primitives (>= 4.0.1) - System.Runtime (>= 4.1) - System.Reflection.Metadata (1.6) - System.Reflection.Primitives (4.0.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Resources.Extensions (4.6) - System.Resources.ResourceManager (4.0.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Globalization (>= 4.0.11) - System.Reflection (>= 4.1) - System.Runtime (>= 4.1) - System.Runtime (4.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime.CompilerServices.Unsafe (6.0) - System.Runtime.Extensions (4.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Runtime.Handles (4.0.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Runtime.InteropServices (4.1) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Reflection (>= 4.1) - System.Reflection.Primitives (>= 4.0.1) - System.Runtime (>= 4.1) - System.Runtime.Handles (>= 4.0.1) - System.Security.AccessControl (4.7) - Microsoft.NETCore.Platforms (>= 3.1) - System.Security.Principal.Windows (>= 4.7) - System.Security.Cryptography.Cng (5.0) - System.Formats.Asn1 (>= 5.0) - System.Security.Cryptography.Pkcs (5.0) - System.Formats.Asn1 (>= 5.0) - System.Security.Cryptography.Cng (>= 5.0) - System.Security.Cryptography.ProtectedData (4.7) - System.Security.Cryptography.Xml (4.7) - System.Security.Cryptography.Pkcs (>= 4.7) - System.Security.Permissions (>= 4.7) - System.Security.Permissions (4.7) - System.Security.AccessControl (>= 4.7) - System.Windows.Extensions (>= 4.7) - System.Security.Principal.Windows (4.7) - System.Text.Encoding (4.0.11) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Text.Encoding.CodePages (4.0.1) + System.Collections (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Collections.Concurrent (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Globalization (>= 4.3) + System.Reflection (>= 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.Collections.Immutable (1.7.1) + System.Diagnostics.Debug (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Diagnostics.DiagnosticSource (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Tracing (>= 4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Threading (>= 4.3) + System.Diagnostics.TraceSource (4.0) Microsoft.NETCore.Platforms (>= 1.0.1) + runtime.native.System (>= 4.0) System.Collections (>= 4.0.11) + System.Diagnostics.Debug (>= 4.0.11) System.Globalization (>= 4.0.11) - System.IO (>= 4.1) - System.Reflection (>= 4.1) System.Resources.ResourceManager (>= 4.0.1) System.Runtime (>= 4.1) System.Runtime.Extensions (>= 4.1) - System.Runtime.Handles (>= 4.0.1) - System.Runtime.InteropServices (>= 4.1) - System.Text.Encoding (>= 4.0.11) System.Threading (>= 4.0.11) - System.Text.Json (4.7) - System.Threading (4.0.11) - System.Runtime (>= 4.1) - System.Threading.Tasks (>= 4.0.11) - System.Threading.Tasks (4.0.11) - Microsoft.NETCore.Platforms (>= 1.0.1) - Microsoft.NETCore.Targets (>= 1.0.1) - System.Runtime (>= 4.1) - System.Threading.Tasks.Dataflow (4.9) - System.Windows.Extensions (4.7) - System.Drawing.Common (>= 4.7) - -GROUP Docs -STORAGE: PACKAGES -RESTRICTION: == netstandard2.0 -NUGET - remote: https://api.nuget.org/v3/index.json - FSharp.Compiler.Service (40.0) - FSharp.Core (5.0.2) - Microsoft.Build.Framework (>= 16.9) - Microsoft.Build.Tasks.Core (>= 16.9) - Microsoft.Build.Utilities.Core (>= 16.9) - System.Buffers (>= 4.5.1) - System.Collections.Immutable (>= 5.0) - System.Diagnostics.Process (>= 4.3) - System.Diagnostics.TraceSource (>= 4.3) + System.Diagnostics.Tracing (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) + System.Dynamic.Runtime (4.3) + System.Collections (>= 4.3) + System.Diagnostics.Debug (>= 4.3) + System.Linq (>= 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.ObjectModel (>= 4.3) + System.Reflection (>= 4.3) System.Reflection.Emit (>= 4.3) - System.Reflection.Metadata (>= 5.0) + System.Reflection.Emit.ILGeneration (>= 4.3) + System.Reflection.Primitives (>= 4.3) 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.2) - FSharp.Formatting (4.1) - FSharp.Compiler.Service (>= 35.0) - Markdig (0.25) - 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) - 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) - 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.Concurrent (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Reflection (>= 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.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 (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) - Microsoft.Win32.Registry (>= 4.3) - runtime.native.System (>= 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.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.Text.Encoding.Extensions (>= 4.3) - System.Threading (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.Threading.Thread (>= 4.3) - System.Threading.ThreadPool (>= 4.3) - 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.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) @@ -1207,19 +1023,18 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) 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.Memory (4.5.4) - System.Buffers (>= 4.5.1) - System.Numerics.Vectors (>= 4.4) - System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + System.Linq.Parallel (4.0.1) + System.Collections (>= 4.0.11) + System.Collections.Concurrent (>= 4.0.12) + System.Diagnostics.Debug (>= 4.0.11) + System.Diagnostics.Tracing (>= 4.1) + System.Linq (>= 4.1) + System.Resources.ResourceManager (>= 4.0.1) + System.Runtime (>= 4.1) + System.Runtime.Extensions (>= 4.1) + System.Threading (>= 4.0.11) + System.Threading.Tasks (>= 4.0.11) + System.Memory (4.5.3) System.Net.Http (4.3.4) Microsoft.NETCore.Platforms (>= 1.1.1) runtime.native.System (>= 4.3) @@ -1247,105 +1062,73 @@ NUGET 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) + System.Net.Primitives (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) + Microsoft.NETCore.Targets (>= 1.1) 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) System.Diagnostics.Debug (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Threading (>= 4.3) + System.Reactive (4.4.1) 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.Emit.Lightweight (4.7) - System.Reflection.Emit.ILGeneration (>= 4.7) + System.Reflection.Emit (4.3) + System.IO (>= 4.3) + System.Reflection (>= 4.3) + System.Reflection.Emit.ILGeneration (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Emit.ILGeneration (4.3) + System.Reflection (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) + System.Reflection.Emit.Lightweight (4.3) + System.Reflection (>= 4.3) + System.Reflection.Emit.ILGeneration (>= 4.3) + System.Reflection.Primitives (>= 4.3) + System.Runtime (>= 4.3) 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 (5.0) - System.Collections.Immutable (>= 5.0) + System.Reflection.Metadata (1.6) System.Reflection.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Reflection.TypeExtensions (4.7) - System.Resources.Extensions (5.0) - System.Memory (>= 4.5.4) + System.Reflection.TypeExtensions (4.3) + System.Reflection (>= 4.3) + System.Runtime (>= 4.3) + System.Resources.Extensions (4.6) 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) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime.CompilerServices.Unsafe (5.0) - System.Runtime.Extensions (4.3.1) - Microsoft.NETCore.Platforms (>= 1.1.1) - Microsoft.NETCore.Targets (>= 1.1.3) - System.Runtime (>= 4.3.1) + System.Resources.Writer (4.0) + System.Collections (>= 4.0.11) + System.IO (>= 4.1) + System.Resources.ResourceManager (>= 4.0.1) + System.Runtime (>= 4.1) + System.Runtime.Extensions (>= 4.1) + System.Text.Encoding (>= 4.0.11) + System.Runtime (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime.Extensions (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + Microsoft.NETCore.Targets (>= 1.1) + System.Runtime (>= 4.3) System.Runtime.Handles (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -1357,41 +1140,48 @@ NUGET System.Reflection.Primitives (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) - System.Runtime.Loader (4.3) - System.IO (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) + System.Runtime.Loader (4.0) + System.IO (>= 4.1) + System.Reflection (>= 4.1) + System.Runtime (>= 4.1) System.Runtime.Numerics (4.3) System.Globalization (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Security.AccessControl (5.0) - System.Security.Principal.Windows (>= 5.0) - System.Security.Claims (4.3) + System.Runtime.Serialization.Primitives (4.1.1) + System.Resources.ResourceManager (>= 4.0.1) + System.Runtime (>= 4.1) + System.Security.AccessControl (4.7) + Microsoft.NETCore.Platforms (>= 3.1) + System.Security.Principal.Windows (>= 4.7) + System.Security.Cryptography.Algorithms (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + runtime.native.System.Security.Cryptography.Apple (>= 4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) System.Collections (>= 4.3) - System.Globalization (>= 4.3) System.IO (>= 4.3) System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) - System.Security.Principal (>= 4.3) - System.Security.Cryptography.Algorithms (4.3.1) + 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.Security.Cryptography.Cng (4.3) Microsoft.NETCore.Platforms (>= 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.Algorithms (>= 4.3) System.Security.Cryptography.Encoding (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - System.Security.Cryptography.Cng (5.0) System.Security.Cryptography.Csp (4.3) Microsoft.NETCore.Platforms (>= 1.1) System.IO (>= 4.3) @@ -1419,12 +1209,20 @@ NUGET System.Runtime.InteropServices (>= 4.3) System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) - 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.OpenSsl (4.3) + runtime.native.System.Security.Cryptography.OpenSsl (>= 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.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Runtime.Numerics (>= 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.Security.Cryptography.Primitives (4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) @@ -1433,13 +1231,17 @@ NUGET System.Runtime (>= 4.3) System.Threading (>= 4.3) System.Threading.Tasks (>= 4.3) - System.Security.Cryptography.ProtectedData (5.0) - System.Memory (>= 4.5.4) - System.Security.Cryptography.X509Certificates (4.3.2) + System.Security.Cryptography.ProtectedData (4.3) + Microsoft.NETCore.Platforms (>= 1.1) + System.Resources.ResourceManager (>= 4.3) + System.Runtime (>= 4.3) + System.Runtime.InteropServices (>= 4.3) + System.Security.Cryptography.Primitives (>= 4.3) + System.Security.Cryptography.X509Certificates (4.3) 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) + runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) System.Globalization (>= 4.3) @@ -1461,26 +1263,24 @@ NUGET System.Security.Cryptography.Primitives (>= 4.3) System.Text.Encoding (>= 4.3) System.Threading (>= 4.3) - 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.Security.Principal.Windows (4.7) 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) - System.Runtime.CompilerServices.Unsafe (>= 5.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.Encoding.CodePages (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + System.Collections (>= 4.0.11) + System.Globalization (>= 4.0.11) + System.IO (>= 4.1) + System.Reflection (>= 4.1) + System.Resources.ResourceManager (>= 4.0.1) + System.Runtime (>= 4.1) + System.Runtime.Extensions (>= 4.1) + System.Runtime.Handles (>= 4.0.1) + System.Runtime.InteropServices (>= 4.1) + System.Text.Encoding (>= 4.0.11) + System.Threading (>= 4.0.11) System.Threading (4.3) System.Runtime (>= 4.3) System.Threading.Tasks (>= 4.3) @@ -1488,18 +1288,46 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.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) + System.Threading.Tasks.Dataflow (4.9) + System.Threading.Thread (4.0) + System.Runtime (>= 4.1) + +GROUP Docs +STORAGE: PACKAGES +RESTRICTION: == netstandard2.0 +NUGET + remote: https://api.nuget.org/v3/index.json + FSharp.Compiler.Service (43.8.100) + FSharp.Core (8.0.100) + System.Buffers (>= 4.5.1) + System.Collections.Immutable (>= 7.0) + System.Diagnostics.DiagnosticSource (>= 7.0.2) + System.Memory (>= 4.5.5) + System.Reflection.Emit (>= 4.7) + System.Reflection.Metadata (>= 7.0) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + FSharp.Core (8.0.100) + FSharp.Formatting (4.1) + FSharp.Compiler.Service (>= 35.0) + Markdig (0.34) + System.Memory (>= 4.5.5) + Newtonsoft.Json (13.0.3) + System.Buffers (4.5.1) + System.Collections.Immutable (8.0) + System.Memory (>= 4.5.5) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Diagnostics.DiagnosticSource (8.0) + System.Memory (>= 4.5.5) + System.Runtime.CompilerServices.Unsafe (>= 6.0) + System.Memory (4.5.5) + System.Buffers (>= 4.5.1) + System.Numerics.Vectors (>= 4.4) + System.Runtime.CompilerServices.Unsafe (>= 4.5.3) + System.Numerics.Vectors (4.5) + System.Reflection.Emit (4.7) + System.Reflection.Emit.ILGeneration (>= 4.7) + System.Reflection.Emit.ILGeneration (4.7) + System.Reflection.Metadata (8.0) + System.Collections.Immutable (>= 8.0) + System.Memory (>= 4.5.5) + System.Runtime.CompilerServices.Unsafe (6.0) diff --git a/src/FSharpLint.Core/Framework/AbstractSyntaxArray.fs b/src/FSharpLint.Core/Framework/AbstractSyntaxArray.fs index dcee1bd69..142b85c18 100644 --- a/src/FSharpLint.Core/Framework/AbstractSyntaxArray.fs +++ b/src/FSharpLint.Core/Framework/AbstractSyntaxArray.fs @@ -94,7 +94,7 @@ module AbstractSyntaxArray = let private astNodeToSyntaxNode = function | Expression(SynExpr.Null(_)) -> SyntaxNode.Null | Expression(SynExpr.Tuple(_)) -> SyntaxNode.Tuple - | Expression(SynExpr.ArrayOrListOfSeqExpr(_)) + | Expression(SynExpr.ArrayOrListComputed(_)) | Expression(SynExpr.ArrayOrList(_)) -> SyntaxNode.ArrayOrList | Expression(SynExpr.AddressOf(_)) -> SyntaxNode.AddressOf | Identifier(_) -> SyntaxNode.Identifier diff --git a/src/FSharpLint.Core/Framework/Ast.fs b/src/FSharpLint.Core/Framework/Ast.fs index adb03b25e..afe40aa1f 100644 --- a/src/FSharpLint.Core/Framework/Ast.fs +++ b/src/FSharpLint.Core/Framework/Ast.fs @@ -57,7 +57,7 @@ module Ast = match exprToFlatten with | SynExpr.App(_, _, x, y, _) -> match x with - | SynExpr.App(_, true, SynExpr.Ident(op), rhs, _) as app -> + | SynExpr.App(_, true, SynExpr.LongIdent(_, SynLongIdent([op], _, _), _, _), rhs, _) as app -> let lhs = y match op.idText with @@ -85,12 +85,12 @@ module Ast = let rec removeAutoGeneratedMatchesFromLambda = function | SynExpr.Match(DebugPointAtBinding.NoneAtInvisible, _, - [SynMatchClause(SynPat.Wild(_), _, expr, _, _)], _) -> + [SynMatchClause(SynPat.Wild(_), _, expr, _, _, _)], _, _) -> removeAutoGeneratedMatchesFromLambda expr | x -> x let (|IsCurriedLambda|_|) = function - | SynExpr.Lambda(_, _, parameter, (SynExpr.Lambda(_) as inner), _, _) as outer + | SynExpr.Lambda(_, _, parameter, (SynExpr.Lambda(_) as inner), _, _, _) as outer when outer.Range = inner.Range -> Some(parameter, inner) | _ -> None @@ -98,20 +98,20 @@ module Ast = let rec getLambdaParametersAndExpression parameters = function | IsCurriedLambda(parameter, curriedLambda) -> getLambdaParametersAndExpression (parameter::parameters) curriedLambda - | SynExpr.Lambda(_, _, parameter, body, _, _) -> + | SynExpr.Lambda(_, _, parameter, body, _, _, _) -> { Arguments = parameter::parameters |> List.rev Body = removeAutoGeneratedMatchesFromLambda body } |> Some | _ -> None match lambda with - | AstNode.Expression(SynExpr.Lambda(_, _, _, _, _, range) as lambda) -> + | AstNode.Expression(SynExpr.Lambda(_, _, _, _, _, range, _) as lambda) -> getLambdaParametersAndExpression [] lambda |> Option.map (fun x -> (x, range)) | _ -> None let (|Cons|_|) pattern = match pattern with - | SynPat.LongIdent(LongIdentWithDots([identifier], _), + | SynPat.LongIdent(SynLongIdent([identifier], _, _), _, _, SynArgPats.Pats([SynPat.Tuple(_, [lhs; rhs], _)]), _, _) when identifier.idText = "op_ColonColon" -> @@ -130,13 +130,13 @@ module Ast = let inline private moduleDeclarationChildren node add = match node with - | SynModuleDecl.NestedModule(componentInfo, _, moduleDeclarations, _, _) -> + | SynModuleDecl.NestedModule(componentInfo, _, moduleDeclarations, _, _, _) -> moduleDeclarations |> List.revIter (ModuleDeclaration >> add) add <| ComponentInfo componentInfo | SynModuleDecl.Let(_, bindings, _) -> bindings |> List.revIter (Binding >> add) - | SynModuleDecl.DoExpr(_, expression, _) -> add <| Expression expression + | SynModuleDecl.Expr(expression, _) -> add <| Expression expression | SynModuleDecl.Types(typeDefinitions, _) -> typeDefinitions |> List.revIter (TypeDefinition >> add) - | SynModuleDecl.Exception(SynExceptionDefn.SynExceptionDefn(repr, members, _), _) -> + | SynModuleDecl.Exception(SynExceptionDefn.SynExceptionDefn(repr, _, members, _), _) -> members |> List.revIter (MemberDefinition >> add) add <| ExceptionRepresentation repr | SynModuleDecl.NamespaceFragment(moduleOrNamespace) -> add <| ModuleOrNamespace moduleOrNamespace @@ -153,7 +153,7 @@ module Ast = add <| Type synType | SynType.Tuple(_, types, _) -> types |> List.revIter (snd >> Type >> add) - | SynType.Fun(synType, synType1, _) + | SynType.Fun(synType, synType1, _, _) | SynType.StaticConstantNamed(synType, synType1, _) | SynType.MeasureDivide(synType, synType1, _) -> add <| Type synType1 @@ -191,20 +191,23 @@ module Ast = add <| Expression expression add <| Type synType | SynMemberDefn.LetBindings(bindings, _, _, _) -> bindings |> List.revIter (Binding >> add) - | SynMemberDefn.Interface(synType, Some(members), _) -> + | SynMemberDefn.Interface(synType, _, Some(members), _) -> members |> List.revIter (MemberDefinition >> add) add <| Type synType - | SynMemberDefn.Interface(synType, None, _) + | SynMemberDefn.Interface(synType, _, None, _) | SynMemberDefn.Inherit(synType, _, _) -> add <| Type synType | SynMemberDefn.Open(_) | SynMemberDefn.AbstractSlot(_) -> () | SynMemberDefn.ValField(field, _) -> add <| Field field | SynMemberDefn.NestedType(typeDefinition, _, _) -> add <| TypeDefinition typeDefinition - | SynMemberDefn.AutoProperty(_, _, _, Some(synType), _, _, _, _, expression, _, _) -> + | SynMemberDefn.AutoProperty(_, _, _, Some(synType), _, _, _, _, _, expression, _, _, _) -> add <| Expression expression add <| Type synType - | SynMemberDefn.AutoProperty(_, _, _, None, _, _, _, _, expression, _, _) -> + | SynMemberDefn.AutoProperty(_, _, _, None, _, _, _, _, _, expression, _, _, _) -> add <| Expression expression + | SynMemberDefn.GetSetMember(memberDefnForGet, memberDefnForSet, _, _) -> + memberDefnForGet |> Option.iter (Binding >> add) + memberDefnForSet |> Option.iter (Binding >> add) let inline private patternChildren node add = match node with @@ -213,16 +216,16 @@ module Ast = | SynPat.Typed(pattern, synType, _) -> add <| Type synType add <| Pattern pattern - | SynPat.Or(pattern, pattern1, _) -> + | SynPat.Or(pattern, pattern1, _, _) -> add <| Pattern pattern1 add <| Pattern pattern | SynPat.ArrayOrList(_, patterns, _) | SynPat.Tuple(_, patterns, _) | SynPat.Ands(patterns, _) -> patterns |> List.revIter (Pattern >> add) | SynPat.Attrib(pattern, _, _) - | SynPat.Named(pattern, _, _, _, _) | SynPat.Paren(pattern, _) -> add <| Pattern pattern - | SynPat.Record(patternsAndIdentifier, _) -> patternsAndIdentifier |> List.revIter (snd >> Pattern >> add) + | SynPat.Named(_) -> () + | SynPat.Record(patternsAndIdentifier, _) -> patternsAndIdentifier |> List.revIter (fun (_, _, pattern) -> pattern |> Pattern |> add) | SynPat.Const(_) | SynPat.Wild(_) | SynPat.FromParseError(_) @@ -235,6 +238,9 @@ module Ast = add <| Pattern lhs | SynPat.LongIdent(_, _, _, constructorArguments, _, _) -> add <| ConstructorArguments constructorArguments + | SynPat.As(lhsPart, rhsPart, _) -> + add <| Pattern lhsPart + add <| Pattern rhsPart let inline private expressionChildren node add = match node with @@ -244,8 +250,8 @@ module Ast = | SynExpr.LongIdentSet(_, expression, _) | SynExpr.Do(expression, _) | SynExpr.Assert(expression, _) - | SynExpr.CompExpr(_, _, expression, _) - | SynExpr.ArrayOrListOfSeqExpr(_, expression, _) + | SynExpr.ComputationExpr(_, expression, _) + | SynExpr.ArrayOrListComputed(_, expression, _) | SynExpr.AddressOf(_, expression, _, _) | SynExpr.InferredDowncast(expression, _) | SynExpr.InferredUpcast(expression, _) @@ -264,7 +270,7 @@ module Ast = | SynExpr.DotIndexedSet(expression, _, expression1, _, _, _) | SynExpr.JoinIn(expression, _, expression1, _) | SynExpr.While(_, expression, expression1, _) - | SynExpr.TryFinally(expression, expression1, _, _, _) + | SynExpr.TryFinally(expression, expression1, _, _, _, _) | SynExpr.Set(expression, expression1, _) | SynExpr.DotSet(expression, _, expression1, _) -> add <| Expression expression1 @@ -279,7 +285,7 @@ module Ast = | SynExpr.AnonRecd(_, Some (expr,_), _, _) -> add <| Expression expr | SynExpr.AnonRecd(_, None, _, _) -> () - | SynExpr.ObjExpr(synType, _, bindings, _, _, _) -> + | SynExpr.ObjExpr(synType, _, _, bindings, _, _, _, _) -> bindings |> List.revIter (Binding >> add) add <| Type synType | SynExpr.ImplicitZero(_) @@ -293,28 +299,28 @@ module Ast = | SynExpr.LibraryOnlyUnionCaseFieldSet(_) | SynExpr.ArbitraryAfterError(_) -> () | SynExpr.DotNamedIndexedPropertySet(expression, _, expression1, expression2, _) - | SynExpr.For(_, _, expression, _, expression1, expression2, _) -> + | SynExpr.For(_, _, _, _, expression, _, expression1, expression2, _) -> add <| Expression expression2 add <| Expression expression1 add <| Expression expression - | SynExpr.LetOrUseBang(_, _, _, pattern, rightHandSide, andBangs, leftHandSide, _) -> + | SynExpr.LetOrUseBang(_, _, _, pattern, rightHandSide, andBangs, leftHandSide, _, _) -> add <| Expression rightHandSide add <| Expression leftHandSide // TODO: is the the correct way to handle the new `and!` syntax? - andBangs |> List.iter (fun (_, _, _, pattern, body, _) -> + andBangs |> List.iter (fun (SynExprAndBang(_, _, _, pattern, body, _, _)) -> add <| Expression body add <| Pattern pattern ) add <| Pattern pattern - | SynExpr.ForEach(_, _, _, pattern, expression, expression1, _) -> + | SynExpr.ForEach(_, _, _, _, pattern, expression, expression1, _) -> add <| Expression expression1 add <| Expression expression add <| Pattern pattern | SynExpr.MatchLambda(_, _, matchClauses, _, _) -> matchClauses |> List.revIter (Match >> add) - | SynExpr.TryWith(expression, _, matchClauses, _, _, _, _) - | SynExpr.MatchBang(_, expression, matchClauses, _) - | SynExpr.Match(_, expression, matchClauses, _) -> + | SynExpr.TryWith(expression, matchClauses, _, _, _, _) + | SynExpr.MatchBang(_, expression, matchClauses, _, _) + | SynExpr.Match(_, expression, matchClauses, _, _) -> matchClauses |> List.revIter (Match >> add) add <| Expression expression | SynExpr.TypeApp(expression, _, types, _, _, _, _) -> @@ -326,11 +332,11 @@ module Ast = | SynExpr.Downcast(expression, synType, _) -> add <| Type synType add <| Expression expression - | SynExpr.LetOrUse(_, _, bindings, expression, _) -> + | SynExpr.LetOrUse(_, _, bindings, expression, _, _) -> add <| Expression expression bindings |> List.revIter (Binding >> add) | SynExpr.Ident(ident) -> add <| Identifier([ident.idText], ident.idRange) - | SynExpr.LongIdent(_, LongIdentWithDots(ident, _), _, range) -> + | SynExpr.LongIdent(_, SynLongIdent(ident, _, _), _, range) -> add <| Identifier(ident |> List.map (fun x -> x.idText), range) | SynExpr.IfThenElse(cond, body, Some(elseExpr), _, _, _, _) -> add <| Else elseExpr @@ -351,6 +357,16 @@ module Ast = | SynExpr.Lambda(_) | SynExpr.App(_) | SynExpr.Fixed(_) -> () + | SynExpr.DebugPoint(_debugPoint, _, innerExpr) -> + add <| Expression innerExpr + | SynExpr.Dynamic(funcExpr, _, argExpr, _) -> + add <| Expression funcExpr + add <| Expression argExpr + | SynExpr.IndexFromEnd(expr, _) -> + add <| Expression expr + | SynExpr.IndexRange(expr1, _, expr2, _, _, _) -> + expr1 |> Option.iter (Expression >> add) + expr2 |> Option.iter (Expression >> add) let inline private typeSimpleRepresentationChildren node add = match node with @@ -381,11 +397,11 @@ module Ast = let inline private matchChildren node add = match node with - | SynMatchClause(pattern, Some(expression), expression1, _, _) -> + | SynMatchClause(pattern, Some(expression), expression1, _, _, _) -> add <| Expression expression1 add <| Expression expression add <| Pattern pattern - | SynMatchClause(pattern, None, expression1, _, _) -> + | SynMatchClause(pattern, None, expression1, _, _, _) -> add <| Expression expression1 add <| Pattern pattern @@ -394,7 +410,7 @@ module Ast = | SynArgPats.Pats(patterns) -> patterns |> List.revIter (Pattern >> add) | SynArgPats.NamePatPairs(namePatterns, _) -> - namePatterns |> List.revIter (snd >> Pattern >> add) + namePatterns |> List.revIter (fun (_, _, pattern) -> pattern |> Pattern |> add) let inline private typeRepresentationChildren node add = match node with @@ -416,14 +432,14 @@ module Ast = let traverseNode node add = match node with | ModuleDeclaration(x) -> moduleDeclarationChildren x add - | ModuleOrNamespace(SynModuleOrNamespace(_, _, _, moduleDeclarations, _, _, _, _)) -> + | ModuleOrNamespace(SynModuleOrNamespace(_, _, _, moduleDeclarations, _, _, _, _, _)) -> moduleDeclarations |> List.revIter (ModuleDeclaration >> add) - | Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, expression, _, _)) -> + | Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, expression, _, _, _)) -> add <| Expression expression add <| Pattern pattern | ExceptionRepresentation(SynExceptionDefnRepr.SynExceptionDefnRepr(_, unionCase, _, _, _, _)) -> add <| UnionCase unionCase - | TypeDefinition(SynTypeDefn(componentInfo, typeRepresentation, members, implicitCtor, _)) -> + | TypeDefinition(SynTypeDefn(componentInfo, typeRepresentation, members, implicitCtor, _, _)) -> implicitCtor |> Option.iter (MemberDefinition >> add) members |> List.revIter (MemberDefinition >> add) add <| TypeRepresentation typeRepresentation @@ -438,7 +454,7 @@ module Ast = | SimplePattern(x) -> simplePatternChildren x add | LambdaArg(x) | SimplePatterns(x) -> simplePatternsChildren x add - | InterfaceImplementation(SynInterfaceImpl(synType, bindings, _)) -> + | InterfaceImplementation(SynInterfaceImpl(synType, _, bindings, _, _)) -> bindings |> List.revIter (Binding >> add) add <| Type synType | TypeRepresentation(x) -> typeRepresentationChildren x add @@ -451,7 +467,7 @@ module Ast = | Else(x) | Expression(x) -> expressionChildren x add - | File(ParsedInput.ImplFile(ParsedImplFileInput(_, _, _, _, _, moduleOrNamespaces, _))) -> + | File(ParsedInput.ImplFile(ParsedImplFileInput(_, _, _, _, _, moduleOrNamespaces, _, _))) -> moduleOrNamespaces |> List.revIter (ModuleOrNamespace >> add) | UnionCase(x) -> unionCaseChildren x add diff --git a/src/FSharpLint.Core/Framework/Utilities.fs b/src/FSharpLint.Core/Framework/Utilities.fs index 0c1c0eb74..398f8b1df 100644 --- a/src/FSharpLint.Core/Framework/Utilities.fs +++ b/src/FSharpLint.Core/Framework/Utilities.fs @@ -31,7 +31,7 @@ module ExpressionUtilities = let (|Identifier|_|) = function | SynExpr.Ident(ident) -> Some([ident], ident.idRange) - | SynExpr.LongIdent(_, longIdent, _, _) -> Some(longIdent.Lid, longIdent.Range) + | SynExpr.LongIdent(_, longIdent, _, _) -> Some(longIdent.LongIdent, longIdent.Range) | _ -> None let getSymbolFromIdent (checkFile:FSharpCheckFileResults option) expr = @@ -52,7 +52,11 @@ module ExpressionUtilities = PrettyNaming.DecompileOpName ident.idText else ident.idText - let identAsCompiledOpName = PrettyNaming.CompileOpName + let identAsCompiledOpName (identName: string) = + if PrettyNaming.IsOperatorDisplayName identName then + PrettyNaming.CompileOpName identName + else + identName /// Extracts an expression from parentheses e.g. ((x + 4)) -> x + 4 let rec removeParens = function @@ -76,8 +80,8 @@ module ExpressionUtilities = lid |> List.map (fun li -> li.idText) |> String.concat "." /// Converts a LongIdentWithDots to a String. - let longIdentWithDotsToString (lidwd:LongIdentWithDots) = - lidwd.Lid |> longIdentToString + let longIdentWithDotsToString (lidwd: SynLongIdent) = + lidwd.LongIdent |> longIdentToString /// Tries to find the source code within a given range. let tryFindTextOfRange (range:Range) (text:string) = diff --git a/src/FSharpLint.Core/Rules/Conventions/AsyncExceptionWithoutReturn.fs b/src/FSharpLint.Core/Rules/Conventions/AsyncExceptionWithoutReturn.fs index ac6a6623c..a93b4496b 100644 --- a/src/FSharpLint.Core/Rules/Conventions/AsyncExceptionWithoutReturn.fs +++ b/src/FSharpLint.Core/Rules/Conventions/AsyncExceptionWithoutReturn.fs @@ -14,24 +14,24 @@ let rec checkExpression (expression: SynExpr) (range: range) = Array.append result (checkExpression secondExpression secondExpression.Range) | SynExpr.Paren (innerExpression, _, _, range) -> checkExpression innerExpression range | SynExpr.While (_, _, innerExpression, range) -> checkExpression innerExpression range - | SynExpr.For (_, _, _, _, _, innerExpression, range) -> checkExpression innerExpression range - | SynExpr.ForEach (_, _, _, _, _, innerExpression, range) -> checkExpression innerExpression range - | SynExpr.Match (_, _, clauses, range) -> + | SynExpr.For (_, _, _, _, _, _, _, innerExpression, range) -> checkExpression innerExpression range + | SynExpr.ForEach (_, _, _, _, _, _, innerExpression, range) -> checkExpression innerExpression range + | SynExpr.Match (_, _, clauses, range, _) -> clauses - |> List.map (fun (SynMatchClause (_, _, clause, range, _)) -> checkExpression clause range) + |> List.map (fun (SynMatchClause (_, _, clause, range, _, _)) -> checkExpression clause range) |> List.toArray |> Array.concat | SynExpr.Do (innerExpression, range) -> checkExpression innerExpression range - | SynExpr.TryWith (tryExpression, tryRange, withCases, _, _, _, _) -> + | SynExpr.TryWith (tryExpression, withCases, tryRange, _, _, _) -> withCases - |> List.map (fun (SynMatchClause (_, _, withCase, withRange, _)) -> checkExpression withCase withRange) + |> List.map (fun (SynMatchClause (_, _, withCase, withRange, _, _)) -> checkExpression withCase withRange) |> List.toArray |> Array.concat |> Array.append (checkExpression tryExpression tryRange) - | SynExpr.TryFinally (tryExpression, finallyExpr, range, _, _) -> + | SynExpr.TryFinally (tryExpression, finallyExpr, range, _, _, _) -> checkExpression finallyExpr range |> Array.append (checkExpression tryExpression range) - | SynExpr.IfThenElse (_, thenExpr, elseExpr, _, _, _, range) -> + | SynExpr.IfThenElse (_, thenExpr, elseExpr, _, _, range, _) -> let checkThen = checkExpression thenExpr range match elseExpr with @@ -51,7 +51,7 @@ let rec checkExpression (expression: SynExpr) (range: range) = |> Array.singleton | SynExpr.App (_, _, funcExpr, _, range) -> checkExpression funcExpr range - | SynExpr.LetOrUse (_, _, _, body, range) -> + | SynExpr.LetOrUse (_, _, _, body, range, _) -> checkExpression body range | _ -> Array.empty @@ -60,7 +60,7 @@ let runner args = match args.AstNode with | AstNode.Expression ( - SynExpr.App (_, _, (SynExpr.Ident compExprName), (SynExpr.CompExpr (_, _, innerExpression, _)), range) + SynExpr.App (_, _, (SynExpr.Ident compExprName), (SynExpr.ComputationExpr (_, innerExpression, _)), range) ) when compExprName.idText = "async" -> checkExpression innerExpression range | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/AvoidSinglePipeOperator.fs b/src/FSharpLint.Core/Rules/Conventions/AvoidSinglePipeOperator.fs index 109bd8180..27520f276 100644 --- a/src/FSharpLint.Core/Rules/Conventions/AvoidSinglePipeOperator.fs +++ b/src/FSharpLint.Core/Rules/Conventions/AvoidSinglePipeOperator.fs @@ -19,13 +19,13 @@ let runner (args: AstNodeRuleParams) = let error = match args.AstNode with - | AstNode.Binding (SynBinding(_synAcc, _synBinding, _mustInline, _isMut, _synAttribs, _preXmlDoc, _synValData, _headPat, _synBindingRet, synExpr, _range, _debugPointAtBinding)) -> + | AstNode.Binding (SynBinding(_synAcc, _synBinding, _mustInline, _isMut, _synAttribs, _preXmlDoc, _synValData, _headPat, _synBindingRet, synExpr, _range, _debugPointAtBinding, _)) -> match synExpr with | SynExpr.App(_exprAtomicFlag, _isInfix, funcExpr, _argExpr, _range) -> match funcExpr with | SynExpr.App(_exprAtomicFlag, _isInfix, funcExpr, argExpr, range) -> match funcExpr with - | SynExpr.Ident ident -> + | ExpressionUtilities.Identifier([ ident ], _) -> if ident.idText = "op_PipeRight" then match argExpr with | SynExpr.App(_exprAtomicFlag, _isInfix, _funcExpr, _argExpr, _range) -> diff --git a/src/FSharpLint.Core/Rules/Conventions/AvoidTooShortNames.fs b/src/FSharpLint.Core/Rules/Conventions/AvoidTooShortNames.fs index 083fb72aa..00de53df2 100644 --- a/src/FSharpLint.Core/Rules/Conventions/AvoidTooShortNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/AvoidTooShortNames.fs @@ -30,7 +30,7 @@ let private checkIdentifier (identifier:Ident) (idText:string) = let private getParameterWithBelowMinimumLength (pats: SynPat list): (Ident * string * (unit -> bool) option) array = let rec loop patArray acc = match patArray with - | SynPat.Named(_, ident, _, _, _)::tail -> + | SynPat.Named(SynIdent(ident, _), _, _, _)::tail -> if isIdentifierTooShort ident.idText then Array.singleton (ident, ident.idText, None) |> Array.append acc |> loop tail else @@ -51,13 +51,13 @@ let private getParameterWithBelowMinimumLength (pats: SynPat list): (Ident * str let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Expression(SynExpr.LetOrUseBang(_, _, _, pat, _, _, _, _)) -> + | AstNode.Expression(SynExpr.LetOrUseBang(_, _, _, pat, _, _, _, _, _)) -> getParameterWithBelowMinimumLength [pat] - | AstNode.Match(SynMatchClause(namePattern, _, _, _, _)) -> + | AstNode.Match(SynMatchClause(namePattern, _, _, _, _, _)) -> getParameterWithBelowMinimumLength [namePattern] - | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, _, _, _)) -> match pattern with - | SynPat.LongIdent(LongIdentWithDots(identifiers, _),_, _, SynArgPats.Pats(names), _, _) -> + | SynPat.LongIdent(SynLongIdent(identifiers, _, _),_, _, SynArgPats.Pats(names), _, _) -> match identifiers with | head::_ -> let result: (Ident * string * (unit -> bool) option) array = getParameterWithBelowMinimumLength names @@ -66,12 +66,12 @@ let private getIdentifiers (args:AstNodeRuleParams) = else result | _ -> Array.empty - | SynPat.Named(_, identifier, _, _, _) when isIdentifierTooShort identifier.idText -> + | SynPat.Named(SynIdent(identifier, _), _, _, _) when isIdentifierTooShort identifier.idText -> (identifier, identifier.idText, None) |> Array.singleton | _ -> Array.empty | AstNode.Field(SynField(_, _, Some identifier, _, _, _, _, _)) when isIdentifierTooShort identifier.idText -> (identifier, identifier.idText, None) |> Array.singleton - | AstNode.TypeDefinition(SynTypeDefn(componentInfo, _typeDef, _, _, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(componentInfo, _typeDef, _, _, _, _)) -> let checkTypes types = seq { for SynTyparDecl(_attr, SynTypar(id, _, _)) in types do @@ -80,8 +80,10 @@ let private getIdentifiers (args:AstNodeRuleParams) = } match componentInfo with - | SynComponentInfo(_attrs, types, _, _identifier, _, _, _, _) -> - checkTypes types |> Array.ofSeq + | SynComponentInfo(_attrs, maybeTypes, _, _identifier, _, _, _, _) -> + match maybeTypes with + | Some types -> checkTypes types.TyparDecls |> Array.ofSeq + | None -> Array.empty | AstNode.Type(SynType.Var(SynTypar(id, _, _), _)) when isIdentifierTooShort id.idText -> (id, id.idText, None) |> Array.singleton | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/BindingHelper.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/BindingHelper.fs index dc4a0b29a..77125bb3f 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/BindingHelper.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/BindingHelper.fs @@ -8,6 +8,6 @@ let isLetBinding i (syntaxArray:AbstractSyntaxArray.Node []) = if i > 0 then match syntaxArray.[syntaxArray.[i].ParentIndex].Actual with | AstNode.ModuleDeclaration(SynModuleDecl.Let(_)) - | AstNode.Expression(SynExpr.LetOrUse(_, false, _, _, _)) -> true + | AstNode.Expression(SynExpr.LetOrUse(_, false, _, _, _, _)) -> true | _ -> false else false diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/FavourIgnoreOverLetWild.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/FavourIgnoreOverLetWild.fs index 1b7db68f5..64e09d5c0 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/FavourIgnoreOverLetWild.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/FavourIgnoreOverLetWild.fs @@ -23,7 +23,7 @@ let private checkForBindingToAWildcard pattern range = let private runner (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, range, _)) + | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, range, _, _)) when Helper.Binding.isLetBinding args.NodeIndex args.SyntaxArray -> checkForBindingToAWildcard pattern range | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/TupleOfWildcards.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/TupleOfWildcards.fs index 7ade102e6..2fc6757b1 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/TupleOfWildcards.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/TupleOfWildcards.fs @@ -30,7 +30,7 @@ let private checkTupleOfWildcards pattern identifier = let private isTupleMemberArgs breadcrumbs tupleRange = let (|MemberBindingArgs|_|) bindingPattern = match bindingPattern with - | SynBinding(_, _, _, _, _, _, _, SynPat.LongIdent(_, _, _, args, _, _), _, _, _, _) -> + | SynBinding(_, _, _, _, _, _, _, SynPat.LongIdent(_, _, _, args, _, _), _, _, _, _, _) -> match args with | SynArgPats.Pats([SynPat.Paren(SynPat.Tuple(_) as args, _)]) -> Some(args) | _ -> None @@ -47,7 +47,7 @@ let private runner (args:AstNodeRuleParams) = | AstNode.Pattern(SynPat.LongIdent(identifier, _, _, SynArgPats.Pats([SynPat.Paren(SynPat.Tuple(_, _, range) as pattern, _)]), _, _)) -> let breadcrumbs = args.GetParents 2 if (not << isTupleMemberArgs breadcrumbs) range then - let identifier = identifier.Lid |> List.map (fun x -> x.idText) + let identifier = identifier.LongIdent |> List.map (fun x -> x.idText) checkTupleOfWildcards pattern identifier else Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs index 57b87b4ce..fa9538617 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/UselessBinding.fs @@ -14,7 +14,7 @@ let private checkForUselessBinding (checkInfo:FSharpCheckFileResults option) pat | Some checkInfo -> let rec findBindingIdentifier = function | SynPat.Paren(pattern, _) -> findBindingIdentifier pattern - | SynPat.Named(_, ident, _, _, _) -> Some(ident) + | SynPat.Named(SynIdent(ident, _), _, _, _) -> Some(ident) | _ -> None let isNotMutable (symbol:FSharpSymbolUse) = @@ -49,7 +49,7 @@ let private checkForUselessBinding (checkInfo:FSharpCheckFileResults option) pat let private runner (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, isMutable, _, _, _, pattern, _, expr, range, _)) + | AstNode.Binding(SynBinding(_, _, _, isMutable, _, _, _, pattern, _, expr, range, _, _)) when Helper.Binding.isLetBinding args.NodeIndex args.SyntaxArray && not isMutable -> checkForUselessBinding args.CheckInfo pattern expr range diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs index 9a24707b0..92d6e23aa 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs @@ -9,7 +9,7 @@ open FSharpLint.Framework.Rules let private checkForWildcardNamedWithAsPattern pattern = match pattern with - | SynPat.Named(SynPat.Wild(wildcardRange), _, _, _, range) when wildcardRange <> range -> + | SynPat.Wild(range) -> { Range = range Message = Resources.GetString("RulesWildcardNamedWithAsPattern") SuggestedFix = None @@ -18,7 +18,7 @@ let private checkForWildcardNamedWithAsPattern pattern = let private runner (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Pattern(SynPat.Named(SynPat.Wild(_), _, _, _, _) as pattern) -> + | AstNode.Pattern(SynPat.Wild(_) as pattern) -> checkForWildcardNamedWithAsPattern pattern | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/CyclomaticComplexity.fs b/src/FSharpLint.Core/Rules/Conventions/CyclomaticComplexity.fs index 4ff08383f..99c307280 100644 --- a/src/FSharpLint.Core/Rules/Conventions/CyclomaticComplexity.fs +++ b/src/FSharpLint.Core/Rules/Conventions/CyclomaticComplexity.fs @@ -96,12 +96,12 @@ let private countCasesInMatchClause (clause: SynMatchClause) = let rec countCases (pat: SynPat) (count: int) = let mutable localSoFar = count + 1 match pat with - | SynPat.Or (lhs, _, _) -> + | SynPat.Or (lhs, _, _, _) -> countCases lhs localSoFar | _ -> localSoFar // apply countCases to the given clause. match clause with - | SynMatchClause(pat, _, _, _, _) -> countCases pat 0 + | SynMatchClause(pat, _, _, _, _, _) -> countCases pat 0 /// Boolean operator functions. let private boolFunctions = Set.ofList ["op_BooleanOr"; "op_BooleanAnd"] @@ -122,18 +122,18 @@ let private countBooleanOperators expression = count + left + right | SynExpr.Paren(expr, _, _, _) -> countOperators count expr - | SynExpr.Ident ident -> + | ExpressionUtilities.Identifier([ ident ], _) -> if Set.contains ident.idText boolFunctions then count + 1 else count // in match and match-like expressions, consider the when expressions of any clauses - | SynExpr.MatchBang(_, _, clauses, _) + | SynExpr.MatchBang(_, _, clauses, _, _) | SynExpr.MatchLambda(_, _, clauses, _, _) - | SynExpr.Match(_, _, clauses, _) -> + | SynExpr.Match(_, _, clauses, _, _) -> clauses |> List.sumBy (fun c -> match c with - | SynMatchClause(_, whenExprOpt, _, _, _) -> + | SynMatchClause(_, whenExprOpt, _, _, _, _) -> match whenExprOpt with | Some whenExpr -> countOperators 0 whenExpr @@ -178,9 +178,9 @@ let runner (config:Config) (args:AstNodeRuleParams) : WarningDetails[] = bindingStack.IncrComplexityOfCurrentScope (1 + countBooleanOperators condition) // include the number of boolean operators in the while condition | SynExpr.IfThenElse(condition, _, _, _, _, _, _) -> bindingStack.IncrComplexityOfCurrentScope (1 + countBooleanOperators condition) // include the number of boolean operators in the condition - | SynExpr.MatchBang(_, _, clauses, _) + | SynExpr.MatchBang(_, _, clauses, _, _) | SynExpr.MatchLambda(_, _, clauses, _, _) - | SynExpr.Match(_, _, clauses, _) -> + | SynExpr.Match(_, _, clauses, _, _) -> let numCases = clauses |> List.sumBy countCasesInMatchClause // determine the number of cases in the match expression bindingStack.IncrComplexityOfCurrentScope (numCases + countBooleanOperators expression) // include the number of boolean operators in any when expressions, if applicable | _ -> () diff --git a/src/FSharpLint.Core/Rules/Conventions/FavourConsistentThis.fs b/src/FSharpLint.Core/Rules/Conventions/FavourConsistentThis.fs index a4ee220ec..7897493ee 100644 --- a/src/FSharpLint.Core/Rules/Conventions/FavourConsistentThis.fs +++ b/src/FSharpLint.Core/Rules/Conventions/FavourConsistentThis.fs @@ -18,9 +18,9 @@ let internal isNotConsistent identifier symbol = let runner (config: Config) args = let symbol = config.Symbol match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, range, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, _, pattern, _, _, range, _, _)) -> match pattern with - | SynPat.LongIdent(LongIdentWithDots(identifiers, _),_, _, _, _, _) -> + | SynPat.LongIdent(SynLongIdent(identifiers, _, _), _, _, _, _, _) -> if identifiers.Length = 2 then match identifiers with | head::_ when isNotConsistent head.idText symbol -> diff --git a/src/FSharpLint.Core/Rules/Conventions/FavourReRaise.fs b/src/FSharpLint.Core/Rules/Conventions/FavourReRaise.fs index 115e9159f..d08375f4c 100644 --- a/src/FSharpLint.Core/Rules/Conventions/FavourReRaise.fs +++ b/src/FSharpLint.Core/Rules/Conventions/FavourReRaise.fs @@ -24,16 +24,16 @@ let private runner (args: AstNodeRuleParams) = | Some id when id = ident.idText -> generateError range | _ -> Array.empty - | SynExpr.LongIdent (_, LongIdentWithDots (id, _), _, range) -> generateError range + | SynExpr.LongIdent (_, SynLongIdent (id, _, _), _, range) -> generateError range | _ -> Array.empty - | SynExpr.TryWith (expressions, _, clauseList, _expression, _range, _, _) as expr -> + | SynExpr.TryWith (expressions, clauseList, _range, _, _, _) as expr -> clauseList |> List.toArray |> Array.collect (fun clause -> match clause with - | SynMatchClause (pat, _, app, _, _) -> + | SynMatchClause (pat, _, app, _, _, _) -> match pat with - | SynPat.Named (_, id, _, _, _) -> checkExpr app (Some id.idText) + | SynPat.Named (SynIdent(id, _), _, _, _) -> checkExpr app (Some id.idText) | _ -> checkExpr app None) | SynExpr.IfThenElse (_, expr, _, _, _, _, _) -> checkExpr expr maybeIdent | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs b/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs index 231f02686..a4faa6e22 100644 --- a/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/FunctionReimplementation/ReimplementsFunction.fs @@ -24,7 +24,11 @@ let private validateLambdaIsNotPointless (text:string) lambda range = let generateError (identifier:LongIdent) = let identifier = identifier - |> List.map (fun x -> PrettyNaming.DemangleOperatorName x.idText) + |> List.map (fun x -> + if PrettyNaming.IsMangledOpName x.idText then + PrettyNaming.DecompileOpName x.idText |> sprintf "( %s )" + else + x.idText) |> String.concat "." let suggestedFix = lazy( diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/ActivePatternNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/ActivePatternNames.fs index 6cebf0a63..c53bde0c7 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/ActivePatternNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/ActivePatternNames.fs @@ -9,12 +9,12 @@ open FSharpLint.Rules.Helper.Naming let private getValueOrFunctionIdents _ pattern = match pattern with | SynPat.LongIdent(longIdent, _, _, _, _, _) -> - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some ident when isActivePattern ident -> ident |> Array.singleton | _ -> Array.empty - | SynPat.Named(_, ident, _, _, _) + | SynPat.Named(SynIdent(ident, _), _, _, _) | SynPat.OptionalVal(ident, _) -> if isActivePattern ident then ident |> Array.singleton @@ -24,9 +24,9 @@ let private getValueOrFunctionIdents _ pattern = let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Expression(SynExpr.ForEach(_, _, true, pattern, _, _, _)) -> + | AstNode.Expression(SynExpr.ForEach(_, _, _, true, pattern, _, _, _)) -> getPatternIdents AccessControlLevel.Private getValueOrFunctionIdents false pattern - | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> if not (isLiteral attributes) then match identifierTypeFromValData valData with | Value | Function -> diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/EnumCasesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/EnumCasesNames.fs index 8f0c91928..a4252b9e7 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/EnumCasesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/EnumCasesNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.EnumCase(SynEnumCase(_, identifier, _, _, _, _)) -> + | AstNode.EnumCase(SynEnumCase(_, SynIdent(identifier, _), _, _, _, _, _)) -> (identifier, identifier.idText, None) |> Array.singleton | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/ExceptionNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/ExceptionNames.fs index 85dc25e84..3c7531ef0 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/ExceptionNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/ExceptionNames.fs @@ -9,7 +9,7 @@ let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with | AstNode.ExceptionRepresentation(SynExceptionDefnRepr.SynExceptionDefnRepr(_, unionCase, _, _, _, _)) -> match unionCase with - | SynUnionCase(_, identifier, _, _, _, _) -> + | SynUnionCase(_, SynIdent(identifier, _), _, _, _, _, _) -> (identifier, identifier.idText, None) |> Array.singleton | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/GenericTypesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/GenericTypesNames.fs index 23d0be791..d67553ef3 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/GenericTypesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/GenericTypesNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args: AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(componentInfo, _typeDef, _, _, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(componentInfo, _typeDef, _, _, _, _)) -> let checkTypes types = seq { for SynTyparDecl(_attr, SynTypar(id, _, _)) in types do @@ -15,8 +15,10 @@ let private getIdentifiers (args: AstNodeRuleParams) = } match componentInfo with - | SynComponentInfo(_attrs, types, _, _identifier, _, _, _, _) -> - checkTypes types |> Array.ofSeq + | SynComponentInfo(_attrs, maybeTypes, _, _identifier, _, _, _, _) -> + match maybeTypes with + | Some types -> checkTypes types.TyparDecls |> Array.ofSeq + | None -> Array.empty | AstNode.Type(SynType.Var(SynTypar(id, _, _), _)) -> (id, id.idText, None) |> Array.singleton | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/InterfaceNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/InterfaceNames.fs index 5447fc301..831b4eff2 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/InterfaceNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/InterfaceNames.fs @@ -7,10 +7,10 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _, _)) -> let isNotTypeExtension = match typeDef with - | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation, _, _) -> false + | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation(_), _, _) -> false | _ -> true if isNotTypeExtension then diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/InternalValuesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/InternalValuesNames.fs index 32545ce11..7fd9872f1 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/InternalValuesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/InternalValuesNames.fs @@ -15,9 +15,9 @@ let private getValueOrFunctionIdents typeChecker accessControlLevel pattern = match pattern with | SynPat.LongIdent(longIdent, _, _, _, _, _) -> // If a pattern identifier is made up of more than one part then it's not binding a new value. - let singleIdentifier = List.length longIdent.Lid = 1 + let singleIdentifier = List.length longIdent.LongIdent = 1 - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some ident when not (isActivePattern ident) && singleIdentifier -> let checkNotUnionCase = checkNotUnionCase ident if accessControlLevel = AccessControlLevel.Internal then @@ -30,7 +30,7 @@ let private getValueOrFunctionIdents typeChecker accessControlLevel pattern = let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> if not (isLiteral attributes) then match identifierTypeFromValData valData with | Value | Function -> diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/LiteralNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/LiteralNames.fs index e9db7ac6a..73e6da84a 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/LiteralNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/LiteralNames.fs @@ -7,10 +7,10 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, _, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, _, pattern, _, _, _, _, _)) -> if isLiteral attributes then let rec getLiteralIdents = function - | SynPat.Named(_, identifier, _, _, _) -> + | SynPat.Named(SynIdent(identifier, _), _, _, _) -> (identifier, identifier.idText, None) |> Array.singleton | SynPat.Paren(p, _) -> getLiteralIdents p | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/MeasureTypeNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/MeasureTypeNames.fs index 0de7458d5..f4dd87ac7 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/MeasureTypeNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/MeasureTypeNames.fs @@ -7,10 +7,10 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _, _)) -> let isNotTypeExtension = match typeDef with - | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation, _, _) -> false + | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation(_), _, _) -> false | _ -> true if isNotTypeExtension then diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs index 2aa30be43..486de1b1c 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/MemberNames.fs @@ -8,7 +8,7 @@ open FSharpLint.Rules.Helper.Naming let private getMemberIdents _ = function | SynPat.LongIdent(longIdent, _, _, _, _, _) -> - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some(ident) when ident.idText.StartsWith "op_" -> // Ignore members prefixed with op_, they are a special case used for operator overloading. Array.empty @@ -24,7 +24,7 @@ let private isImplementingInterface parents = let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> let parents = args.GetParents 3 if not (isLiteral attributes) && not (isImplementingInterface parents) then match identifierTypeFromValData valData with @@ -35,7 +35,7 @@ let private getIdentifiers (args:AstNodeRuleParams) = Array.empty | AstNode.MemberDefinition(memberDef) -> match memberDef with - | SynMemberDefn.AbstractSlot(SynValSig(_, identifier, _, _, _, _, _, _, _, _, _), _, _) -> + | SynMemberDefn.AbstractSlot(SynValSig(_, SynIdent(identifier, _), _, _, _, _, _, _, _, _, _, _), _, _) -> (identifier, identifier.idText, None) |> Array.singleton | _ -> Array.empty | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/ModuleNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/ModuleNames.fs index 85407ed86..116e625d1 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/ModuleNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/ModuleNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(identifier, _, moduleKind, _, _, _, _, _) as synModule) -> + | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(identifier, _, moduleKind, _, _, _, _, _, _) as synModule) -> if not (isImplicitModule synModule) && isModule moduleKind then identifier |> List.map (fun identifier -> (identifier, identifier.idText, None)) diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/NamespaceNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/NamespaceNames.fs index 82deeda58..98b0faf73 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/NamespaceNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/NamespaceNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(identifier, _, moduleKind, _, _, _, _, _) as synModule) -> + | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(identifier, _, moduleKind, _, _, _, _, _, _) as synModule) -> if not (isImplicitModule synModule) && not (isModule moduleKind) then identifier |> List.map (fun identifier -> (identifier, identifier.idText, None)) diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs index c1e0f5767..86ca113a4 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/NamingHelper.fs @@ -191,9 +191,9 @@ type AccessControlLevel = let getAccessControlLevel (syntaxArray:AbstractSyntaxArray.Node []) i = let resolveAccessControlLevel = function - | Some(SynAccess.Public) | None -> AccessControlLevel.Public - | Some(SynAccess.Private) -> AccessControlLevel.Private - | Some(SynAccess.Internal) -> AccessControlLevel.Internal + | Some(SynAccess.Public _) | None -> AccessControlLevel.Public + | Some(SynAccess.Private _) -> AccessControlLevel.Private + | Some(SynAccess.Internal _) -> AccessControlLevel.Internal let rec getAccessibility state isPrivateWhenReachedBinding i = if i = 0 then state @@ -202,12 +202,12 @@ let getAccessControlLevel (syntaxArray:AbstractSyntaxArray.Node []) i = match node.Actual with | TypeSimpleRepresentation(SynTypeDefnSimpleRepr.Record(access, _, _)) | TypeSimpleRepresentation(SynTypeDefnSimpleRepr.Union(access, _, _)) - | UnionCase(SynUnionCase(_, _, _, _, access, _)) + | UnionCase(SynUnionCase(_, _, _, _, access, _, _)) | Field(SynField(_, _, _, _, _, _, access, _)) | ComponentInfo(SynComponentInfo(_, _, _, _, _, _, access, _)) - | ModuleOrNamespace (SynModuleOrNamespace.SynModuleOrNamespace(_, _, _, _, _, _, access, _)) + | ModuleOrNamespace (SynModuleOrNamespace.SynModuleOrNamespace(_, _, _, _, _, _, access, _, _)) | ExceptionRepresentation(SynExceptionDefnRepr.SynExceptionDefnRepr(_, _, _, _, access, _)) - | Pattern(SynPat.Named(_, _, _, access, _)) + | Pattern(SynPat.Named(_, _, access, _)) | Pattern(SynPat.LongIdent(_, _, _, _, access, _)) -> getAccessibility (resolveAccessControlLevel access) isPrivateWhenReachedBinding node.ParentIndex | TypeSimpleRepresentation(_) @@ -215,7 +215,7 @@ let getAccessControlLevel (syntaxArray:AbstractSyntaxArray.Node []) i = | MemberDefinition(_) -> if isPrivateWhenReachedBinding then AccessControlLevel.Private else getAccessibility state isPrivateWhenReachedBinding node.ParentIndex - | Binding(SynBinding(access, _, _, _, _, _, _, _, _, _, _, _)) -> + | Binding(SynBinding(access, _, _, _, _, _, _, _, _, _, _, _, _)) -> if isPrivateWhenReachedBinding then AccessControlLevel.Private else getAccessibility (resolveAccessControlLevel access) true node.ParentIndex | EnumCase(_) @@ -245,7 +245,7 @@ let isAttribute name (attributes:SynAttributes) = let fullName = name + "Attribute" let attributeHasExpectedName (attribute:SynAttribute) = - match List.tryLast attribute.TypeName.Lid with + match List.tryLast attribute.TypeName.LongIdent with | Some(ident) -> ident.idText = fullName || ident.idText = name | None -> false @@ -286,9 +286,9 @@ let isInterface typeDef = | _ -> false let checkAccessibility currentAccessibility = function - | Some(SynAccess.Public) | None -> currentAccessibility - | Some(SynAccess.Private) -> AccessControlLevel.Private - | Some(SynAccess.Internal) -> AccessControlLevel.Internal + | Some(SynAccess.Public _) | None -> currentAccessibility + | Some(SynAccess.Private _) -> AccessControlLevel.Private + | Some(SynAccess.Internal _) -> AccessControlLevel.Internal let isModule (moduleKind:SynModuleOrNamespaceKind) = match moduleKind with @@ -298,7 +298,7 @@ let isModule (moduleKind:SynModuleOrNamespaceKind) = | SynModuleOrNamespaceKind.GlobalNamespace -> false /// Is module name implicitly created from file name? -let isImplicitModule (SynModuleOrNamespace.SynModuleOrNamespace(longIdent, _, moduleKind, _, _, _, _, range)) = +let isImplicitModule (SynModuleOrNamespace.SynModuleOrNamespace(longIdent, _, moduleKind, _, _, _, _, range, _)) = let zeroLengthRange (r:Range) = (r.EndColumn - r.StartColumn) = 0 && r.StartLine = r.EndLine @@ -326,7 +326,7 @@ let rec getPatternIdents<'T> (accessibility:AccessControlLevel) (getIdents:GetId | SynArgPats.NamePatPairs(pats, _) -> pats |> List.toArray - |> Array.collect (snd >> getPatternIdents AccessControlLevel.Private getIdents false) + |> Array.collect (fun(_, _, synPat) -> getPatternIdents AccessControlLevel.Private getIdents false synPat) | SynArgPats.Pats(pats) -> pats |> List.toArray @@ -338,11 +338,10 @@ let rec getPatternIdents<'T> (accessibility:AccessControlLevel) (getIdents:GetId |> Array.append argSuggestions else argSuggestions - | SynPat.Named(p, _, _, access, _) -> + | SynPat.Named(_, _, access, _) -> let accessibility = checkAccessibility accessibility access getIdents accessibility pattern - |> Array.append (getPatternIdents accessibility getIdents false p) - | SynPat.Or(p1, p2, _) -> + | SynPat.Or(p1, p2, _, _) -> [|p1; p2|] |> Array.collect (getPatternIdents accessibility getIdents false) | SynPat.Paren(p, _) -> @@ -363,6 +362,7 @@ let rec getPatternIdents<'T> (accessibility:AccessControlLevel) (getIdents:GetId | SynPat.Wild(_) | SynPat.OptionalVal(_) | SynPat.DeprecatedCharRange(_) | SynPat.InstanceMember(_) | SynPat.FromParseError(_) -> Array.empty + | SynPat.As(_) -> failwith "Not implemented" let rec identFromSimplePat = function | SynSimplePat.Id(ident, _, _, _, _, _) -> Some ident @@ -380,7 +380,7 @@ let rec isNested args nodeIndex = let getFunctionIdents (pattern:SynPat) = match pattern with | SynPat.LongIdent (longIdent, _, _, SynArgPats.Pats _, _, _) -> - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some ident -> (ident, ident.idText, None) |> Array.singleton | None -> Array.empty | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/NestedFunctionNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/NestedFunctionNames.fs index c00764b61..4a1b1bc07 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/NestedFunctionNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/NestedFunctionNames.fs @@ -8,7 +8,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args: AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding (SynBinding (_, _, _, _, _attributes, _, _, pattern, _, _, _, _)) -> + | AstNode.Binding (SynBinding (_, _, _, _, _attributes, _, _, pattern, _, _, _, _, _)) -> if isNested args args.NodeIndex then let maxAccessibility = AccessControlLevel.Public getPatternIdents maxAccessibility (fun _a11y innerPattern -> getFunctionIdents innerPattern) true pattern diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs index 1a0e398a8..b5a5c6297 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/ParameterNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules open FSharpLint.Rules.Helper.Naming let private getMemberIdents _ = function - | SynPat.Named(_, ident, _, _, _) + | SynPat.Named(SynIdent(ident, _), _, _, _) | SynPat.OptionalVal(ident, _) -> (ident, ident.idText, None) |> Array.singleton | _ -> Array.empty @@ -19,7 +19,7 @@ let private getValueOrFunctionIdents typeChecker _accessibility pattern = |> Option.defaultValue true match pattern with - | SynPat.Named(_, ident, _, _, _) + | SynPat.Named(SynIdent(ident, _), _, _, _) | SynPat.OptionalVal(ident, _) when not (isActivePattern ident) -> let checkNotUnionCase = checkNotUnionCase ident (ident, ident.idText, Some checkNotUnionCase) |> Array.singleton @@ -36,7 +36,7 @@ let private getIdentifiers (args:AstNodeRuleParams) = |> Array.choose identFromSimplePat |> Array.map (fun ident -> (ident, ident.idText, None)) | _ -> Array.empty - | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> if not (isLiteral attributes) then match identifierTypeFromValData valData with | Value | Function -> @@ -47,7 +47,7 @@ let private getIdentifiers (args:AstNodeRuleParams) = | _ -> Array.empty else Array.empty - | AstNode.Expression(SynExpr.ForEach(_, _, true, pattern, _, _, _)) -> + | AstNode.Expression(SynExpr.ForEach(_, _, _, true, pattern, _, _, _)) -> getPatternIdents AccessControlLevel.Private (getValueOrFunctionIdents args.CheckInfo) false pattern | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/PrivateValuesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/PrivateValuesNames.fs index 60d4e29ec..7dc808e5a 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/PrivateValuesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/PrivateValuesNames.fs @@ -15,9 +15,9 @@ let private getValueOrFunctionIdents typeChecker accessibility pattern = match pattern with | SynPat.LongIdent(longIdent, _, _, _, _, _) -> // If a pattern identifier is made up of more than one part then it's not binding a new value. - let singleIdentifier = List.length longIdent.Lid = 1 + let singleIdentifier = List.length longIdent.LongIdent = 1 - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some ident when not (isActivePattern ident) && singleIdentifier -> let checkNotUnionCase = checkNotUnionCase ident if accessibility = AccessControlLevel.Private then @@ -30,9 +30,9 @@ let private getValueOrFunctionIdents typeChecker accessibility pattern = let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Expression(SynExpr.ForEach(_, _, true, pattern, _, _, _)) -> + | AstNode.Expression(SynExpr.ForEach(_, _, _, true, pattern, _, _, _)) -> getPatternIdents AccessControlLevel.Private (getValueOrFunctionIdents args.CheckInfo) false pattern - | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(access, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> if not (isLiteral attributes) then match identifierTypeFromValData valData with | Value | Function -> @@ -41,12 +41,14 @@ let private getIdentifiers (args:AstNodeRuleParams) = | _ -> Array.empty else Array.empty - | AstNode.Expression(SynExpr.For(_, identifier, _, _, _, _, _)) -> + | AstNode.Expression(SynExpr.For(_, _, identifier, _, _, _, _, _, _)) -> (identifier, identifier.idText, None) |> Array.singleton - | AstNode.Match(SynMatchClause(pattern, _, _, _, _)) -> + | AstNode.Match(SynMatchClause(pattern, _, _, _, _, _)) -> match pattern with - | SynPat.Named(_, identifier, isThis, _, _) when not isThis -> + | SynPat.Named(SynIdent(identifier, _), isThis, _, _) when not isThis -> (identifier, identifier.idText, None) |> Array.singleton + | SynPat.As(_lshPat, rhsPat, _) -> + getPatternIdents AccessControlLevel.Private (getValueOrFunctionIdents args.CheckInfo) false rhsPat | _ -> Array.empty | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs index bccb9a465..64166e1b1 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/PublicValuesNames.fs @@ -19,9 +19,9 @@ let private getValueOrFunctionIdents typeChecker accessControlLevel pattern = match pattern with | SynPat.LongIdent(longIdent, _, _, _, _, _) -> // If a pattern identifier is made up of more than one part then it's not binding a new value. - let singleIdentifier = List.length longIdent.Lid = 1 + let singleIdentifier = List.length longIdent.LongIdent = 1 - match List.tryLast longIdent.Lid with + match List.tryLast longIdent.LongIdent with | Some ident when singleIdentifier -> let checkNotUnionCase = checkNotUnionCase ident if accessControlLevel = AccessControlLevel.Public && isNotActivePattern ident then @@ -34,9 +34,9 @@ let private getValueOrFunctionIdents typeChecker accessControlLevel pattern = let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Expression(SynExpr.ForEach(_, _, true, pattern, _, _, _)) -> + | AstNode.Expression(SynExpr.ForEach(_, _, _, true, pattern, _, _, _)) -> getPatternIdents AccessControlLevel.Private (getValueOrFunctionIdents args.CheckInfo) false pattern - | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _)) -> + | AstNode.Binding(SynBinding(_, _, _, _, attributes, _, valData, pattern, _, _, _, _, _)) -> if not (isLiteral attributes || isExtern attributes) then match identifierTypeFromValData valData with | Value | Function -> diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/TypeNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/TypeNames.fs index 192524cf2..b2499429a 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/TypeNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/TypeNames.fs @@ -7,10 +7,10 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(componentInfo, typeDef, _, _, _, _)) -> let isNotTypeExtension = match typeDef with - | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation, _, _) -> false + | SynTypeDefnRepr.ObjectModel(SynTypeDefnKind.Augmentation(_), _, _) -> false | _ -> true if isNotTypeExtension then diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/UnionCasesNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/UnionCasesNames.fs index 42861eaee..a34e3e92b 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/UnionCasesNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/UnionCasesNames.fs @@ -7,7 +7,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.UnionCase(SynUnionCase(_, identifier, _, _, _, _)) -> + | AstNode.UnionCase(SynUnionCase(_, SynIdent(identifier, _), _, _, _, _, _)) -> (identifier, identifier.idText, None) |> Array.singleton | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/Naming/UnnestedFunctionNames.fs b/src/FSharpLint.Core/Rules/Conventions/Naming/UnnestedFunctionNames.fs index e99d5fdb5..051f55781 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Naming/UnnestedFunctionNames.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Naming/UnnestedFunctionNames.fs @@ -8,7 +8,7 @@ open FSharpLint.Rules.Helper.Naming let private getIdentifiers (args: AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding (SynBinding (_, _, _, _, _attributes, _, _, pattern, _, _, _, _)) -> + | AstNode.Binding (SynBinding (_, _, _, _, _attributes, _, _, pattern, _, _, _, _,_)) -> if isNested args args.NodeIndex then Array.empty else diff --git a/src/FSharpLint.Core/Rules/Conventions/NestedStatements.fs b/src/FSharpLint.Core/Rules/Conventions/NestedStatements.fs index d6d2298bb..a1c0ba89b 100644 --- a/src/FSharpLint.Core/Rules/Conventions/NestedStatements.fs +++ b/src/FSharpLint.Core/Rules/Conventions/NestedStatements.fs @@ -18,7 +18,7 @@ let private error (depth:int) = /// e.g. fun _ -> () is represented in the AST as fun _arg1 -> match _arg1 with | _ -> (). /// This function returns true if the given match statement is compiler generated for a lambda wildcard argument. let private isCompilerGeneratedMatch = function - | SynExpr.Match(_, SynExpr.Ident(ident), _, _) when ident.idText.StartsWith("_arg") -> true + | SynExpr.Match(_, SynExpr.Ident(ident), _, _, _) when ident.idText.StartsWith("_arg") -> true | _ -> false let private areChildrenNested = function diff --git a/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfBooleanOperatorsInCondition.fs b/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfBooleanOperatorsInCondition.fs index e463e3f06..7b45cd4d0 100644 --- a/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfBooleanOperatorsInCondition.fs +++ b/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfBooleanOperatorsInCondition.fs @@ -24,7 +24,7 @@ let private validateCondition (maxBooleanOperators:int) condition = total + left + right | SynExpr.Paren(expr, _, _, _) -> countBooleanOperators total expr - | SynExpr.Ident ident -> + | ExpressionUtilities.Identifier([ ident ], _) -> if Set.contains ident.idText boolFunctions then total + 1 else @@ -52,7 +52,7 @@ let private runner (config:Helper.NumberOfItems.Config) (args:AstNodeRuleParams) | SynExpr.Assert(condition, _) -> validateCondition config.MaxItems condition | _ -> Array.empty - | AstNode.Match(SynMatchClause(_, Some(whenExpr), _, _, _)) -> + | AstNode.Match(SynMatchClause(_, Some(whenExpr), _, _, _, _)) -> validateCondition config.MaxItems whenExpr | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfMembers.fs b/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfMembers.fs index 2faaced9c..4a01efa30 100644 --- a/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfMembers.fs +++ b/src/FSharpLint.Core/Rules/Conventions/NumberOfItems/MaxNumberOfMembers.fs @@ -9,13 +9,13 @@ open FSharpLint.Framework.Rules let private getMembers (members:SynMemberDefn list) = let isPublic = function - | Some(SynAccess.Public) | None -> true + | Some(SynAccess.Public(_)) | None -> true | Some(_) -> false let isPublicMember = function | SynMemberDefn.AbstractSlot(_) -> true - | SynMemberDefn.Member(SynBinding(access, _, _, _, _, _, _, _, _, _, _, _), _) - | SynMemberDefn.AutoProperty(_, _, _, _, _, _, _, access, _, _, _) -> isPublic access + | SynMemberDefn.Member(SynBinding(access, _, _, _, _, _, _, _, _, _, _, _, _), _) + | SynMemberDefn.AutoProperty(_, _, _, _, _, _, _, access, _, _, _, _, _) -> isPublic access | _ -> false members @@ -37,7 +37,7 @@ let private validateType (maxMembers:int) members typeRepresentation = let private runner (config:Helper.NumberOfItems.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(_, typeRepresentation, members, implicitCtor, _)) -> + | AstNode.TypeDefinition(SynTypeDefn(_, typeRepresentation, members, implicitCtor, _, _)) -> validateType config.MaxItems (Option.toList implicitCtor @ members) typeRepresentation | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/FailwithBadUsage.fs b/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/FailwithBadUsage.fs index cd2d41d07..6737be32e 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/FailwithBadUsage.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/FailwithBadUsage.fs @@ -96,7 +96,7 @@ let private runner (args: AstNodeRuleParams) = failwithMessages.Add(id, { FileName = range.FileName; StartLine = range.StartLine; StartColumn = range.StartColumn }) Array.empty - | SynExpr.LongIdent (_, LongIdentWithDots (id, _), _, _) when + | SynExpr.LongIdent (_, SynLongIdent (id, _, _), _, _) when (ExpressionUtilities.longIdentToString id) = "String.Empty" || (ExpressionUtilities.longIdentToString id) = "System.String.Empty" -> @@ -109,14 +109,14 @@ let private runner (args: AstNodeRuleParams) = | SynExpr.Null range -> generateError failwithId.idText "null" range BadUsageType.NullMessage maybeIdentifier | _ -> Array.empty - | SynExpr.TryWith (_, _, clauseList, _expression, _range, _, _) -> + | SynExpr.TryWith (_, clauseList, _expression, _range, _, _) -> clauseList |> List.toArray |> Array.collect (fun clause -> match clause with - | SynMatchClause (pat, _, app, _, _) -> + | SynMatchClause (pat, _, app, _, _, _) -> match pat with - | SynPat.Named (_, id, _, _, _) -> checkExpr app (Some id.idText) + | SynPat.Named (SynIdent(id, _), _, _, _) -> checkExpr app (Some id.idText) | _ -> checkExpr app None) | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/RaiseWithTooManyArgumentsHelper.fs b/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/RaiseWithTooManyArgumentsHelper.fs index dcae1cd2f..a5a46177d 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/RaiseWithTooManyArgumentsHelper.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RaiseWithTooManyArguments/RaiseWithTooManyArgumentsHelper.fs @@ -7,7 +7,8 @@ open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules let private (|RaiseWithTooManyArgs|_|) identifier maxArgs = function - | SynExpr.Ident(ident)::arguments when List.length arguments > maxArgs && ident.idText = identifier -> + | ExpressionUtilities.Identifier([ ident ], _)::arguments + when List.length arguments > maxArgs && ident.idText = identifier -> Some() | _ -> None diff --git a/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs b/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs index 3190fc257..105e27ae8 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RecursiveAsyncFunction.fs @@ -8,7 +8,7 @@ open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules let private isAsyncCompExpr = function - | SynExpr.App (_, _, (SynExpr.Ident compExprName), (SynExpr.CompExpr _), _) + | SynExpr.App (_, _, (SynExpr.Ident compExprName), (SynExpr.ComputationExpr _), _) when compExprName.idText = "async" -> true | _ -> false @@ -38,7 +38,7 @@ let checkRecursiveAsyncFunction (args:AstNodeRuleParams) (range:Range) (doBangEx match crumb with | AstNode.ModuleDeclaration (SynModuleDecl.Let (true, bindings, _)) -> bindings - | AstNode.Expression (SynExpr.LetOrUse (true, false, bindings, _, _)) -> + | AstNode.Expression (SynExpr.LetOrUse (true, false, bindings, _, _, _)) -> bindings | _ -> []) |> List.choose getFunctionNameFromAsyncCompExprBinding diff --git a/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs b/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs index 6ba4f3cb5..d95cc67c2 100644 --- a/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs +++ b/src/FSharpLint.Core/Rules/Conventions/RedundantNewKeyword.fs @@ -16,8 +16,8 @@ let private implementsIDisposable (fsharpType:FSharpType) = else false -let private doesNotImplementIDisposable (checkFile:FSharpCheckFileResults) (ident:LongIdentWithDots) = fun () -> - let names = ident.Lid |> List.map (fun x -> x.idText) +let private doesNotImplementIDisposable (checkFile:FSharpCheckFileResults) (ident: SynLongIdent) = fun () -> + let names = ident.LongIdent |> List.map (fun x -> x.idText) let symbol = checkFile.GetSymbolUseAtLocation(ident.Range.StartLine, ident.Range.EndColumn, "", names) match symbol with diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInClass.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInClass.fs index 58717174f..0c7e92bb6 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInClass.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInClass.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range)) -> + | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range, _)) -> match repr with | SynTypeDefnRepr.ObjectModel(_) -> Helper.SourceLength.checkSourceLengthRule config range args.FileContent "Classes and interface" diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInConstructor.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInConstructor.fs index 315096974..9f7fad7ea 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInConstructor.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInConstructor.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _) as binding) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _, _) as binding) -> match identifierTypeFromValData valData with | Constructor -> Helper.SourceLength.checkSourceLengthRule config binding.RangeOfBindingWithRhs args.FileContent "Constructor" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInEnum.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInEnum.fs index 27ae875c5..dd2b692f1 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInEnum.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInEnum.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range)) -> + | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range, _)) -> match repr with | SynTypeDefnRepr.Simple(simpleRepr, _) -> match simpleRepr with diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInFunction.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInFunction.fs index 90616b53d..61809da86 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInFunction.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _) as binding) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _, _) as binding) -> match identifierTypeFromValData valData with | Function -> Helper.SourceLength.checkSourceLengthRule config binding.RangeOfBindingWithRhs args.FileContent "Function" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInLambdaFunction.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInLambdaFunction.fs index 65a776ebb..435675986 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInLambdaFunction.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInLambdaFunction.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Expression(SynExpr.Lambda(_, _, _, _, _, range)) -> + | AstNode.Expression(SynExpr.Lambda(_, _, _, _, _, range, _)) -> Helper.SourceLength.checkSourceLengthRule config range args.FileContent "Lambda function" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInMember.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInMember.fs index 89f17ca79..1504c90b6 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInMember.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInMember.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _) as binding) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _, _) as binding) -> match identifierTypeFromValData valData with | Member -> Helper.SourceLength.checkSourceLengthRule config binding.RangeOfBindingWithRhs args.FileContent "Member" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInModule.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInModule.fs index ab5765a22..90650eec2 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInModule.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInModule.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(_, _, (SynModuleOrNamespaceKind.NamedModule | SynModuleOrNamespaceKind.AnonModule ), _, _, _, _, range)) -> + | AstNode.ModuleOrNamespace(SynModuleOrNamespace.SynModuleOrNamespace(_, _, (SynModuleOrNamespaceKind.NamedModule | SynModuleOrNamespaceKind.AnonModule ), _, _, _, _, range, _)) -> Helper.SourceLength.checkSourceLengthRule config range args.FileContent "Module" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInProperty.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInProperty.fs index 5aa638adf..70189f93b 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInProperty.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInProperty.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _) as binding) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _, _) as binding) -> match identifierTypeFromValData valData with | Property -> Helper.SourceLength.checkSourceLengthRule config binding.RangeOfBindingWithRhs args.FileContent "Property" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInRecord.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInRecord.fs index b6a0e43f9..191c9ca30 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInRecord.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInRecord.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range)) -> + | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range, _)) -> match repr with | SynTypeDefnRepr.Simple(simpleRepr, _) -> match simpleRepr with diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInUnion.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInUnion.fs index b35cc18c8..ca67265eb 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInUnion.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInUnion.fs @@ -6,7 +6,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range)) -> + | AstNode.TypeDefinition(SynTypeDefn(_, repr, _, _, range, _)) -> match repr with | SynTypeDefnRepr.Simple(simpleRepr, _) -> match simpleRepr with diff --git a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInValue.fs b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInValue.fs index 40e495c4f..5a2fcebbb 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInValue.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SourceLength/MaxLinesInValue.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Rules let runner (config:Helper.SourceLength.Config) (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _) as binding) -> + | AstNode.Binding(SynBinding(_, _, _, _, _, _, valData, _, _, _, _, _, _) as binding) -> match identifierTypeFromValData valData with | Value -> Helper.SourceLength.checkSourceLengthRule config binding.RangeOfBindingWithRhs args.FileContent "Value" | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Conventions/SuggestUseAutoProperty.fs b/src/FSharpLint.Core/Rules/Conventions/SuggestUseAutoProperty.fs index 12a5539e7..418658788 100644 --- a/src/FSharpLint.Core/Rules/Conventions/SuggestUseAutoProperty.fs +++ b/src/FSharpLint.Core/Rules/Conventions/SuggestUseAutoProperty.fs @@ -13,15 +13,15 @@ let rec private isImmutableValueExpression (args: AstNodeRuleParams) (expression | SynExpr.Ident ident -> let isMutableVariable = match args.GetParents args.NodeIndex with - | TypeDefinition (SynTypeDefn (_, SynTypeDefnRepr.ObjectModel (_, members, _), _, _, _)) :: _ -> + | TypeDefinition (SynTypeDefn (_, SynTypeDefnRepr.ObjectModel (_, members, _), _, _, _, _)) :: _ -> members |> List.exists (fun (memberDef: SynMemberDefn) -> match memberDef with | SynMemberDefn.LetBindings (bindings, _, _, _) -> bindings - |> List.exists (fun (SynBinding (_, _, _, isMutable, _, _, _, headPat, _, _, _, _)) -> + |> List.exists (fun (SynBinding (_, _, _, isMutable, _, _, _, headPat, _, _, _, _, _)) -> match headPat with - | SynPat.Named (_, bindingIdent, _, _, _) when isMutable -> + | SynPat.Named (SynIdent(bindingIdent, _), _, _, _) when isMutable -> bindingIdent.idText = ident.idText | _ -> false) | _ -> false) @@ -31,7 +31,7 @@ let rec private isImmutableValueExpression (args: AstNodeRuleParams) (expression | SynExpr.ArrayOrList (_, elements, _) -> elements |> List.forall (isImmutableValueExpression args) - | SynExpr.ArrayOrListOfSeqExpr (_, SynExpr.CompExpr(true, _, innerExpr, _), _) -> + | SynExpr.ArrayOrListComputed (_, innerExpr, _) -> isImmutableValueExpression args innerExpr || isImmutableSequentialExpression args innerExpr | _ -> false @@ -63,6 +63,7 @@ let private runner (args: AstNodeRuleParams) = _returnInfo, expr, _bindingRange, + _, _ ), memberRange @@ -74,7 +75,7 @@ let private runner (args: AstNodeRuleParams) = | expression, _ when isImmutableValueExpression args expression -> let suggestedFix = lazy - (match memberIdentifier.Lid with + (match memberIdentifier.LongIdent with | [ _; memberName ] -> Some { FromText = args.FileContent diff --git a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchExpressionIndentation.fs b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchExpressionIndentation.fs index eb969c00f..ee72ffdeb 100644 --- a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchExpressionIndentation.fs +++ b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchExpressionIndentation.fs @@ -12,7 +12,7 @@ let check (args:AstNodeRuleParams) _ (clauses:SynMatchClause list) _ = clauses |> List.toArray |> Array.choose (fun clause -> - let (SynMatchClause (pat, guard, expr, _, _)) = clause + let (SynMatchClause (pat, guard, expr, _, _, _)) = clause let clauseIndentation = ExpressionUtilities.getLeadingSpaces clause.Range args.FileContent let exprIndentation = ExpressionUtilities.getLeadingSpaces expr.Range args.FileContent let matchPatternEndLine = diff --git a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchFormattingHelper.fs b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchFormattingHelper.fs index 4b617dfb9..fb8e5fbd7 100644 --- a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchFormattingHelper.fs +++ b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchFormattingHelper.fs @@ -6,9 +6,9 @@ open FSharpLint.Framework.Rules let isActualPatternMatch (args:AstNodeRuleParams) rule = match args.AstNode with - | AstNode.Expression (SynExpr.Match (_, _, clauses, range)) + | AstNode.Expression (SynExpr.Match (_, _, clauses, range, _)) | AstNode.Expression (SynExpr.MatchLambda (_, _, clauses, _, range)) - | AstNode.Expression (SynExpr.TryWith (_, _, clauses, range, _, _, _)) as node -> + | AstNode.Expression (SynExpr.TryWith (_, clauses, range, _, _, _)) as node -> let isLambda = match node with | AstNode.Expression (SynExpr.MatchLambda _) -> true diff --git a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchOrClausesOnNewLine.fs b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchOrClausesOnNewLine.fs index 912965cfc..6718f6504 100644 --- a/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchOrClausesOnNewLine.fs +++ b/src/FSharpLint.Core/Rules/Formatting/PatternMatchFormatting/PatternMatchOrClausesOnNewLine.fs @@ -12,7 +12,7 @@ let check args _ (clauses:SynMatchClause list) _ = clauses |> List.toArray |> Array.collect (function - | SynMatchClause (SynPat.Or (firstPat, secondPat, _), _, _, _, _) -> + | SynMatchClause (SynPat.Or (firstPat, secondPat, _, _), _, _, _, _, _) -> [|firstPat; secondPat|] | _ -> [||]) |> Array.pairwise diff --git a/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs index 94129acb8..f8c997457 100644 --- a/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/Spacing/ClassMemberSpacing.fs @@ -38,7 +38,7 @@ let checkClassMemberSpacing (args:AstNodeRuleParams) (members:SynMemberDefns) = let runner args = match args.AstNode with - | AstNode.TypeDefinition (SynTypeDefn.SynTypeDefn (_, repr, members, implicitCtor, defnRange)) -> + | AstNode.TypeDefinition (SynTypeDefn.SynTypeDefn (_, repr, members, implicitCtor, defnRange, _)) -> checkClassMemberSpacing args (Option.toList implicitCtor @ members) | AstNode.TypeRepresentation (SynTypeDefnRepr.ObjectModel (_, members, _)) -> checkClassMemberSpacing args members diff --git a/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs b/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs index 8cea866a7..cb91518b2 100644 --- a/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs +++ b/src/FSharpLint.Core/Rules/Formatting/Spacing/ModuleDeclSpacing.fs @@ -11,7 +11,7 @@ open FSharpLint.Framework.ExpressionUtilities let checkModuleDeclSpacing (args:AstNodeRuleParams) synModuleOrNamespace = match synModuleOrNamespace with - | SynModuleOrNamespace (_, _, _, decls, _, _, _, _) -> + | SynModuleOrNamespace (_, _, _, decls, _, _, _, _, _) -> decls |> List.toArray |> Array.pairwise diff --git a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleFormattingHelper.fs b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleFormattingHelper.fs index e91175aec..0a2d269dc 100644 --- a/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleFormattingHelper.fs +++ b/src/FSharpLint.Core/Rules/Formatting/TupleFormatting/TupleFormattingHelper.fs @@ -1,6 +1,7 @@ module FSharpLint.Rules.Helper.TupleFormatting open FSharp.Compiler.Syntax +open FSharpLint.Framework open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules @@ -9,7 +10,8 @@ let isActualTuple (args:AstNodeRuleParams) rule = | AstNode.Expression (SynExpr.Tuple (_, tupleExprs, _, tupleRange)) -> let parentNode = args.GetParents 1 |> List.tryHead match parentNode with - | Some (AstNode.Expression (SynExpr.App (funcExpr=(SynExpr.Ident ident)))) when ident.idText = "op_ColonColon" -> + | Some (AstNode.Expression (SynExpr.App (funcExpr=ExpressionUtilities.Identifier([ ident ], _)))) + when ident.idText = "op_ColonColon" -> // cons operator is parsed as tuple, ignore it for tuple checking Array.empty | _ -> diff --git a/src/FSharpLint.Core/Rules/Formatting/UnionDefinitionIndentation.fs b/src/FSharpLint.Core/Rules/Formatting/UnionDefinitionIndentation.fs index b543fffd6..1dd6465cd 100644 --- a/src/FSharpLint.Core/Rules/Formatting/UnionDefinitionIndentation.fs +++ b/src/FSharpLint.Core/Rules/Formatting/UnionDefinitionIndentation.fs @@ -7,7 +7,7 @@ open FSharpLint.Framework.Suggestion open FSharpLint.Framework.Ast open FSharpLint.Framework.Rules -let getUnionCaseStartColumn (SynUnionCase (attrs, _, _, _, _, range)) = +let getUnionCaseStartColumn (SynUnionCase (attrs, _, _, _, _, range, _)) = match attrs |> List.tryHead with | Some attr -> // startcolumn of the attributes now includes the `[<` starter sigil, so we can just use it! @@ -56,7 +56,7 @@ let runner args = | AstNode.ModuleDeclaration (SynModuleDecl.Types (typeDefns, typesRange)) -> typeDefns |> List.toArray - |> Array.collect (fun (SynTypeDefn (_, repr, _, _, _)) -> + |> Array.collect (fun (SynTypeDefn (_, repr, _, _, _, _)) -> checkUnionDefinitionIndentation args repr typesRange.StartColumn) | _ -> Array.empty diff --git a/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs b/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs index a76784e50..d3d3742b9 100644 --- a/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs +++ b/src/FSharpLint.Core/Rules/Hints/HintMatcher.fs @@ -174,11 +174,11 @@ module private MatchExpression = { this with Expression = expr; Hint = hint } let private matchExpr = function - | AstNode.Expression(SynExpr.Ident(ident)) -> + | AstNode.Expression(ExpressionUtilities.Identifier([ident], _)) -> let ident = identAsDecompiledOpName ident Some(Expression.Identifier([ident])) | AstNode.Expression(SynExpr.LongIdent(_, ident, _, _)) -> - let identifier = ident.Lid |> List.map (fun x -> x.idText) + let identifier = ident.LongIdent |> List.map (fun x -> x.idText) Some(Expression.Identifier(identifier)) | AstNode.Expression(SynExpr.Const(constant, _)) -> matchConst constant |> Option.map Expression.Constant @@ -217,7 +217,7 @@ module private MatchExpression = /// or a named parameter in a method call. let private notPropertyInitialisationOrNamedParameter arguments leftExpr opExpr = match (leftExpr, opExpr) with - | SynExpr.Ident(ident), SynExpr.Ident(opIdent) when opIdent.idText = "op_Equality" -> + | ExpressionUtilities.Identifier([ident], _), ExpressionUtilities.Identifier([opIdent], _) when opIdent.idText = "op_Equality" -> match arguments.FSharpCheckFileResults with | Some(checkFile) -> fun () -> @@ -250,7 +250,7 @@ module private MatchExpression = match arguments.Hint with | Expression.Variable(variable) when arguments.LambdaArguments |> Map.containsKey variable -> match expr with - | AstNode.Expression(SynExpr.Ident(identifier)) + | AstNode.Expression(ExpressionUtilities.Identifier([identifier], _)) when identifier.idText = arguments.LambdaArguments.[variable] -> Match([]) | _ -> NoMatch @@ -338,7 +338,7 @@ module private MatchExpression = | AstNode.Expression(SynExpr.ArrayOrList(false, expressions, _)), Expression.List(hintExpressions) -> let expressions = List.map AstNode.Expression expressions doExpressionsMatch expressions hintExpressions arguments - | AstNode.Expression(SynExpr.ArrayOrListOfSeqExpr(false, SynExpr.CompExpr(true, _, expression, _), _)), Expression.List([hintExpression]) -> + | AstNode.Expression(SynExpr.ArrayOrListComputed(false, expression, _)), Expression.List([hintExpression]) -> arguments.SubHint(AstNode.Expression(expression), hintExpression) |> matchHintExpr | _ -> NoMatch @@ -347,13 +347,13 @@ module private MatchExpression = | AstNode.Expression(SynExpr.ArrayOrList(true, expressions, _)), Expression.Array(hintExpressions) -> let expressions = List.map AstNode.Expression expressions doExpressionsMatch expressions hintExpressions arguments - | AstNode.Expression(SynExpr.ArrayOrListOfSeqExpr(true, SynExpr.CompExpr(true, _, expression, _), _)), Expression.Array([hintExpression]) -> + | AstNode.Expression(SynExpr.ArrayOrListComputed(true, expression, _)), Expression.Array([hintExpression]) -> arguments.SubHint(AstNode.Expression(expression), hintExpression) |> matchHintExpr | _ -> NoMatch and private matchInfixOperation arguments = match (arguments.Expression, arguments.Hint) with - | (AstNode.Expression(SynExpr.App(_, true, (SynExpr.Ident(_) as opExpr), SynExpr.Tuple(_, [leftExpr; rightExpr], _, _), _)), + | (AstNode.Expression(SynExpr.App(_, true, (ExpressionUtilities.Identifier(_) as opExpr), SynExpr.Tuple(_, [leftExpr; rightExpr], _, _), _)), Expression.InfixOperator(op, left, right)) -> arguments.SubHint(AstNode.Expression(opExpr), op) |> matchHintExpr &&~ (arguments.SubHint(AstNode.Expression(rightExpr), right) |> matchHintExpr) &&~ @@ -388,7 +388,7 @@ module private MatchPattern = let private matchPattern = function | SynPat.LongIdent(ident, _, _, _, _, _) -> - let identifier = ident.Lid |> List.map (fun x -> x.idText) + let identifier = ident.LongIdent |> List.map (fun x -> x.idText) Some(Pattern.Identifier(identifier)) | SynPat.Const(constant, _) -> matchConst constant |> Option.map Pattern.Constant @@ -450,7 +450,7 @@ module private MatchPattern = and private matchConsPattern (pattern, hint) = match (pattern, hint) with | SynPat.LongIdent( - LongIdentWithDots([ident],_), + SynLongIdent([ident], _, _), _, _, SynArgPats.Pats([SynPat.Tuple(_, [leftPattern;rightPattern], _)]), @@ -462,7 +462,7 @@ module private MatchPattern = and private matchOrPattern (pattern, hint) = match (pattern, hint) with - | SynPat.Or(leftPattern, rightPattern, _), Pattern.Or(left, right) -> + | SynPat.Or(leftPattern, rightPattern, _, _), Pattern.Or(left, right) -> matchHintPattern (leftPattern, left) && matchHintPattern (rightPattern, right) | _ -> false @@ -524,7 +524,11 @@ module private FormatHint = | HintExpr(Expression.Identifier(identifier)) | HintPat(Pattern.Identifier(identifier)) -> identifier - |> List.map PrettyNaming.DemangleOperatorName + |> List.map (fun each -> + if PrettyNaming.IsOperatorDisplayName each then + sprintf "( %s )" each + else + each) |> String.concat "." | HintExpr(Expression.FunctionApplication(expressions)) -> expressions |> surroundExpressionsString (HintExpr >> toString) "" "" " " @@ -596,13 +600,13 @@ 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) = +let private getMethodParameters (checkFile:FSharpCheckFileResults) (methodIdent: SynLongIdent) = let symbol = checkFile.GetSymbolUseAtLocation( methodIdent.Range.StartLine, methodIdent.Range.EndColumn, "", - methodIdent.Lid |> List.map (fun x -> x.idText)) + methodIdent.LongIdent |> List.map (fun x -> x.idText)) match symbol with | Some(symbol) when (symbol.Symbol :? FSharpMemberOrFunctionOrValue) -> diff --git a/src/FSharpLint.Core/Rules/Typography/Indentation.fs b/src/FSharpLint.Core/Rules/Typography/Indentation.fs index 1f7593505..b393995cb 100644 --- a/src/FSharpLint.Core/Rules/Typography/Indentation.fs +++ b/src/FSharpLint.Core/Rules/Typography/Indentation.fs @@ -43,7 +43,7 @@ module ContextBuilder = | (SynExpr.Record ( _, _, fields, _)) -> let subRecords = fields - |> List.choose (fun (_, expr, _) -> expr |> Option.map collectRecordFields) + |> List.choose (fun (SynExprRecordField(_, _, expr, _)) -> expr |> Option.map collectRecordFields) |> List.concat fields::subRecords | _ -> @@ -53,12 +53,15 @@ module ContextBuilder = match ranges with | (first::others) -> let expectedIndentation = first.StartColumn - others |> List.map (fun other -> (other.StartLine, (true, expectedIndentation))) + others + |> List.collect (fun other -> + [ for lineNumber=other.StartLine to other.EndLine do + yield (lineNumber, (true, expectedIndentation)) ]) | _ -> [] let private indentationOverridesForNode (node:AstNode) = match node with - | TypeDefinition (SynTypeDefn(_, SynTypeDefnRepr.Simple(SynTypeDefnSimpleRepr.Record(_, fields, _), _), _,_, _)) -> + | TypeDefinition (SynTypeDefn(_, SynTypeDefnRepr.Simple(SynTypeDefnSimpleRepr.Record(_, fields, _), _), _, _, _, _)) -> fields |> List.map (fun (SynField (_, _, _, _, _, _, _, range)) -> range) |> firstRangePerLine @@ -72,10 +75,15 @@ module ContextBuilder = collectRecordFields record |> List.collect (fun recordFields -> recordFields - |> List.map (fun ((fieldName, _), _, _) -> fieldName.Range) + |> List.map (fun (SynExprRecordField((fieldName, _), _, _, _)) -> fieldName.Range) |> firstRangePerLine |> createAbsoluteAndOffsetOverridesBasedOnFirst) - | Expression (SynExpr.ArrayOrListOfSeqExpr(expr=(SynExpr.CompExpr(isArrayOrList=true; expr=expr)))) -> + | Expression (SynExpr.ArrayOrListComputed(expr=(SynExpr.ComputationExpr(expr=expr)))) -> + extractSeqExprItems expr + |> List.map (fun expr -> expr.Range) + |> firstRangePerLine + |> createAbsoluteAndOffsetOverridesBasedOnFirst + | Expression (SynExpr.ArrayOrListComputed(expr=expr)) -> extractSeqExprItems expr |> List.map (fun expr -> expr.Range) |> firstRangePerLine @@ -88,18 +96,25 @@ module ContextBuilder = | Expression (SynExpr.App(funcExpr=(SynExpr.App(isInfix=isInfix; argExpr=innerArg; funcExpr=funcExpr)); argExpr=outerArg)) when isInfix && outerArg.Range.EndLine <> innerArg.Range.StartLine -> match funcExpr with - | SynExpr.Ident ident when ident.idText = "op_ColonEquals" -> + | ExpressionUtilities.Identifier([ ident ], _) when ident.idText = "op_ColonEquals" -> // := for reference cell assignment should be handled like normal equals, not like an infix operator. [] | _ -> let expectedIndentation = innerArg.Range.StartColumn createAbsoluteAndOffsetOverrides expectedIndentation outerArg.Range - | Expression (SynExpr.ObjExpr(bindings=bindings; newExprRange=newExprRange)) -> + | Expression (SynExpr.ObjExpr(members=members; bindings=bindings; newExprRange=newExprRange)) -> let expectedIndentation = newExprRange.StartColumn + 4 - bindings - |> List.map (fun binding -> binding.RangeOfBindingWithRhs) - |> firstRangePerLine - |> List.collect (createAbsoluteAndOffsetOverrides expectedIndentation) + let bindingOverrides = + bindings + |> List.map (fun binding -> binding.RangeOfBindingWithRhs) + |> firstRangePerLine + |> List.collect (createAbsoluteAndOffsetOverrides expectedIndentation) + let memberOverrides = + members + |> List.map (fun mem -> mem.Range) + |> firstRangePerLine + |> List.collect (createAbsoluteAndOffsetOverrides expectedIndentation) + List.append bindingOverrides memberOverrides | Pattern (SynPat.Tuple (elementPats=elemPats)) -> elemPats |> List.map (fun pat -> pat.Range) @@ -107,7 +122,7 @@ module ContextBuilder = |> createAbsoluteAndOffsetOverridesBasedOnFirst | Pattern (SynPat.Record (fieldPats=fieldPats)) -> fieldPats - |> List.map (fun ((_, fieldIdent), _) -> fieldIdent.idRange) + |> List.map (fun ((_, fieldIdent), _, _) -> fieldIdent.idRange) |> firstRangePerLine |> createAbsoluteAndOffsetOverridesBasedOnFirst | _ -> [] diff --git a/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs b/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs index 52688fe9a..49628a68c 100644 --- a/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs +++ b/tests/FSharpLint.Core.Tests/Framework/TestAbstractSyntaxArray.fs @@ -18,14 +18,14 @@ type TestAst() = let astToExpr ast = let (|Module|_|) x = match x with - | SynModuleOrNamespace(_, _, _, SynModuleDecl.DoExpr(_, app, _)::_, _, _, _, _) -> + | SynModuleOrNamespace(_, _, _, SynModuleDecl.Expr(app, _)::_, _, _, _, _, _) -> Some(app) | _ -> None match ast with | ParsedInput.ImplFile(x) -> match x with - | ParsedImplFileInput(_, _, _, _, _, Module(app)::_, _) -> + | ParsedImplFileInput(_, _, _, _, _, Module(app)::_, _, _) -> app | _ -> failwith "Expected at least one module or namespace." | _ -> failwith "Expected an implementation file." From 060e907efcf2969a702db48885addc1841fb25e3 Mon Sep 17 00:00:00 2001 From: Mehrshad Date: Thu, 7 Dec 2023 14:59:32 +0330 Subject: [PATCH 2/7] Paket: pin nunit to version 3 Pin nunit version to 3.x because version 4 that gets selected automatically now after upgrade to .net 6 has breaking changes and breaks our tests. --- paket.dependencies | 2 +- paket.lock | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/paket.dependencies b/paket.dependencies index 9d913dbbc..467946c68 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -13,7 +13,7 @@ nuget Ionide.ProjInfo.FCS == 0.53.0 nuget Ionide.ProjInfo == 0.53.0 nuget Ionide.ProjInfo.Sln == 0.53.0 nuget FSharp.Core ~> 6.0 -nuget nunit +nuget nunit ~> 3.0 nuget NUnit3TestAdapter nuget Microsoft.NET.Test.Sdk 17.7.2 nuget Newtonsoft.Json diff --git a/paket.lock b/paket.lock index aa652f300..f8d3f0096 100644 --- a/paket.lock +++ b/paket.lock @@ -200,9 +200,12 @@ NUGET System.Memory (>= 4.5.4) - restriction: || (&& (== net6.0) (< netcoreapp2.0)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) System.Security.AccessControl (>= 5.0) System.Security.Principal.Windows (>= 5.0) + NETStandard.Library (2.0.3) + Microsoft.NETCore.Platforms (>= 1.1) Newtonsoft.Json (13.0.3) NuGet.Frameworks (6.8) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= netcoreapp3.1)) - NUnit (4.0.1) + NUnit (3.14) + NETStandard.Library (>= 2.0) NUnit3TestAdapter (4.5) Perfolizer (0.2.1) System.Memory (>= 4.5.3) From eb1466be71995082b3070a99c54bbdf42a66c7cd Mon Sep 17 00:00:00 2001 From: Mehrshad Date: Thu, 7 Dec 2023 15:57:42 +0330 Subject: [PATCH 3/7] Paket: pin some dependencies In order to fix build process we pin the System.Reactive and MSBuild.StructuredLogger version. --- paket.dependencies | 3 + paket.lock | 363 ++++++--------------------------------------- 2 files changed, 50 insertions(+), 316 deletions(-) diff --git a/paket.dependencies b/paket.dependencies index 467946c68..dca5b31e8 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -14,6 +14,7 @@ nuget Ionide.ProjInfo == 0.53.0 nuget Ionide.ProjInfo.Sln == 0.53.0 nuget FSharp.Core ~> 6.0 nuget nunit ~> 3.0 +nuget System.Reactive ~> 5 nuget NUnit3TestAdapter nuget Microsoft.NET.Test.Sdk 17.7.2 nuget Newtonsoft.Json @@ -45,6 +46,8 @@ group Build storage: none strategy: min + nuget System.Reactive ~> 5 + nuget MSBuild.StructuredLogger == 2.1.815 nuget FSharp.Core ~> 5.0 nuget Fake.Core.Target nuget Fake.Core.Process diff --git a/paket.lock b/paket.lock index f8d3f0096..3280c7f0f 100644 --- a/paket.lock +++ b/paket.lock @@ -480,7 +480,9 @@ NUGET System.Resources.ResourceManager (>= 4.3) System.Runtime (>= 4.3) System.Threading (>= 4.3) - System.Reactive (5.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + System.Reactive (5.0) + System.Runtime.InteropServices.WindowsRuntime (>= 4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) System.Reflection (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -532,6 +534,8 @@ NUGET System.Reflection.Primitives (>= 4.3) System.Runtime (>= 4.3) System.Runtime.Handles (>= 4.3) + System.Runtime.InteropServices.WindowsRuntime (4.3) - restriction: || (&& (== net6.0) (< netcoreapp3.1)) (== netstandard2.0) + System.Runtime (>= 4.3) System.Runtime.Loader (4.3) System.IO (>= 4.3) System.Reflection (>= 4.3) @@ -672,7 +676,7 @@ NUGET Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) System.Threading.Tasks.Dataflow (8.0) - copy_local: false - System.Threading.Tasks.Extensions (4.5.4) - restriction: == netstandard2.0 + System.Threading.Tasks.Extensions (4.5.4) - restriction: || (&& (== net6.0) (>= net472)) (&& (== net6.0) (< netcoreapp3.1)) (&& (== net6.0) (>= uap10.1)) (== netstandard2.0) System.Runtime.CompilerServices.Unsafe (>= 4.5.3) - restriction: || (&& (== net6.0) (>= net461)) (&& (== net6.0) (< netcoreapp2.1)) (&& (== net6.0) (< netstandard1.0)) (&& (== net6.0) (< netstandard2.0)) (&& (== net6.0) (>= wp8)) (== netstandard2.0) System.Threading.Tasks.Parallel (4.3) System.Collections.Concurrent (>= 4.3) @@ -816,56 +820,30 @@ NUGET FSharp.Core (>= 4.7.2) System.Reactive (>= 4.4.1) FSharp.Core (5.0.2) - Microsoft.Build (16.4) - Microsoft.Build.Framework (>= 16.4) - Microsoft.Win32.Registry (>= 4.3) - System.Collections.Immutable (>= 1.5) - System.Diagnostics.TraceSource (>= 4.0) - System.Memory (>= 4.5.3) - System.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.1) - System.Runtime.Loader (>= 4.0) - System.Security.Principal.Windows (>= 4.3) - System.Text.Encoding.CodePages (>= 4.0.1) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Framework (16.4) - System.Runtime.Serialization.Primitives (>= 4.1.1) - System.Threading.Thread (>= 4.0) - Microsoft.Build.Tasks.Core (16.4) - Microsoft.Build.Framework (>= 16.4) - Microsoft.Build.Utilities.Core (>= 16.4) - 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.Reflection.Metadata (>= 1.6) - System.Reflection.TypeExtensions (>= 4.1) - System.Resources.Extensions (>= 4.6) - System.Resources.Writer (>= 4.0) - System.Threading.Tasks.Dataflow (>= 4.9) - Microsoft.Build.Tasks.Git (1.0) - Microsoft.Build.Utilities.Core (16.4) - Microsoft.Build.Framework (>= 16.4) + Microsoft.Build.Framework (16.10) + System.Security.Permissions (>= 4.7) + 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.NET.StringTools (1.0) + System.Memory (>= 4.5.4) + System.Runtime.CompilerServices.Unsafe (>= 5.0) Microsoft.NETCore.Platforms (3.1) Microsoft.NETCore.Targets (1.1) - Microsoft.SourceLink.Common (1.0) - Microsoft.SourceLink.GitHub (1.0) - Microsoft.Build.Tasks.Git (>= 1.0) - Microsoft.SourceLink.Common (>= 1.0) Microsoft.Win32.Registry (4.7) System.Security.AccessControl (>= 4.7) System.Security.Principal.Windows (>= 4.7) + Microsoft.Win32.SystemEvents (4.7) + Microsoft.NETCore.Platforms (>= 3.1) Mono.Posix.NETStandard (1.0) - MSBuild.StructuredLogger (2.1.176) - Microsoft.Build (>= 16.4) - Microsoft.Build.Framework (>= 16.4) - Microsoft.Build.Tasks.Core (>= 16.4) - Microsoft.Build.Utilities.Core (>= 16.4) - Microsoft.SourceLink.GitHub (>= 1.0) + MSBuild.StructuredLogger (2.1.815) + Microsoft.Build.Framework (>= 16.10) + Microsoft.Build.Utilities.Core (>= 16.10) Newtonsoft.Json (12.0.3) NuGet.Common (5.8.1) NuGet.Frameworks (>= 5.8.1) @@ -883,77 +861,21 @@ NUGET System.Dynamic.Runtime (>= 4.3) NuGet.Versioning (5.6) Octokit (0.48) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.native.System (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - runtime.native.System.Net.Http (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - runtime.native.System.Security.Cryptography.Apple (4.3) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (>= 4.3) - runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (>= 4.3.2) - runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple (4.3) - runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.2) - System.CodeDom (4.4) System.Collections (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Collections.Concurrent (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Debug (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Globalization (>= 4.3) - System.Reflection (>= 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.Collections.Immutable (1.7.1) + System.Collections.Immutable (5.0) + System.Configuration.ConfigurationManager (4.7) + System.Security.Cryptography.ProtectedData (>= 4.7) + System.Security.Permissions (>= 4.7) System.Diagnostics.Debug (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Diagnostics.DiagnosticSource (4.3) - System.Collections (>= 4.3) - System.Diagnostics.Tracing (>= 4.3) - System.Reflection (>= 4.3) - System.Runtime (>= 4.3) - System.Threading (>= 4.3) - System.Diagnostics.TraceSource (4.0) - Microsoft.NETCore.Platforms (>= 1.0.1) - runtime.native.System (>= 4.0) - System.Collections (>= 4.0.11) - System.Diagnostics.Debug (>= 4.0.11) - System.Globalization (>= 4.0.11) - System.Resources.ResourceManager (>= 4.0.1) - System.Runtime (>= 4.1) - System.Runtime.Extensions (>= 4.1) - System.Threading (>= 4.0.11) - System.Diagnostics.Tracing (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) + System.Drawing.Common (4.7) + Microsoft.NETCore.Platforms (>= 3.1) + Microsoft.Win32.SystemEvents (>= 4.7) System.Dynamic.Runtime (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) @@ -973,35 +895,12 @@ NUGET 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) 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) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.IO (>= 4.3) - System.IO.FileSystem.Primitives (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Threading.Tasks (>= 4.3) - System.IO.FileSystem.Primitives (4.3) - System.Runtime (>= 4.3) System.Linq (4.3) System.Collections (>= 4.3) System.Diagnostics.Debug (>= 4.3) @@ -1026,57 +925,14 @@ NUGET System.Runtime (>= 4.3) System.Runtime.Extensions (>= 4.3) System.Threading (>= 4.3) - System.Linq.Parallel (4.0.1) - System.Collections (>= 4.0.11) - System.Collections.Concurrent (>= 4.0.12) - System.Diagnostics.Debug (>= 4.0.11) - System.Diagnostics.Tracing (>= 4.1) - System.Linq (>= 4.1) - System.Resources.ResourceManager (>= 4.0.1) - System.Runtime (>= 4.1) - System.Runtime.Extensions (>= 4.1) - System.Threading (>= 4.0.11) - System.Threading.Tasks (>= 4.0.11) - System.Memory (4.5.3) - 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) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - System.Runtime.Handles (>= 4.3) + System.Memory (4.5.4) 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.Reactive (4.4.1) + System.Reactive (5.0) System.Reflection (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -1103,7 +959,6 @@ NUGET Microsoft.NETCore.Targets (>= 1.1) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Reflection.Metadata (1.6) System.Reflection.Primitives (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) @@ -1111,161 +966,38 @@ NUGET System.Reflection.TypeExtensions (4.3) System.Reflection (>= 4.3) System.Runtime (>= 4.3) - System.Resources.Extensions (4.6) 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.Resources.Writer (4.0) - System.Collections (>= 4.0.11) - System.IO (>= 4.1) - System.Resources.ResourceManager (>= 4.0.1) - System.Runtime (>= 4.1) - System.Runtime.Extensions (>= 4.1) - System.Text.Encoding (>= 4.0.11) System.Runtime (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) + System.Runtime.CompilerServices.Unsafe (5.0) System.Runtime.Extensions (4.3) Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Runtime.Handles (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - Microsoft.NETCore.Targets (>= 1.1) - System.Runtime (>= 4.3) - 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.Loader (4.0) - System.IO (>= 4.1) - System.Reflection (>= 4.1) + System.Runtime.Handles (4.0.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) System.Runtime (>= 4.1) - 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.1.1) - System.Resources.ResourceManager (>= 4.0.1) + System.Runtime.InteropServices (4.1) + Microsoft.NETCore.Platforms (>= 1.0.1) + Microsoft.NETCore.Targets (>= 1.0.1) + System.Reflection (>= 4.1) + System.Reflection.Primitives (>= 4.0.1) System.Runtime (>= 4.1) + System.Runtime.Handles (>= 4.0.1) System.Security.AccessControl (4.7) Microsoft.NETCore.Platforms (>= 3.1) System.Security.Principal.Windows (>= 4.7) - System.Security.Cryptography.Algorithms (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - runtime.native.System.Security.Cryptography.Apple (>= 4.3) - runtime.native.System.Security.Cryptography.OpenSsl (>= 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.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.Security.Cryptography.Cng (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - 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.Security.Cryptography.Algorithms (>= 4.3) - System.Security.Cryptography.Encoding (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Text.Encoding (>= 4.3) - System.Security.Cryptography.Csp (4.3) - Microsoft.NETCore.Platforms (>= 1.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.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.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.Security.Cryptography.OpenSsl (4.3) - runtime.native.System.Security.Cryptography.OpenSsl (>= 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.Runtime.Handles (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Runtime.Numerics (>= 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.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.Security.Cryptography.ProtectedData (4.3) - Microsoft.NETCore.Platforms (>= 1.1) - System.Resources.ResourceManager (>= 4.3) - System.Runtime (>= 4.3) - System.Runtime.InteropServices (>= 4.3) - System.Security.Cryptography.Primitives (>= 4.3) - System.Security.Cryptography.X509Certificates (4.3) - 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) - 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.Security.Cryptography.ProtectedData (4.7) + System.Security.Permissions (4.7) + System.Security.AccessControl (>= 4.7) + System.Windows.Extensions (>= 4.7) System.Security.Principal.Windows (4.7) System.Text.Encoding (4.3) Microsoft.NETCore.Platforms (>= 1.1) @@ -1291,9 +1023,8 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) Microsoft.NETCore.Targets (>= 1.1) System.Runtime (>= 4.3) - System.Threading.Tasks.Dataflow (4.9) - System.Threading.Thread (4.0) - System.Runtime (>= 4.1) + System.Windows.Extensions (4.7) + System.Drawing.Common (>= 4.7) GROUP Docs STORAGE: PACKAGES From 58dd6b6704f2787c8c1dfdfa838ba28e29847dc5 Mon Sep 17 00:00:00 2001 From: webwarrior Date: Tue, 12 Dec 2023 14:06:36 +0100 Subject: [PATCH 4/7] Core,Tests: silence NU1605 warning In order to use Visual Studio for building and debugging FSharpLint, added `$(NoWarn);NU1605` to Directory.Build.props file. This has to be done because of version conflict as a result of pinning of Microsoft.Build.* packages done in commit 57b4584 (Paket,Core,Tests: upgrade FCS to 41.0.1). The errors due to version conflicts were like this: ``` Error NU1605 Warning As Error: Detected package downgrade: Microsoft.Build.Framework from 17.8.3 to 16.11.0. Reference the package directly from the project to select a different version. FSharpLint.Core -> Microsoft.Build.Tasks.Core 17.8.3 -> Microsoft.Build.Framework (>= 17.8.3) FSharpLint.Core -> Microsoft.Build.Framework (>= 16.11.0) FSharpLint.Core D:\Projects\work\FSharpLint\src\FSharpLint.Core\FSharpLint.Core.fsproj 1 ``` --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 9cb4e26fd..d40156e2b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -6,5 +6,6 @@ true true embedded + $(NoWarn);NU1605 From 75d7e17850c59967c9109e9a61da08ff25d557f8 Mon Sep 17 00:00:00 2001 From: webwarrior Date: Tue, 12 Dec 2023 14:51:12 +0100 Subject: [PATCH 5/7] Paket,Console,Tests: upgrade Ionide.ProjInfo to 0.58.0 Upgrade Ionide.ProjInfo package version to 0.58.0. Fixes https://github.com/fsprojects/FSharpLint/issues/336. --- paket.dependencies | 8 ++-- paket.lock | 44 +++++++++++----------- src/FSharpLint.Console/Program.fs | 3 +- tests/FSharpLint.FunctionalTest/TestApi.fs | 2 +- 4 files changed, 28 insertions(+), 29 deletions(-) diff --git a/paket.dependencies b/paket.dependencies index dca5b31e8..b453efcaf 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -8,10 +8,10 @@ nuget BenchmarkDotNet nuget BenchmarkDotNet.Diagnostics.Windows nuget FParsec nuget FSharp.Compiler.Service ~> 41.0.1 -nuget Ionide.ProjInfo.ProjectSystem == 0.53.0 -nuget Ionide.ProjInfo.FCS == 0.53.0 -nuget Ionide.ProjInfo == 0.53.0 -nuget Ionide.ProjInfo.Sln == 0.53.0 +nuget Ionide.ProjInfo.ProjectSystem == 0.58.0 +nuget Ionide.ProjInfo.FCS == 0.58.0 +nuget Ionide.ProjInfo == 0.58.0 +nuget Ionide.ProjInfo.Sln == 0.58.0 nuget FSharp.Core ~> 6.0 nuget nunit ~> 3.0 nuget System.Reactive ~> 5 diff --git a/paket.lock b/paket.lock index 3280c7f0f..5724dacc5 100644 --- a/paket.lock +++ b/paket.lock @@ -55,34 +55,31 @@ NUGET System.Threading.Tasks.Parallel (>= 4.3) System.Threading.Thread (>= 4.3) System.Threading.ThreadPool (>= 4.3) - FSharp.Control.Reactive (5.0.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) + FSharp.Control.Reactive (5.0.5) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) FSharp.Core (>= 4.7.2) System.Reactive (>= 5.0 < 6.0) FSharp.Core (6.0.7) Gee.External.Capstone (2.3) Iced (1.20) - Ionide.ProjInfo (0.53) - FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.Sln (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.Build (>= 16.10) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.Build.Framework (>= 16.10) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.Build.Locator (>= 1.4.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.FCS (0.53) - FSharp.Compiler.Service (>= 40.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.ProjectSystem (0.53) - FSharp.Compiler.Service (>= 40.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - FSharp.Control.Reactive (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - FSharp.Core (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.FCS (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.Sln (>= 0.53) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Microsoft.SourceLink.GitHub (>= 1.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net5.0)) - Ionide.ProjInfo.Sln (0.53) + Ionide.ProjInfo (0.58) + FSharp.Core (>= 6.0.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.Sln (>= 0.58) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Microsoft.Build (>= 17.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Microsoft.Build.Framework (>= 17.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + SemanticVersioning (>= 2.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.FCS (0.58) + FSharp.Compiler.Service (>= 41.0.3 < 42.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + FSharp.Core (>= 6.0.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo (>= 0.58) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.ProjectSystem (0.58) + FSharp.Compiler.Service (>= 41.0.3 < 42.0) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + FSharp.Control.Reactive (>= 5.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + FSharp.Core (>= 6.0.3) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo (>= 0.58) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.FCS (>= 0.58) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.Sln (>= 0.58) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Newtonsoft.Json (>= 13.0.1) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) + Ionide.ProjInfo.Sln (0.58) Microsoft.Bcl.AsyncInterfaces (8.0) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) System.Threading.Tasks.Extensions (>= 4.5.4) - restriction: || (&& (== net6.0) (>= net462)) (&& (== net6.0) (< netstandard2.1)) (== netstandard2.0) Microsoft.Build (16.11) - copy_local: false @@ -252,6 +249,7 @@ NUGET runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) runtime.ubuntu.18.04-x64.runtime.native.System.Security.Cryptography.OpenSsl (4.3.3) + SemanticVersioning (2.0.2) - restriction: || (== net6.0) (&& (== netstandard2.0) (>= net6.0)) System.Buffers (4.5.1) System.CodeDom (8.0) - copy_local: false System.Collections (4.3) diff --git a/src/FSharpLint.Console/Program.fs b/src/FSharpLint.Console/Program.fs index eef46312e..73d43cd43 100644 --- a/src/FSharpLint.Console/Program.fs +++ b/src/FSharpLint.Console/Program.fs @@ -2,6 +2,7 @@ open Argu open System +open System.IO open FSharpLint.Framework open FSharpLint.Application open System.Reflection @@ -141,7 +142,7 @@ let private start (arguments:ParseResults) (toolsPath:Ionide.ProjInfo. /// 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 toolsPath = Ionide.ProjInfo.Init.init (DirectoryInfo <| Directory.GetCurrentDirectory()) None [] let main argv = diff --git a/tests/FSharpLint.FunctionalTest/TestApi.fs b/tests/FSharpLint.FunctionalTest/TestApi.fs index b21fae832..49b854d2e 100644 --- a/tests/FSharpLint.FunctionalTest/TestApi.fs +++ b/tests/FSharpLint.FunctionalTest/TestApi.fs @@ -32,7 +32,7 @@ module TestApi = parseResults.ParseTree /// Must be called once per process. - let toolsPath = Ionide.ProjInfo.Init.init() + let toolsPath = Ionide.ProjInfo.Init.init (DirectoryInfo <| Directory.GetCurrentDirectory()) None [] [] From 752223a9086552dabc3edf9b1ec641ad02409026 Mon Sep 17 00:00:00 2001 From: webwarrior Date: Tue, 12 Dec 2023 14:58:27 +0100 Subject: [PATCH 6/7] Core.Tests: new test for WildcardNamedWithAsPattern Added new test for WildcardNamedWithAsPattern rule that checks that wildcard pattern without as should not raise warning. --- .../Rules/Binding/WildcardNamedWithAsPattern.fs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/FSharpLint.Core.Tests/Rules/Binding/WildcardNamedWithAsPattern.fs b/tests/FSharpLint.Core.Tests/Rules/Binding/WildcardNamedWithAsPattern.fs index ed18bcae1..f9b5fde3f 100644 --- a/tests/FSharpLint.Core.Tests/Rules/Binding/WildcardNamedWithAsPattern.fs +++ b/tests/FSharpLint.Core.Tests/Rules/Binding/WildcardNamedWithAsPattern.fs @@ -27,5 +27,15 @@ match [] with Assert.IsFalse(this.ErrorsExist) + [] + member this.WildcardWithoutAsPattern() = + this.Parse """ +module Program + +match [] with + | _ -> ()""" + + Assert.IsFalse(this.ErrorsExist) + From 7fd8c620b9047621939cdb98c43f0862714cfc35 Mon Sep 17 00:00:00 2001 From: webwarrior Date: Tue, 12 Dec 2023 15:12:37 +0100 Subject: [PATCH 7/7] WildcardNamedWithAsPattern: fix rule Fix rule WildcardNamedWithAsPattern that was broken when porting to FCS version 41. Removed misleading comment. --- .../Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs b/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs index 92d6e23aa..3ca062263 100644 --- a/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs +++ b/src/FSharpLint.Core/Rules/Conventions/Binding/WildcardNamedWithAsPattern.fs @@ -18,11 +18,10 @@ let private checkForWildcardNamedWithAsPattern pattern = let private runner (args:AstNodeRuleParams) = match args.AstNode with - | AstNode.Pattern(SynPat.Wild(_) as pattern) -> - checkForWildcardNamedWithAsPattern pattern + | AstNode.Pattern(SynPat.As(leftHandSide, _, _)) -> + checkForWildcardNamedWithAsPattern leftHandSide | _ -> Array.empty -/// Checks if any code uses 'let _ = ...' and suggests to use the ignore function. let rule = { Name = "WildcardNamedWithAsPattern" Identifier = Identifiers.WildcardNamedWithAsPattern