Skip to content

Commit 3455ef9

Browse files
authored
Cache source-generated classes and assemblies to reduce allocations (#1745)
1 parent 1187c95 commit 3455ef9

62 files changed

Lines changed: 1353 additions & 1338 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

TUnit.Core.SourceGenerator.Tests/AbstractTests.Concrete1.verified.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,17 @@ file partial class Inherited_ConcreteClass1 : global::TUnit.Core.Interfaces.Sour
4242
}
4343
],
4444
Parameters = [],
45-
Class = new global::TUnit.Core.SourceGeneratedClassInformation
45+
Class = global::TUnit.Core.SourceGeneratedClassInformation.GetOrAdd("global::TUnit.TestProject.AbstractTests.ConcreteClass1", () => new global::TUnit.Core.SourceGeneratedClassInformation
4646
{
4747
Type = typeof(global::TUnit.TestProject.AbstractTests.ConcreteClass1),
48-
Assembly = new global::TUnit.Core.SourceGeneratedAssemblyInformation
48+
Assembly = global::TUnit.Core.SourceGeneratedAssemblyInformation.GetOrAdd("AbstractTests", () => new global::TUnit.Core.SourceGeneratedAssemblyInformation
4949
{
5050
Name = "AbstractTests",
5151
Attributes =
5252
[
5353

5454
],
55-
},
55+
}),
5656
Name = "ConcreteClass1",
5757
Namespace = "TUnit.TestProject.AbstractTests",
5858
Attributes =
@@ -64,7 +64,7 @@ file partial class Inherited_ConcreteClass1 : global::TUnit.Core.Interfaces.Sour
6464
],
6565
Parameters = [],
6666
Properties = [],
67-
},
67+
}),
6868
};
6969

7070
var testBuilderContext = new global::TUnit.Core.TestBuilderContext();

TUnit.Core.SourceGenerator.Tests/AbstractTests.Concrete2.verified.txt

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,17 +42,17 @@ file partial class ConcreteClass2 : global::TUnit.Core.Interfaces.SourceGenerato
4242
}
4343
],
4444
Parameters = [],
45-
Class = new global::TUnit.Core.SourceGeneratedClassInformation
45+
Class = global::TUnit.Core.SourceGeneratedClassInformation.GetOrAdd("global::TUnit.TestProject.AbstractTests.ConcreteClass2", () => new global::TUnit.Core.SourceGeneratedClassInformation
4646
{
4747
Type = typeof(global::TUnit.TestProject.AbstractTests.ConcreteClass2),
48-
Assembly = new global::TUnit.Core.SourceGeneratedAssemblyInformation
48+
Assembly = global::TUnit.Core.SourceGeneratedAssemblyInformation.GetOrAdd("AbstractTests", () => new global::TUnit.Core.SourceGeneratedAssemblyInformation
4949
{
5050
Name = "AbstractTests",
5151
Attributes =
5252
[
5353

5454
],
55-
},
55+
}),
5656
Name = "ConcreteClass2",
5757
Namespace = "TUnit.TestProject.AbstractTests",
5858
Attributes =
@@ -64,7 +64,7 @@ file partial class ConcreteClass2 : global::TUnit.Core.Interfaces.SourceGenerato
6464
],
6565
Parameters = [],
6666
Properties = [],
67-
},
67+
}),
6868
};
6969

7070
var testBuilderContext = new global::TUnit.Core.TestBuilderContext();
@@ -157,17 +157,17 @@ file partial class Inherited_ConcreteClass2 : global::TUnit.Core.Interfaces.Sour
157157
}
158158
],
159159
Parameters = [],
160-
Class = new global::TUnit.Core.SourceGeneratedClassInformation
160+
Class = global::TUnit.Core.SourceGeneratedClassInformation.GetOrAdd("global::TUnit.TestProject.AbstractTests.ConcreteClass2", () => new global::TUnit.Core.SourceGeneratedClassInformation
161161
{
162162
Type = typeof(global::TUnit.TestProject.AbstractTests.ConcreteClass2),
163-
Assembly = new global::TUnit.Core.SourceGeneratedAssemblyInformation
163+
Assembly = global::TUnit.Core.SourceGeneratedAssemblyInformation.GetOrAdd("AbstractTests", () => new global::TUnit.Core.SourceGeneratedAssemblyInformation
164164
{
165165
Name = "AbstractTests",
166166
Attributes =
167167
[
168168

169169
],
170-
},
170+
}),
171171
Name = "ConcreteClass2",
172172
Namespace = "TUnit.TestProject.AbstractTests",
173173
Attributes =
@@ -179,7 +179,7 @@ file partial class Inherited_ConcreteClass2 : global::TUnit.Core.Interfaces.Sour
179179
],
180180
Parameters = [],
181181
Properties = [],
182-
},
182+
}),
183183
};
184184

185185
var testBuilderContext = new global::TUnit.Core.TestBuilderContext();
@@ -272,17 +272,17 @@ file partial class Inherited_ConcreteClass1 : global::TUnit.Core.Interfaces.Sour
272272
}
273273
],
274274
Parameters = [],
275-
Class = new global::TUnit.Core.SourceGeneratedClassInformation
275+
Class = global::TUnit.Core.SourceGeneratedClassInformation.GetOrAdd("global::TUnit.TestProject.AbstractTests.ConcreteClass1", () => new global::TUnit.Core.SourceGeneratedClassInformation
276276
{
277277
Type = typeof(global::TUnit.TestProject.AbstractTests.ConcreteClass1),
278-
Assembly = new global::TUnit.Core.SourceGeneratedAssemblyInformation
278+
Assembly = global::TUnit.Core.SourceGeneratedAssemblyInformation.GetOrAdd("AbstractTests", () => new global::TUnit.Core.SourceGeneratedAssemblyInformation
279279
{
280280
Name = "AbstractTests",
281281
Attributes =
282282
[
283283

284284
],
285-
},
285+
}),
286286
Name = "ConcreteClass1",
287287
Namespace = "TUnit.TestProject.AbstractTests",
288288
Attributes =
@@ -294,7 +294,7 @@ file partial class Inherited_ConcreteClass1 : global::TUnit.Core.Interfaces.Sour
294294
],
295295
Parameters = [],
296296
Properties = [],
297-
},
297+
}),
298298
};
299299

300300
var testBuilderContext = new global::TUnit.Core.TestBuilderContext();

0 commit comments

Comments
 (0)