Skip to content

Commit 283a01f

Browse files
committed
Backport extensions for new generators
1 parent 418a2e8 commit 283a01f

19 files changed

+274
-246
lines changed

src/ComputeSharp.D2D1.UI.SourceGenerators/CanvasEffectPropertyGenerator.Execute.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public static bool TryGetAccessibilityModifiers(
9696
}
9797

9898
// Track the accessors accessibility, if explicitly set
99-
foreach (AccessorDeclarationSyntax accessor in node.AccessorList?.Accessors ?? [])
99+
foreach (AccessorDeclarationSyntax accessor in node.AccessorList?.Accessors ?? default)
100100
{
101101
if (accessor.Modifiers.Count == 0)
102102
{

src/ComputeSharp.D2D1.UI.SourceGenerators/CanvasEffectPropertyGenerator.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
using System;
12
#if WINDOWS_UWP
23
using ComputeSharp.D2D1.Uwp.SourceGenerators.Constants;
34
using ComputeSharp.D2D1.Uwp.SourceGenerators.Models;
@@ -136,8 +137,8 @@ public void Initialize(IncrementalGeneratorInitializationContext context)
136137
item.Hierarchy.WriteSyntax(
137138
state: item.Properties,
138139
writer: writer,
139-
baseTypes: [],
140-
memberCallbacks: [Execute.WritePropertyDeclarations]);
140+
baseTypes: ReadOnlySpan<string>.Empty,
141+
memberCallbacks: new IndentedTextWriter.Callback<EquatableArray<CanvasEffectPropertyInfo>>[] { Execute.WritePropertyDeclarations });
141142

142143
context.AddSource($"{item.Hierarchy.FullyQualifiedMetadataName}.g.cs", writer.ToString());
143144
});

src/ComputeSharp.D2D1.UI.SourceGenerators/Diagnostics/Analyzers/InvalidGeneratedCanvasEffectPropertyAccessorsAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace ComputeSharp.D2D1.WinUI.SourceGenerators;
2626
public sealed class InvalidGeneratedCanvasEffectPropertyAccessorsAnalyzer : DiagnosticAnalyzer
2727
{
2828
/// <inheritdoc/>
29-
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = [InvalidGeneratedCanvasEffectPropertyAccessors];
29+
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = ImmutableArray.Create(InvalidGeneratedCanvasEffectPropertyAccessors);
3030

3131
/// <inheritdoc/>
3232
public override void Initialize(AnalysisContext context)

src/ComputeSharp.D2D1.UI.SourceGenerators/Diagnostics/Analyzers/InvalidGeneratedCanvasEffectPropertyContainingTypeAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace ComputeSharp.D2D1.WinUI.SourceGenerators;
2626
public sealed class InvalidGeneratedCanvasEffectPropertyContainingTypeAnalyzer : DiagnosticAnalyzer
2727
{
2828
/// <inheritdoc/>
29-
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = [InvalidGeneratedCanvasEffectPropertyContainingType];
29+
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = ImmutableArray.Create(InvalidGeneratedCanvasEffectPropertyContainingType);
3030

3131
/// <inheritdoc/>
3232
public override void Initialize(AnalysisContext context)

src/ComputeSharp.D2D1.UI.SourceGenerators/Diagnostics/Analyzers/InvalidGeneratedCanvasEffectPropertyDeclarationAnalyzer.cs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,11 @@ namespace ComputeSharp.D2D1.WinUI.SourceGenerators;
2626
public sealed class InvalidGeneratedCanvasEffectPropertyDeclarationAnalyzer : DiagnosticAnalyzer
2727
{
2828
/// <inheritdoc/>
29-
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } =
30-
[
29+
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = ImmutableArray.Create(
3130
InvalidGeneratedCanvasEffectPropertyDeclarationIsStatic,
3231
InvalidGeneratedCanvasEffectPropertyDeclarationIsNotIncompletePartialDefinition,
3332
InvalidGeneratedCanvasEffectPropertyDeclarationReturnsByRef,
34-
InvalidGeneratedCanvasEffectPropertyDeclarationReturnsRefLikeType
35-
];
33+
InvalidGeneratedCanvasEffectPropertyDeclarationReturnsRefLikeType);
3634

3735
/// <inheritdoc/>
3836
public override void Initialize(AnalysisContext context)

src/ComputeSharp.D2D1.UI.SourceGenerators/Diagnostics/Analyzers/RequireCSharpLanguageVersionPreviewAnalyzer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ namespace ComputeSharp.D2D1.WinUI.SourceGenerators;
2626
public sealed class RequireCSharpLanguageVersionPreviewAnalyzer : DiagnosticAnalyzer
2727
{
2828
/// <inheritdoc/>
29-
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = [CSharpLanguageVersionIsNotPreview];
29+
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics { get; } = ImmutableArray.Create(CSharpLanguageVersionIsNotPreview);
3030

3131
/// <inheritdoc/>
3232
public override void Initialize(AnalysisContext context)

src/ComputeSharp.D2D1.UI/CanvasEffectInvalidationType.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
#if !D2D1_UI_SOURCE_GENERATOR
12
using Microsoft.Graphics.Canvas;
3+
#endif
24

35
#if WINDOWS_UWP
46
namespace ComputeSharp.D2D1.Uwp;

src/ComputeSharp.SourceGeneration.Hlsl/ComputeSharp.SourceGeneration.Hlsl.projitems

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
<ItemGroup>
1212
<Compile Include="$(MSBuildThisFileDirectory)Diagnostics\DiagnosticDescriptors.cs" />
1313
<Compile Include="$(MSBuildThisFileDirectory)Extensions\StringExtensions.cs" />
14-
<Compile Include="$(MSBuildThisFileDirectory)Extensions\SyntaxNodeExtensions.cs" />
1514
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SemanticModelProvider.cs" />
1615
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SyntaxFormattingHelper.cs" />
1716
<Compile Include="$(MSBuildThisFileDirectory)Helpers\SyntaxTokenHelper.cs" />

src/ComputeSharp.SourceGeneration.Hlsl/Extensions/SyntaxNodeExtensions.cs

Lines changed: 0 additions & 228 deletions
This file was deleted.

src/ComputeSharp.SourceGeneration/ComputeSharp.SourceGeneration.projitems

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,20 @@
99
<Import_RootNamespace>ComputeSharp.SourceGeneration</Import_RootNamespace>
1010
</PropertyGroup>
1111
<ItemGroup>
12+
<Compile Include="$(MSBuildThisFileDirectory)Constants\WellKnownTrackingNames.cs" />
13+
<Compile Include="$(MSBuildThisFileDirectory)Extensions\AccessibilityExtensions.cs" />
1214
<Compile Include="$(MSBuildThisFileDirectory)Extensions\AttributeDataExtensions.cs" />
1315
<Compile Include="$(MSBuildThisFileDirectory)Extensions\CompilationExtensions.cs" />
1416
<Compile Include="$(MSBuildThisFileDirectory)Extensions\DiagnosticsExtensions.cs" />
1517
<Compile Include="$(MSBuildThisFileDirectory)Extensions\IMethodSymbolExtensions.cs" />
18+
<Compile Include="$(MSBuildThisFileDirectory)Extensions\IncrementalValuesProviderExtensions.cs" />
1619
<Compile Include="$(MSBuildThisFileDirectory)Extensions\IndentedTextWriterExtensions.cs" />
1720
<Compile Include="$(MSBuildThisFileDirectory)Extensions\IPropertySymbolExtensions.cs" />
1821
<Compile Include="$(MSBuildThisFileDirectory)Extensions\IFieldSymbolExtensions.cs" />
1922
<Compile Include="$(MSBuildThisFileDirectory)Extensions\ITypeSymbolExtensions.cs" />
2023
<Compile Include="$(MSBuildThisFileDirectory)Extensions\ISymbolExtensions.cs" />
2124
<Compile Include="$(MSBuildThisFileDirectory)Extensions\SymbolInfoExtensions.cs" />
25+
<Compile Include="$(MSBuildThisFileDirectory)Extensions\SyntaxNodeExtensions.cs" />
2226
<Compile Include="$(MSBuildThisFileDirectory)helpers\DynamicCache{TKey,TValue}.cs" />
2327
<Compile Include="$(MSBuildThisFileDirectory)Helpers\EquatableArray{T}.cs" />
2428
<Compile Include="$(MSBuildThisFileDirectory)Helpers\HashCode.cs" />
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
namespace ComputeSharp.SourceGeneration.Constants;
2+
3+
/// <summary>
4+
/// The well known names for tracking steps, to test the incremental generators.
5+
/// </summary>
6+
internal static class WellKnownTrackingNames
7+
{
8+
/// <summary>
9+
/// The initial <see cref="Microsoft.CodeAnalysis.SyntaxValueProvider.ForAttributeWithMetadataName"/> transform node.
10+
/// </summary>
11+
public const string Execute = nameof(Execute);
12+
13+
/// <summary>
14+
/// The filtered transform with just output diagnostics.
15+
/// </summary>
16+
public const string Diagnostics = nameof(Diagnostics);
17+
18+
/// <summary>
19+
/// The filtered transform with just output sources.
20+
/// </summary>
21+
public const string Output = nameof(Output);
22+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
using Microsoft.CodeAnalysis;
2+
3+
namespace ComputeSharp.SourceGeneration.Extensions;
4+
5+
/// <summary>
6+
/// Extension methods for the <see cref="Accessibility"/> type.
7+
/// </summary>
8+
internal static class AccessibilityExtensions
9+
{
10+
/// <summary>
11+
/// Gets the expression for a given <see cref="Accessibility"/> value.
12+
/// </summary>
13+
/// <param name="accessibility">The input <see cref="Accessibility"/> value.</param>
14+
/// <returns>The expression for <paramref name="accessibility"/>.</returns>
15+
public static string GetExpression(this Accessibility accessibility)
16+
{
17+
return accessibility switch
18+
{
19+
Accessibility.Private => "private",
20+
Accessibility.ProtectedAndInternal => "private protected",
21+
Accessibility.Protected => "protected",
22+
Accessibility.Internal => "internal",
23+
Accessibility.ProtectedOrInternal => "protected internal",
24+
Accessibility.Public => "public",
25+
_ => ""
26+
};
27+
}
28+
}

0 commit comments

Comments
 (0)