Skip to content

Commit 7069a2b

Browse files
implement type pattern generator (#79)
1 parent 607dcc3 commit 7069a2b

31 files changed

+633
-185
lines changed

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project>
22
<PropertyGroup>
3-
<AutoIncrementedAssemblyRevision>2154</AutoIncrementedAssemblyRevision>
3+
<AutoIncrementedAssemblyRevision>2232</AutoIncrementedAssemblyRevision>
44
</PropertyGroup>
55
<PropertyGroup Condition="$(MSBuildProjectName.EndsWith('.Tests'))">
66
<IsTestProject>true</IsTestProject>

DocReflect.Library/Documentation.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ public Documentation(IEnumerable<DocumentationComment> topLevelComments)
1818
{
1919
_ = topLevelComments ?? throw new ArgumentNullException(nameof(topLevelComments));
2020

21-
var tlcList = EquatableCollectionFactory.Default.CreateList<DocumentationComment>();
21+
using var factory = EquatableCollectionFactory.CreateDefault();
22+
23+
var tlcList = factory.CreateList<DocumentationComment>();
2224

2325
foreach(var tlc in topLevelComments)
2426
{
@@ -32,8 +34,6 @@ public Documentation(IEnumerable<DocumentationComment> topLevelComments)
3234
tlcList.Add(tlc);
3335
}
3436

35-
tlcList.MutabilityContext.SetImmutable();
36-
3737
TopLevelComments = tlcList;
3838
}
3939

DocReflect.Library/EnumerableExtensions.Internal.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ public static IReadOnlyDictionary<String, TValue> ToEquatableNameMap<TValue>(
1111
{
1212
_ = elements ?? throw new ArgumentNullException(elementsName);
1313

14-
var map = EquatableCollectionFactory.Default.CreateDictionary<String, TValue>();
14+
using var factory = EquatableCollectionFactory.CreateDefault();
15+
16+
var map = factory.CreateDictionary<String, TValue>();
1517

1618
foreach(var element in elements)
1719
{
@@ -26,8 +28,6 @@ public static IReadOnlyDictionary<String, TValue> ToEquatableNameMap<TValue>(
2628
map.Add(name, element);
2729
}
2830

29-
map.MutabilityContext.SetImmutable();
30-
3131
return map;
3232
}
3333
}

UtilityGenerators.Dev/UtilityGenerators.Dev.csproj

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,6 @@
1414
<DefineConstants>$(DefineConstants);GENERATOR;RHOMICRO_CODEANALYSIS_UTILITYGENERATORS_DEV</DefineConstants>
1515
</PropertyGroup>
1616

17-
<ItemGroup>
18-
<None Remove="bin\Debug\netstandard2.0\\RhoMicro.CodeAnalysis.UtilityGenerators.Dev.1.0.0.2107.dll" />
19-
</ItemGroup>
20-
2117
<ItemGroup>
2218
<None Include="$(OutputPath)\$(AssemblyName).dll" Pack="true" PackagePath="analyzers/dotnet/cs" Visible="false" />
2319
<None Include="..\UtilityGenerators\README.md" Pack="true" PackagePath="/" CopyToOutputDirectory="Always" />
@@ -58,7 +54,13 @@
5854
<Compile Include="..\UtilityGenerators\AttributeFactory\PropertyModel.cs" Link="PropertyModel.cs" />
5955
<Compile Include="..\UtilityGenerators\AttributeFactory\SourceBuildingContext.cs" Link="SourceBuildingContext.cs" />
6056
<Compile Include="..\UtilityGenerators\FileInclusion\FileInclusionGenerator.cs" Link="FileInclusionGenerator.cs" />
57+
<Compile Include="..\UtilityGenerators\IndentedStrringBuilderAppendables\IndentedStringBuilderAppendablesGenerator.cs" Link="IndentedStringBuilderAppendablesGenerator.cs" />
6158
<Compile Include="..\UtilityGenerators\NonEquatable\NonEquatableGenerator.cs" Link="NonEquatableGenerator.cs" />
59+
<Compile Include="..\UtilityGenerators\TypeSymbolPattern\TypeSymbolPatternAttributeModel.cs" Link="TypeSymbolPatternAttributeModel.cs" />
60+
<Compile Include="..\UtilityGenerators\TypeSymbolPattern\TypeSymbolPatternGenerator.cs" Link="TypeSymbolPatternGenerator.cs" />
61+
<Compile Include="..\UtilityGenerators\TypeSymbolPattern\TypeSymbolPatternMethodModel.cs" Link="TypeSymbolPatternMethodModel.cs" />
62+
<Compile Include="..\UtilityGenerators\TypeSymbolPattern\TypeSymbolPatternMethodsModel.cs" Link="TypeSymbolPatternMethodsModel.cs" />
63+
<Compile Include="..\UtilityGenerators\TypeSymbolPattern\TypeSymbolPatternMethodsPartialModel.cs" Link="TypeSymbolPatternMethodsPartialModel.cs" />
6264
</ItemGroup>
6365

6466
</Project>

UtilityGenerators.Tests/Library/Collections/EquatableDictionaryTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public class EquatableDictionaryTests
1919
public void ValueSemantics_VerifyEquality(Dictionary<Int32, String> values)
2020
{
2121
// Arrange
22-
var factory = EquatableCollectionFactory.Default;
22+
var factory = EquatableCollectionFactory.CreateDefault();
2323
var dict1 = factory.CreateDictionary<Int32, String>();
2424
var dict2 = factory.CreateDictionary<Int32, String>();
2525

@@ -40,7 +40,7 @@ public void ValueSemantics_VerifyEquality(Dictionary<Int32, String> values)
4040
public void ValueSemantics_VerifyInequality(Int32[] initialKeys, String[] initialValues, Int32[] modifiedKeys, String[] modifiedValues)
4141
{
4242
// Arrange
43-
var factory = EquatableCollectionFactory.Default;
43+
var factory = EquatableCollectionFactory.CreateDefault();
4444
var dict1 = factory.CreateDictionary<Int32, String>();
4545
var dict2 = factory.CreateDictionary<Int32, String>();
4646

@@ -63,7 +63,7 @@ public void ValueSemantics_VerifyInequality(Int32[] initialKeys, String[] initia
6363
public void Immutability_AddThrowsAfterSetImmutable(Dictionary<Int32, String> values)
6464
{
6565
// Arrange
66-
var factory = EquatableCollectionFactory.Default;
66+
var factory = EquatableCollectionFactory.CreateDefault();
6767
var dict = factory.CreateDictionary<Int32, String>();
6868

6969
foreach(var kvp in values)
@@ -83,7 +83,7 @@ public void Immutability_AddThrowsAfterSetImmutable(Dictionary<Int32, String> va
8383
public void Immutability_ClearThrowsAfterSetImmutable(Dictionary<Int32, String> values)
8484
{
8585
// Arrange
86-
var factory = EquatableCollectionFactory.Default;
86+
var factory = EquatableCollectionFactory.CreateDefault();
8787
var dict = factory.CreateDictionary<Int32, String>();
8888

8989
foreach(var kvp in values)
@@ -103,7 +103,7 @@ public void Immutability_ClearThrowsAfterSetImmutable(Dictionary<Int32, String>
103103
public void Immutability_RemoveThrowsAfterSetImmutable(Dictionary<Int32, String> values)
104104
{
105105
// Arrange
106-
var factory = EquatableCollectionFactory.Default;
106+
var factory = EquatableCollectionFactory.CreateDefault();
107107
var dict = factory.CreateDictionary<Int32, String>();
108108

109109
foreach(var kvp in values)
@@ -123,7 +123,7 @@ public void Immutability_RemoveThrowsAfterSetImmutable(Dictionary<Int32, String>
123123
public void Mutability_AddSucceedsBeforeSetImmutable(Dictionary<Int32, String> values)
124124
{
125125
// Arrange
126-
var factory = EquatableCollectionFactory.Default;
126+
var factory = EquatableCollectionFactory.CreateDefault();
127127
var dict = factory.CreateDictionary<Int32, String>();
128128

129129
// Act
@@ -145,7 +145,7 @@ public void Mutability_AddSucceedsBeforeSetImmutable(Dictionary<Int32, String> v
145145
public void Mutability_ClearSucceedsBeforeSetImmutable(Dictionary<Int32, String> values)
146146
{
147147
// Arrange
148-
var factory = EquatableCollectionFactory.Default;
148+
var factory = EquatableCollectionFactory.CreateDefault();
149149
var dict = factory.CreateDictionary<Int32, String>();
150150

151151
foreach(var kvp in values)
@@ -165,7 +165,7 @@ public void Mutability_ClearSucceedsBeforeSetImmutable(Dictionary<Int32, String>
165165
public void Mutability_RemoveSucceedsBeforeSetImmutable(Dictionary<Int32, String> values)
166166
{
167167
// Arrange
168-
var factory = EquatableCollectionFactory.Default;
168+
var factory = EquatableCollectionFactory.CreateDefault();
169169
var dict = factory.CreateDictionary<Int32, String>();
170170

171171
foreach(var kvp in values)

UtilityGenerators.Tests/Library/Collections/EquatableListTests.cs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public class EquatableListTests
2323
public void ValueSemantics_VerifyEquality(Int32[] values)
2424
{
2525
// Arrange
26-
var factory = EquatableCollectionFactory.Default;
26+
var factory = EquatableCollectionFactory.CreateDefault();
2727
var list1 = factory.CreateList<Int32>();
2828
var list2 = factory.CreateList<Int32>();
2929

@@ -46,7 +46,7 @@ public void ValueSemantics_VerifyEquality(Int32[] values)
4646
public void ValueSemantics_VerifyInequality(Int32[] initialValues, Int32[] modifiedValues)
4747
{
4848
// Arrange
49-
var factory = EquatableCollectionFactory.Default;
49+
var factory = EquatableCollectionFactory.CreateDefault();
5050
var list1 = factory.CreateList<Int32>();
5151
var list2 = factory.CreateList<Int32>();
5252

@@ -69,7 +69,7 @@ public void ValueSemantics_VerifyInequality(Int32[] initialValues, Int32[] modif
6969
public void Immutability_AddThrowsAfterSetImmutable(Int32[] values)
7070
{
7171
// Arrange
72-
var factory = EquatableCollectionFactory.Default;
72+
var factory = EquatableCollectionFactory.CreateDefault();
7373
var list = factory.CreateList<Int32>();
7474

7575
foreach(var value in values)
@@ -89,7 +89,7 @@ public void Immutability_AddThrowsAfterSetImmutable(Int32[] values)
8989
public void Immutability_RemoveThrowsAfterSetImmutable(Int32[] values)
9090
{
9191
// Arrange
92-
var factory = EquatableCollectionFactory.Default;
92+
var factory = EquatableCollectionFactory.CreateDefault();
9393
var list = factory.CreateList<Int32>();
9494

9595
foreach(var value in values)
@@ -109,7 +109,7 @@ public void Immutability_RemoveThrowsAfterSetImmutable(Int32[] values)
109109
public void Immutability_ClearThrowsAfterSetImmutable(Int32[] values)
110110
{
111111
// Arrange
112-
var factory = EquatableCollectionFactory.Default;
112+
var factory = EquatableCollectionFactory.CreateDefault();
113113
var list = factory.CreateList<Int32>();
114114

115115
foreach(var value in values)
@@ -128,7 +128,7 @@ public void Immutability_ClearThrowsAfterSetImmutable(Int32[] values)
128128
public void Immutability_InsertThrowsAfterSetImmutable(Int32[] values)
129129
{
130130
// Arrange
131-
var factory = EquatableCollectionFactory.Default;
131+
var factory = EquatableCollectionFactory.CreateDefault();
132132
var list = factory.CreateList<Int32>();
133133

134134
foreach(var value in values)
@@ -151,7 +151,7 @@ public void Immutability_RemoveAtThrowsAfterSetImmutable(Int32[] values)
151151
return;
152152

153153
// Arrange
154-
var factory = EquatableCollectionFactory.Default;
154+
var factory = EquatableCollectionFactory.CreateDefault();
155155
var list = factory.CreateList<Int32>();
156156

157157
foreach(var value in values)
@@ -171,7 +171,7 @@ public void Immutability_RemoveAtThrowsAfterSetImmutable(Int32[] values)
171171
public void Mutability_AddSucceedsBeforeSetImmutable(Int32[] values)
172172
{
173173
// Arrange
174-
var factory = EquatableCollectionFactory.Default;
174+
var factory = EquatableCollectionFactory.CreateDefault();
175175
var list = factory.CreateList<Int32>();
176176

177177
// Act
@@ -195,7 +195,7 @@ public void Mutability_RemoveSucceedsBeforeSetImmutable(Int32[] values)
195195
return;
196196

197197
// Arrange
198-
var factory = EquatableCollectionFactory.Default;
198+
var factory = EquatableCollectionFactory.CreateDefault();
199199
var list = factory.CreateList<Int32>();
200200

201201
foreach(var value in values)
@@ -215,7 +215,7 @@ public void Mutability_RemoveSucceedsBeforeSetImmutable(Int32[] values)
215215
public void Mutability_ClearSucceedsBeforeSetImmutable(Int32[] values)
216216
{
217217
// Arrange
218-
var factory = EquatableCollectionFactory.Default;
218+
var factory = EquatableCollectionFactory.CreateDefault();
219219
var list = factory.CreateList<Int32>();
220220

221221
foreach(var value in values)
@@ -234,7 +234,7 @@ public void Mutability_ClearSucceedsBeforeSetImmutable(Int32[] values)
234234
public void Mutability_InsertSucceedsBeforeSetImmutable(Int32[] values)
235235
{
236236
// Arrange
237-
var factory = EquatableCollectionFactory.Default;
237+
var factory = EquatableCollectionFactory.CreateDefault();
238238
var list = factory.CreateList<Int32>();
239239

240240
foreach(var value in values)
@@ -257,7 +257,7 @@ public void Mutability_RemoveAtSucceedsBeforeSetImmutable(Int32[] values)
257257
return;
258258

259259
// Arrange
260-
var factory = EquatableCollectionFactory.Default;
260+
var factory = EquatableCollectionFactory.CreateDefault();
261261
var list = factory.CreateList<Int32>();
262262

263263
foreach(var value in values)

UtilityGenerators.Tests/Library/Collections/EquatableSetTests.cs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public class EquatableSetTests
2020
public void ValueSemantics_VerifyEquality(Int32[] values)
2121
{
2222
// Arrange
23-
var factory = EquatableCollectionFactory.Default;
23+
var factory = EquatableCollectionFactory.CreateDefault();
2424
var set1 = factory.CreateSet<Int32>();
2525
var set2 = factory.CreateSet<Int32>();
2626

@@ -43,7 +43,7 @@ public void ValueSemantics_VerifyEquality(Int32[] values)
4343
public void ValueSemantics_VerifyInequality(Int32[] initialValues, Int32[] modifiedValues)
4444
{
4545
// Arrange
46-
var factory = EquatableCollectionFactory.Default;
46+
var factory = EquatableCollectionFactory.CreateDefault();
4747
var set1 = factory.CreateSet<Int32>();
4848
var set2 = factory.CreateSet<Int32>();
4949

@@ -66,7 +66,7 @@ public void ValueSemantics_VerifyInequality(Int32[] initialValues, Int32[] modif
6666
public void Immutability_AddThrowsAfterSetImmutable(Int32[] values)
6767
{
6868
// Arrange
69-
var factory = EquatableCollectionFactory.Default;
69+
var factory = EquatableCollectionFactory.CreateDefault();
7070
var set = factory.CreateSet<Int32>();
7171

7272
foreach(var value in values)
@@ -86,7 +86,7 @@ public void Immutability_AddThrowsAfterSetImmutable(Int32[] values)
8686
public void Immutability_ClearThrowsAfterSetImmutable(Int32[] values)
8787
{
8888
// Arrange
89-
var factory = EquatableCollectionFactory.Default;
89+
var factory = EquatableCollectionFactory.CreateDefault();
9090
var set = factory.CreateSet<Int32>();
9191

9292
foreach(var value in values)
@@ -106,7 +106,7 @@ public void Immutability_ClearThrowsAfterSetImmutable(Int32[] values)
106106
public void Immutability_ExceptWithThrowsAfterSetImmutable(Int32[] values)
107107
{
108108
// Arrange
109-
var factory = EquatableCollectionFactory.Default;
109+
var factory = EquatableCollectionFactory.CreateDefault();
110110
var set = factory.CreateSet<Int32>();
111111

112112
foreach(var value in values)
@@ -126,7 +126,7 @@ public void Immutability_ExceptWithThrowsAfterSetImmutable(Int32[] values)
126126
public void Immutability_IntersectWithThrowsAfterSetImmutable(Int32[] values)
127127
{
128128
// Arrange
129-
var factory = EquatableCollectionFactory.Default;
129+
var factory = EquatableCollectionFactory.CreateDefault();
130130
var set = factory.CreateSet<Int32>();
131131

132132
foreach(var value in values)
@@ -146,7 +146,7 @@ public void Immutability_IntersectWithThrowsAfterSetImmutable(Int32[] values)
146146
public void Immutability_SymmetricExceptWithThrowsAfterSetImmutable(Int32[] values)
147147
{
148148
// Arrange
149-
var factory = EquatableCollectionFactory.Default;
149+
var factory = EquatableCollectionFactory.CreateDefault();
150150
var set = factory.CreateSet<Int32>();
151151

152152
foreach(var value in values)
@@ -166,7 +166,7 @@ public void Immutability_SymmetricExceptWithThrowsAfterSetImmutable(Int32[] valu
166166
public void Immutability_UnionWithThrowsAfterSetImmutable(Int32[] values)
167167
{
168168
// Arrange
169-
var factory = EquatableCollectionFactory.Default;
169+
var factory = EquatableCollectionFactory.CreateDefault();
170170
var set = factory.CreateSet<Int32>();
171171

172172
foreach(var value in values)
@@ -186,7 +186,7 @@ public void Immutability_UnionWithThrowsAfterSetImmutable(Int32[] values)
186186
public void Mutability_AddSucceedsBeforeSetImmutable(Int32[] values)
187187
{
188188
// Arrange
189-
var factory = EquatableCollectionFactory.Default;
189+
var factory = EquatableCollectionFactory.CreateDefault();
190190
var set = factory.CreateSet<Int32>();
191191

192192
// Act
@@ -207,7 +207,7 @@ public void Mutability_AddSucceedsBeforeSetImmutable(Int32[] values)
207207
public void Mutability_ClearSucceedsBeforeSetImmutable(Int32[] values)
208208
{
209209
// Arrange
210-
var factory = EquatableCollectionFactory.Default;
210+
var factory = EquatableCollectionFactory.CreateDefault();
211211
var set = factory.CreateSet<Int32>();
212212

213213
foreach(var value in values)
@@ -227,7 +227,7 @@ public void Mutability_ClearSucceedsBeforeSetImmutable(Int32[] values)
227227
public void Mutability_ExceptWithSucceedsBeforeSetImmutable(Int32[] values)
228228
{
229229
// Arrange
230-
var factory = EquatableCollectionFactory.Default;
230+
var factory = EquatableCollectionFactory.CreateDefault();
231231
var set = factory.CreateSet<Int32>();
232232

233233
foreach(var value in values)
@@ -247,7 +247,7 @@ public void Mutability_ExceptWithSucceedsBeforeSetImmutable(Int32[] values)
247247
public void Mutability_IntersectWithSucceedsBeforeSetImmutable(Int32[] values)
248248
{
249249
// Arrange
250-
var factory = EquatableCollectionFactory.Default;
250+
var factory = EquatableCollectionFactory.CreateDefault();
251251
var set = factory.CreateSet<Int32>();
252252

253253
foreach(var value in values)
@@ -267,7 +267,7 @@ public void Mutability_IntersectWithSucceedsBeforeSetImmutable(Int32[] values)
267267
public void Mutability_SymmetricExceptWithSucceedsBeforeSetImmutable(Int32[] values)
268268
{
269269
// Arrange
270-
var factory = EquatableCollectionFactory.Default;
270+
var factory = EquatableCollectionFactory.CreateDefault();
271271
var set = factory.CreateSet<Int32>();
272272

273273
foreach(var value in values)
@@ -289,7 +289,7 @@ public void Mutability_SymmetricExceptWithSucceedsBeforeSetImmutable(Int32[] val
289289
public void Mutability_UnionWithSucceedsBeforeSetImmutable(Int32[] values)
290290
{
291291
// Arrange
292-
var factory = EquatableCollectionFactory.Default;
292+
var factory = EquatableCollectionFactory.CreateDefault();
293293
var set = factory.CreateSet<Int32>();
294294

295295
foreach(var value in values)

0 commit comments

Comments
 (0)