Skip to content

Commit a33c262

Browse files
committed
Added source parsing to the generator driver.
1 parent af94253 commit a33c262

File tree

3 files changed

+23
-15
lines changed

3 files changed

+23
-15
lines changed

src/SourceGeneratorTestHelpers/IncrementalGenerator.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ public static GeneratorDriverRunResult Run<T>(
2121
)
2222
where T : IIncrementalGenerator, new()
2323
{
24-
var generator = new T();
25-
26-
var driver = CSharpGeneratorDriver.Create(generator);
24+
var generators = GetGenerators<T>().Select(x => x.AsSourceGenerator());
25+
var driver = CSharpGeneratorDriver.Create(generators, null, cSharpParseOptions);
2726

2827
var compilation = CSharpCompilation.Create(
2928
nameof(SourceGeneratorTestHelpers),
@@ -52,9 +51,8 @@ public static GeneratorDriverRunResult Run<T>(
5251
)
5352
where T : IIncrementalGenerator, new()
5453
{
55-
var generator = new T();
56-
57-
var driver = CSharpGeneratorDriver.Create(generator);
54+
var generators = GetGenerators<T>().Select(x => x.AsSourceGenerator());
55+
var driver = CSharpGeneratorDriver.Create(generators, null, cSharpParseOptions);
5856

5957
var syntaxTrees = sources.Select(source => CSharpSyntaxTree.ParseText(source, cSharpParseOptions)).ToArray();
6058

@@ -69,4 +67,10 @@ public static GeneratorDriverRunResult Run<T>(
6967

7068
return runResult;
7169
}
70+
71+
private static IEnumerable<T> GetGenerators<T>()
72+
where T : IIncrementalGenerator, new()
73+
{
74+
yield return new T();
75+
}
7276
}

src/SourceGeneratorTestHelpers/SourceGenerator.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@ public static GeneratorDriverRunResult Run<T>(
2121
)
2222
where T : ISourceGenerator, new()
2323
{
24-
var generator = new T();
25-
26-
var driver = CSharpGeneratorDriver.Create(generator);
24+
var generators = GetGenerators<T>().Select(x => (ISourceGenerator)x);
25+
var driver = CSharpGeneratorDriver.Create(generators, null, cSharpParseOptions);
2726

2827
var compilation = CSharpCompilation.Create(
2928
nameof(SourceGeneratorTestHelpers),
@@ -52,9 +51,8 @@ public static GeneratorDriverRunResult Run<T>(
5251
)
5352
where T : ISourceGenerator, new()
5453
{
55-
var generator = new T();
56-
57-
var driver = CSharpGeneratorDriver.Create(generator);
54+
var generators = GetGenerators<T>().Select(x => (ISourceGenerator)x);
55+
var driver = CSharpGeneratorDriver.Create(generators, null, cSharpParseOptions);
5856

5957
var syntaxTrees = sources.Select(source => CSharpSyntaxTree.ParseText(source, cSharpParseOptions)).ToArray();
6058

@@ -69,4 +67,10 @@ public static GeneratorDriverRunResult Run<T>(
6967

7068
return runResult;
7169
}
70+
71+
private static IEnumerable<T> GetGenerators<T>()
72+
where T : ISourceGenerator, new()
73+
{
74+
yield return new T();
75+
}
7276
}

src/SourceGeneratorTestHelpers/SourceGeneratorTestHelpers.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<Nullable>enable</Nullable>
77
<RootNamespace>SourceGeneratorTestHelpers</RootNamespace>
88
<LangVersion>latest</LangVersion>
9-
<Version>8.0.11</Version>
9+
<Version>8.0.12</Version>
1010
<Title>SourceGeneratorTestHelpers</Title>
1111
<Authors>Jean-Sebastien Carle</Authors>
1212
<Description>Test helpers and extension methods to simplify testing of .NET source generators.</Description>
@@ -18,8 +18,8 @@
1818
<RepositoryUrl>https://github.com/jscarle/SourceGeneratorTestHelpers</RepositoryUrl>
1919
<RepositoryType>git</RepositoryType>
2020
<PackageTags>testing source-generators</PackageTags>
21-
<AssemblyVersion>8.0.11.0</AssemblyVersion>
22-
<FileVersion>8.0.11.0</FileVersion>
21+
<AssemblyVersion>8.0.12.0</AssemblyVersion>
22+
<FileVersion>8.0.12.0</FileVersion>
2323
<NeutralLanguage>en-US</NeutralLanguage>
2424
<IncludeSymbols>true</IncludeSymbols>
2525
<SymbolPackageFormat>snupkg</SymbolPackageFormat>

0 commit comments

Comments
 (0)