Skip to content

Commit

Permalink
Merge pull request #577 from polyadic/release-2.7.0
Browse files Browse the repository at this point in the history
Prepare 2.7 Release
  • Loading branch information
bash authored Apr 20, 2022
2 parents 589ab13 + 0cf8063 commit c1e9af2
Show file tree
Hide file tree
Showing 15 changed files with 271 additions and 196 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
</PropertyGroup>
<PropertyGroup Label="NuGet Metadata">
<PackageId>Funcky.Analyzers</PackageId>
<PackageVersion>1.0.0</PackageVersion>
<PackageVersion>1.1.0</PackageVersion>
<Description>Analyzers to guide to the correct usage of Funcky.</Description>
<PackageTags>funcky, analyzers, roslyn</PackageTags>
<DevelopmentDependency>true</DevelopmentDependency>
Expand Down
15 changes: 14 additions & 1 deletion Funcky.Analyzers/Funcky.Analyzers/AnalyzerReleases.Shipped.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
; Shipped analyzer releases
; Shipped analyzer releases
; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md

## Release 1.0
### New Rules
Rule ID | Category | Severity | Notes
--------|----------|----------|-------
λ1001 | Funcky | Warning | EnumerableRepeatOnceAnalyzer
λ1002 | Funcky | Warning | EnumerableRepeatNeverAnalyzer

## Release 1.1
### New Rules
Rule ID | Category | Severity | Notes
--------|----------|----------|-------
λ1003 | Funcky | Warning | UseWithArgumentNamesAnalyzer
λ1004 | Funcky | Warning | JoinToStringEmptyAnalyzer
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,3 @@
; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md

### New Rules

Rule ID | Category | Severity | Notes
--------|----------|----------|-------
λ1001 | Funcky | Warning | EnumerableRepeatOnceAnalyzer
λ1002 | Funcky | Warning | EnumerableRepeatNeverAnalyzer
λ1003 | Funcky | Warning | UseWithArgumentNamesAnalyzer
λ1004 | Funcky | Warning | JoinToStringEmptyAnalyzer
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
; Shipped analyzer releases
; Shipped analyzer releases
; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md

## Release 2.7
### New Rules
Rule ID | Category | Severity | Notes
--------|----------|----------|-------
λ0001 | Funcky | Error | TryGetValueAnalyzer
λ0002 | Funcky.Deprecation | Warning | OptionNoneMethodGroupAnalyzer
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,3 @@
; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md

### New Rules

Rule ID | Category | Severity | Notes
--------|----------|----------|-------
λ0001 | Funcky | Error | TryGetValueAnalyzer
λ0002 | Funcky.Deprecation | Warning | OptionNoneMethodGroupAnalyzer
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ public sealed class PartitionResultTest
[Fact]
public void ReturnsTwoEmptyEnumerablesWhenSourceIsEmpty()
{
var (left, right) = Enumerable.Empty<Either<int, string>>().Partition();
Assert.Empty(left);
Assert.Empty(right);
var (error, ok) = Enumerable.Empty<Either<int, string>>().Partition();
Assert.Empty(error);
Assert.Empty(ok);
}

[Fact]
Expand All @@ -17,7 +17,7 @@ public void PartitionsItemsIntoOkAndError()
var exceptions = Sequence.Return(new Exception("foo"), new InvalidOperationException("bar"));
var input = values.Select(Result.Ok).Interleave(exceptions.Select(Result<int>.Error));

var (ok, error) = input.Partition();
var (error, ok) = input.Partition();

Assert.Equal(values, ok);
Assert.Equal(exceptions, error);
Expand Down
3 changes: 2 additions & 1 deletion Funcky.Xunit/Funcky.Xunit.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<Nullable>enable</Nullable>
<Description>Package to use Funcky with xUnit</Description>
<PackageTags>Functional Monad xUnit</PackageTags>
<Version>0.1.3</Version>
<Version>1.0.0</Version>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<RootNamespace>Funcky</RootNamespace>
Expand All @@ -22,6 +22,7 @@
<ItemGroup>
<PackageReference Include="xunit.assert" />
<PackageReference Include="xunit.extensibility.core" />
<PackageReference Include="Microsoft.CodeAnalysis.PublicApiAnalyzers" PrivateAssets="all" Condition="'$(TargetFramework)' == 'net6.0'" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="../Funcky/Funcky.csproj" />
Expand Down
34 changes: 34 additions & 0 deletions Funcky.Xunit/PublicAPI.Shipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#nullable enable
Funcky.Extensions.ToTheoryDataExtension
Funcky.FunctionalAssert
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8, T9 Item9, T10 Item10)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5, T6, T7, System.Tuple<T8, T9, T10>!>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8, T9 Item9)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5, T6, T7, System.Tuple<T8, T9>!>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8, T9>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7, T8 Item8)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7, T8>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5, T6, T7, T8>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7, T8>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6, T7 Item7)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6, T7>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5, T6, T7>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6, T7>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5, T6 Item6)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5, T6>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5, T6>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5, T6>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4, T5 Item5)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4, T5>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4, T5>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4, T5>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3, T4 Item4)>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3, T4>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3, T4>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3, T4>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2, T3 Item3)>! enumerable) -> Xunit.TheoryData<T1, T2, T3>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2, T3>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2, T3>!>! enumerable) -> Xunit.TheoryData<T1, T2, T3>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2>(this System.Collections.Generic.IEnumerable<(T1 Item1, T2 Item2)>! enumerable) -> Xunit.TheoryData<T1, T2>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1, T2>(this System.Collections.Generic.IEnumerable<System.Tuple<T1, T2>!>! enumerable) -> Xunit.TheoryData<T1, T2>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1>(this System.Collections.Generic.IEnumerable<System.Tuple<T1>!>! enumerable) -> Xunit.TheoryData<T1>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1>(this System.Collections.Generic.IEnumerable<System.ValueTuple<T1>>! enumerable) -> Xunit.TheoryData<T1>!
static Funcky.Extensions.ToTheoryDataExtension.ToTheoryData<T1>(this System.Collections.Generic.IEnumerable<T1>! enumerable) -> Xunit.TheoryData<T1>!
static Funcky.FunctionalAssert.IsError<TResult>(Funcky.Monads.Result<TResult> result) -> System.Exception!
static Funcky.FunctionalAssert.IsLeft<TLeft, TRight>(Funcky.Monads.Either<TLeft, TRight> either) -> TLeft
static Funcky.FunctionalAssert.IsLeft<TLeft, TRight>(TLeft expectedLeft, Funcky.Monads.Either<TLeft, TRight> either) -> void
static Funcky.FunctionalAssert.IsNone<TItem>(Funcky.Monads.Option<TItem> option) -> void
static Funcky.FunctionalAssert.IsOk<TResult>(Funcky.Monads.Result<TResult> result) -> TResult
static Funcky.FunctionalAssert.IsOk<TResult>(TResult expectedResult, Funcky.Monads.Result<TResult> result) -> void
static Funcky.FunctionalAssert.IsRight<TLeft, TRight>(Funcky.Monads.Either<TLeft, TRight> either) -> TRight
static Funcky.FunctionalAssert.IsRight<TLeft, TRight>(TRight expectedRight, Funcky.Monads.Either<TLeft, TRight> either) -> void
static Funcky.FunctionalAssert.IsSome<TItem>(Funcky.Monads.Option<TItem> option) -> TItem
static Funcky.FunctionalAssert.IsSome<TItem>(TItem expectedValue, Funcky.Monads.Option<TItem> option) -> void
1 change: 1 addition & 0 deletions Funcky.Xunit/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#nullable enable
14 changes: 7 additions & 7 deletions Funcky/Extensions/EnumerableExtensions/PartitionResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ namespace Funcky.Extensions;

public static partial class EnumerableExtensions
{
/// <summary>Partitions the result values in an <see cref="IEnumerable{T}"/> into an ok and an error partition.</summary>
/// <summary>Partitions the result values in an <see cref="IEnumerable{T}"/> into an error and ok partition.</summary>
public static ResultPartitions<TValidResult> Partition<TValidResult>(this IEnumerable<Result<TValidResult>> source)
=> source.Partition((left, right) => new ResultPartitions<TValidResult>(left, right));
=> source.Partition((error, ok) => new ResultPartitions<TValidResult>(error, ok));

/// <summary>Partitions the either values in an <see cref="IEnumerable{T}"/> into an ok and an error partition.</summary>
public static TResult Partition<TValidResult, TResult>(this IEnumerable<Result<TValidResult>> source, Func<IReadOnlyCollection<TValidResult>, IReadOnlyCollection<Exception>, TResult> resultSelector)
/// <summary>Partitions the either values in an <see cref="IEnumerable{T}"/> into an error and ok partition.</summary>
public static TResult Partition<TValidResult, TResult>(this IEnumerable<Result<TValidResult>> source, Func<IReadOnlyCollection<Exception>, IReadOnlyCollection<TValidResult>, TResult> resultSelector)
=> source
.Aggregate(PartitionBuilder<TValidResult, Exception>.Default, Add)
.Aggregate(PartitionBuilder<Exception, TValidResult>.Default, Add)
.Build(resultSelector);

private static PartitionBuilder<TValidResult, Exception> Add<TValidResult>(PartitionBuilder<TValidResult, Exception> builder, Result<TValidResult> result)
=> result.Match(ok: builder.AddLeft, error: builder.AddRight);
private static PartitionBuilder<Exception, TValidResult> Add<TValidResult>(PartitionBuilder<Exception, TValidResult> builder, Result<TValidResult> result)
=> result.Match(error: builder.AddLeft, ok: builder.AddRight);
}
8 changes: 4 additions & 4 deletions Funcky/Extensions/EnumerableExtensions/ResultPartitions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ namespace Funcky.Extensions;

public readonly struct ResultPartitions<TValidResult>
{
public ResultPartitions(IReadOnlyCollection<TValidResult> ok, IReadOnlyCollection<Exception> error) => (Ok, Error) = (ok, error);

public IReadOnlyCollection<TValidResult> Ok { get; }
public ResultPartitions(IReadOnlyCollection<Exception> error, IReadOnlyCollection<TValidResult> ok) => (Error, Ok) = (error, ok);

public IReadOnlyCollection<Exception> Error { get; }

public void Deconstruct(out IReadOnlyCollection<TValidResult> ok, out IReadOnlyCollection<Exception> error) => (ok, error) = (Ok, Error);
public IReadOnlyCollection<TValidResult> Ok { get; }

public void Deconstruct(out IReadOnlyCollection<Exception> error, out IReadOnlyCollection<TValidResult> ok) => (error, ok) = (Error, Ok);
}
2 changes: 1 addition & 1 deletion Funcky/Funcky.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<Product>Funcky</Product>
<Description>Funcky is a functional C# library</Description>
<PackageTags>Functional Monad Linq</PackageTags>
<Version>2.6.0</Version>
<Version>2.7.0</Version>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PackageReadmeFile>README.md</PackageReadmeFile>
Expand Down
Loading

0 comments on commit c1e9af2

Please sign in to comment.