Skip to content

Commit 898c491

Browse files
committed
Upgraded LangVersion and handled compiler suggestions.
1 parent 2dbb800 commit 898c491

18 files changed

+64
-42
lines changed

.editorconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ dotnet_diagnostic.CA1822.severity = none # CA1822: Instance member does not acce
2121
dotnet_diagnostic.CS1573.severity = none # CS1573: Undocumented public symbol while -doc compiler option is used
2222
dotnet_diagnostic.CS1591.severity = none # CS1591: Missing XML comment for publicly visible type
2323
dotnet_diagnostic.CA1816.severity = none # CA1816: Dispose() should call GC.SuppressFinalize()
24+
dotnet_diagnostic.IDE0305.severity = silent # IDE0305: Collection initialization can be simplified -- spoils chained LINQ calls (https://github.com/dotnet/roslyn/issues/70833)
2425

2526
# Indentation and spacing
2627
indent_size = 4

DomainModeling.Example/DomainModeling.Example.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<ImplicitUsings>Enable</ImplicitUsings>
1010
<IsPackable>False</IsPackable>
1111
<IsTrimmable>True</IsTrimmable>
12-
<LangVersion>12</LangVersion>
12+
<LangVersion>13</LangVersion>
1313
</PropertyGroup>
1414

1515
<PropertyGroup>

DomainModeling.Example/Program.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,9 +82,9 @@ public static void Main()
8282
{
8383
Console.WriteLine("Demonstrating structural equality for collections:");
8484

85-
var abc = new CharacterSet(new[] { 'a', 'b', 'c', });
86-
var abcd = new CharacterSet(new[] { 'a', 'b', 'c', 'd', });
87-
var abcClone = new CharacterSet(new[] { 'a', 'b', 'c', });
85+
var abc = new CharacterSet([ 'a', 'b', 'c', ]);
86+
var abcd = new CharacterSet([ 'a', 'b', 'c', 'd', ]);
87+
var abcClone = new CharacterSet([ 'a', 'b', 'c', ]);
8888

8989
Console.WriteLine($"{abc == abcd}: {abc} == {abcd} (different values)");
9090
Console.WriteLine($"{abc == abcClone}: {abc} == {abcClone} (different instances, same values in collection)"); // ValueObjects have structural equality

DomainModeling.Generator/DomainModeling.Generator.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<RootNamespace>Architect.DomainModeling.Generator</RootNamespace>
77
<Nullable>Enable</Nullable>
88
<ImplicitUsings>Enable</ImplicitUsings>
9-
<LangVersion>12</LangVersion>
9+
<LangVersion>13</LangVersion>
1010
<IsPackable>False</IsPackable>
1111
<DevelopmentDependency>True</DevelopmentDependency>
1212
<EnforceExtendedAnalyzerRules>True</EnforceExtendedAnalyzerRules>

DomainModeling.Tests/Comparisons/DictionaryComparerTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,8 @@ public void DictionaryEquals_WithStringsAndIgnoreCaseComparer_ShouldReturnExpect
6464
[Fact]
6565
public void DictionaryEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
6666
{
67-
var left = CreateDictionaryWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
68-
var right = CreateDictionaryWithEqualityComparer(new[] { "A", }, StringComparer.Ordinal);
67+
var left = CreateDictionaryWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
68+
var right = CreateDictionaryWithEqualityComparer(["A",], StringComparer.Ordinal);
6969

7070
if (left is null || right is null)
7171
return; // Implementation does not support custom comparer
@@ -80,8 +80,8 @@ public void DictionaryEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
8080
[Fact]
8181
public void DictionaryEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpectedResult()
8282
{
83-
var left = CreateDictionaryWithEqualityComparer(new[] { "A", "a", }, StringComparer.OrdinalIgnoreCase);
84-
var right = CreateDictionaryWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
83+
var left = CreateDictionaryWithEqualityComparer(["A", "a",], StringComparer.OrdinalIgnoreCase);
84+
var right = CreateDictionaryWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
8585

8686
if (left is null || right is null)
8787
return; // Implementation does not support custom comparer
@@ -95,8 +95,8 @@ public void DictionaryEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpect
9595
[Fact]
9696
public void DictionaryEquals_WithDifferentCaseComparersWithoutTwoWayEquality_ShouldReturnExpectedResult()
9797
{
98-
var left = CreateDictionaryWithEqualityComparer(new[] { "a", }, StringComparer.Ordinal);
99-
var right = CreateDictionaryWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
98+
var left = CreateDictionaryWithEqualityComparer(["a",], StringComparer.Ordinal);
99+
var right = CreateDictionaryWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
100100

101101
if (left is null || right is null)
102102
return; // Implementation does not support custom comparer
@@ -111,8 +111,8 @@ public void DictionaryEquals_WithDifferentCaseComparersWithoutTwoWayEquality_Sho
111111
[Fact]
112112
public void DictionaryEquals_WithDifferentCaseComparersWithTwoWayEquality_ShouldReturnExpectedResult()
113113
{
114-
var left = CreateDictionaryWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
115-
var right = CreateDictionaryWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
114+
var left = CreateDictionaryWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
115+
var right = CreateDictionaryWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
116116

117117
if (left is null || right is null)
118118
return; // Implementation does not support custom comparer

DomainModeling.Tests/Comparisons/EnumerableComparerTests.cs

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@ public sealed class ImmutableArrayComparerTests : EnumerableComparerTests
2525

2626
public sealed class CustomListComparerTests : EnumerableComparerTests
2727
{
28+
#pragma warning disable IDE0028 // Simplify collection initialization -- Want to use custom type
2829
protected override IEnumerable<T> CreateCollectionCore<T>(IEnumerable<T> elements) => new CustomList<T>(elements.ToList());
30+
#pragma warning restore IDE0028 // Simplify collection initialization
2931

3032
private sealed class CustomList<T> : IList<T>
3133
{
32-
private IList<T> WrappedList { get; } = new List<T>();
34+
private IList<T> WrappedList { get; } = [];
3335
public T this[int index]
3436
{
3537
get => this.WrappedList[index];
@@ -88,7 +90,7 @@ public sealed class CustomReadOnlyCollectionComparerTests : EnumerableComparerTe
8890

8991
private sealed class CustomReadOnlyCollection<T> : IReadOnlyCollection<T>
9092
{
91-
private IList<T> WrappedList { get; } = new List<T>();
93+
private IList<T> WrappedList { get; } = [];
9294
public int Count => this.WrappedList.Count;
9395
public IEnumerator<T> GetEnumerator() => this.WrappedList.GetEnumerator();
9496
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
@@ -106,7 +108,7 @@ public sealed class CustomEnumerableComparerTests : EnumerableComparerTests
106108

107109
private sealed class CustomEnumerable<T> : IEnumerable<T>
108110
{
109-
private IList<T> WrappedList { get; } = new List<T>();
111+
private IList<T> WrappedList { get; } = [];
110112
public IEnumerator<T> GetEnumerator() => this.WrappedList.GetEnumerator();
111113
IEnumerator IEnumerable.GetEnumerator() => this.GetEnumerator();
112114

@@ -124,7 +126,7 @@ public abstract class EnumerableComparerTests
124126

125127
protected IEnumerable<T> CreateCollection<T>(T singleElement)
126128
{
127-
return this.CreateCollectionCore(new[] { singleElement });
129+
return this.CreateCollectionCore([singleElement]);
128130
}
129131

130132
protected virtual IEnumerable<T>? CreateCollectionWithEqualityComparer<T>(IEnumerable<T> elements, IComparer<T> comparer)
@@ -258,8 +260,8 @@ public void EnumerableEquals_WithStringIdentities_ShouldReturnExpectedResult(str
258260
[InlineData("A", "AA", false)]
259261
public void EnumerableEquals_WithStringsAndIgnoreCaseComparer_ShouldReturnExpectedResult(string? one, string? two, bool expectedResult)
260262
{
261-
var left = this.CreateCollectionWithEqualityComparer(new[] { one }, StringComparer.OrdinalIgnoreCase);
262-
var right = this.CreateCollectionWithEqualityComparer(new[] { two }, StringComparer.OrdinalIgnoreCase);
263+
var left = this.CreateCollectionWithEqualityComparer([one], StringComparer.OrdinalIgnoreCase);
264+
var right = this.CreateCollectionWithEqualityComparer([two], StringComparer.OrdinalIgnoreCase);
263265

264266
if (left is null || right is null)
265267
return; // Implementation does not support custom comparer
@@ -274,8 +276,8 @@ public void EnumerableEquals_WithStringsAndIgnoreCaseComparer_ShouldReturnExpect
274276
[Fact]
275277
public void EnumerableEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
276278
{
277-
var left = this.CreateCollectionWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
278-
var right = this.CreateCollectionWithEqualityComparer(new[] { "A", }, StringComparer.Ordinal);
279+
var left = this.CreateCollectionWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
280+
var right = this.CreateCollectionWithEqualityComparer(["A",], StringComparer.Ordinal);
279281

280282
if (left is null || right is null)
281283
return; // Implementation does not support custom comparer
@@ -290,8 +292,8 @@ public void EnumerableEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
290292
[Fact]
291293
public void EnumerableEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpectedResult()
292294
{
293-
var left = this.CreateCollectionWithEqualityComparer(new[] { "A", "a", }, StringComparer.OrdinalIgnoreCase);
294-
var right = this.CreateCollectionWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
295+
var left = this.CreateCollectionWithEqualityComparer(["A", "a",], StringComparer.OrdinalIgnoreCase);
296+
var right = this.CreateCollectionWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
295297

296298
if (left is null || right is null)
297299
return; // Implementation does not support custom comparer
@@ -304,8 +306,8 @@ public void EnumerableEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpect
304306
[Fact]
305307
public void EnumerableEquals_WithDifferentCaseComparersWithoutTwoWayEquality_ShouldReturnExpectedResult()
306308
{
307-
var left = this.CreateCollectionWithEqualityComparer(new[] { "a", }, StringComparer.Ordinal);
308-
var right = this.CreateCollectionWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
309+
var left = this.CreateCollectionWithEqualityComparer(["a",], StringComparer.Ordinal);
310+
var right = this.CreateCollectionWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
309311

310312
if (left is null || right is null)
311313
return; // Implementation does not support custom comparer
@@ -320,8 +322,8 @@ public void EnumerableEquals_WithDifferentCaseComparersWithoutTwoWayEquality_Sho
320322
[Fact]
321323
public void EnumerableEquals_WithDifferentCaseComparersWithTwoWayEquality_ShouldReturnExpectedResult()
322324
{
323-
var left = this.CreateCollectionWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
324-
var right = this.CreateCollectionWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
325+
var left = this.CreateCollectionWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
326+
var right = this.CreateCollectionWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
325327

326328
if (left is null || right is null)
327329
return; // Implementation does not support custom comparer

DomainModeling.Tests/Comparisons/LookupComparerTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ public void LookupEquals_WithStringsAndIgnoreCaseComparer_ShouldReturnExpectedRe
6969
[Fact]
7070
public void LookupEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
7171
{
72-
var left = CreateLookupWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
73-
var right = CreateLookupWithEqualityComparer(new[] { "A", }, StringComparer.Ordinal);
72+
var left = CreateLookupWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
73+
var right = CreateLookupWithEqualityComparer(["A",], StringComparer.Ordinal);
7474

7575
if (left is null || right is null)
7676
return; // Implementation does not support custom comparer
@@ -84,8 +84,8 @@ public void LookupEquals_WithoutTwoWayEquality_ShouldReturnExpectedResult()
8484
[Fact]
8585
public void LookupEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpectedResult()
8686
{
87-
var left = CreateLookupWithEqualityComparer(new[] { "A", "a", }, StringComparer.OrdinalIgnoreCase);
88-
var right = CreateLookupWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
87+
var left = CreateLookupWithEqualityComparer(["A", "a",], StringComparer.OrdinalIgnoreCase);
88+
var right = CreateLookupWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
8989

9090
if (left is null || right is null)
9191
return; // Implementation does not support custom comparer
@@ -98,8 +98,8 @@ public void LookupEquals_WithIgnoreCaseWithTwoWayEquality_ShouldReturnExpectedRe
9898
[Fact]
9999
public void LookupEquals_WithDifferentCaseComparersWithoutTwoWayEquality_ShouldReturnExpectedResult()
100100
{
101-
var left = CreateLookupWithEqualityComparer(new[] { "a", }, StringComparer.Ordinal);
102-
var right = CreateLookupWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
101+
var left = CreateLookupWithEqualityComparer(["a",], StringComparer.Ordinal);
102+
var right = CreateLookupWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
103103

104104
if (left is null || right is null)
105105
return; // Implementation does not support custom comparer
@@ -113,8 +113,8 @@ public void LookupEquals_WithDifferentCaseComparersWithoutTwoWayEquality_ShouldR
113113
[Fact]
114114
public void LookupEquals_WithDifferentCaseComparersWithTwoWayEquality_ShouldReturnExpectedResult()
115115
{
116-
var left = CreateLookupWithEqualityComparer(new[] { "A", "a", }, StringComparer.Ordinal);
117-
var right = CreateLookupWithEqualityComparer(new[] { "A", }, StringComparer.OrdinalIgnoreCase);
116+
var left = CreateLookupWithEqualityComparer(["A", "a",], StringComparer.Ordinal);
117+
var right = CreateLookupWithEqualityComparer(["A",], StringComparer.OrdinalIgnoreCase);
118118

119119
if (left is null || right is null)
120120
return; // Implementation does not support custom comparer

DomainModeling.Tests/ValueObjectTests.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -549,11 +549,11 @@ public void GetHashCode_WithIgnoreCaseString_ShouldReturnExpectedResult()
549549
[Fact]
550550
public void GetHashCode_WithImmutableArray_ShouldReturnExpectedResult()
551551
{
552-
var one = new ImmutableArrayValueObject(new[] { "A" }).GetHashCode();
553-
var two = new ImmutableArrayValueObject(new[] { "A" }).GetHashCode();
552+
var one = new ImmutableArrayValueObject(["A"]).GetHashCode();
553+
var two = new ImmutableArrayValueObject(["A"]).GetHashCode();
554554
Assert.Equal(one, two);
555555

556-
var three = new ImmutableArrayValueObject(new[] { "a" }).GetHashCode();
556+
var three = new ImmutableArrayValueObject(["a"]).GetHashCode();
557557
Assert.NotEqual(one, three); // Note that the collection elements define their own GetHashCode() and do not care about the parent ValueObject's StringComparison value, by design
558558
}
559559

@@ -628,8 +628,8 @@ public void Equals_WithIgnoreCaseString_ShouldReturnExpectedResult(string one, s
628628
[InlineData("A", "B", false)]
629629
public void Equals_WithImmutableArray_ShouldReturnExpectedResult(string one, string two, bool expectedResult)
630630
{
631-
var left = new ImmutableArrayValueObject(new[] { one });
632-
var right = new ImmutableArrayValueObject(new[] { two });
631+
var left = new ImmutableArrayValueObject([one]);
632+
var right = new ImmutableArrayValueObject([two]);
633633
Assert.Equal(expectedResult, left.Equals(right));
634634
Assert.Equal(expectedResult, right.Equals(left));
635635
}
@@ -810,6 +810,7 @@ public void ComparisonOperators_WithNullValueVsNull_ShouldReturnExpectedResult()
810810
{
811811
var nullValued = new DefaultComparingStringValue(value: null);
812812

813+
#pragma warning disable IDE0079 // Remove unnecessary suppressions -- The suppression below is often wrongfully flagged as unnecessary
813814
#pragma warning disable xUnit2024 // Do not use boolean asserts for simple equality tests -- We are testing overloaded operators
814815
Assert.False(null == nullValued);
815816
Assert.True(null != nullValued);
@@ -824,6 +825,7 @@ public void ComparisonOperators_WithNullValueVsNull_ShouldReturnExpectedResult()
824825
Assert.True(nullValued > null);
825826
Assert.True(nullValued >= null);
826827
#pragma warning restore xUnit2024 // Do not use boolean asserts for simple equality tests
828+
#pragma warning restore IDE0079 // Remove unnecessary suppressions
827829
}
828830

829831
[Theory]

DomainModeling/Attributes/DomainEventAttribute.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
12
namespace Architect.DomainModeling;
23

34
/// <summary>

DomainModeling/Attributes/DummyBuilderAttribute.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#pragma warning disable IDE0130 // Namespace does not match folder structure
12
namespace Architect.DomainModeling;
23

34
/// <summary>

0 commit comments

Comments
 (0)