From 72bbe03e77ecfcf2fa4889ffae522c1cd47bef5e Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
Date: Mon, 20 May 2024 12:38:45 +0000
Subject: [PATCH 1/9] Update .NET SDK
Update .NET SDK to version 9.0.100-preview.5.24269.5.
---
updated-dependencies:
- dependency-name: Microsoft.NET.Sdk
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: github-actions[bot]
---
global.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/global.json b/global.json
index 0b590b354097..53cb5a1fb8ab 100644
--- a/global.json
+++ b/global.json
@@ -1,9 +1,9 @@
{
"sdk": {
- "version": "9.0.100-preview.5.24262.2"
+ "version": "9.0.100-preview.5.24269.5"
},
"tools": {
- "dotnet": "9.0.100-preview.5.24262.2",
+ "dotnet": "9.0.100-preview.5.24269.5",
"runtimes": {
"dotnet/x86": [
"$(MicrosoftNETCoreBrowserDebugHostTransportVersion)"
From 527b090994ff2492bd969e7ed7ccaf1cb8abe6ad Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Fri, 24 May 2024 08:42:05 +0200
Subject: [PATCH 2/9] changing the condition to check for SimpleNameSyntax,
which is a base class for both GenericNameSyntax and IdentifierNameSyntax
---
.../src/HubClientProxyGenerator.Parser.cs | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
index 1dd1655dd864..f9d15a47b984 100644
--- a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
+++ b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
@@ -136,11 +136,9 @@ private static bool IsExtensionClassSignatureValid(ClassDeclarationSyntax syntax
internal static bool IsSyntaxTargetForGeneration(SyntaxNode node) => node is MemberAccessExpressionSyntax
{
- Name: GenericNameSyntax
- {
- Arity: 1
- }
- };
+ Name: SimpleNameSyntax
+ }
+
internal static MemberAccessExpressionSyntax? GetSemanticTargetForGeneration(GeneratorSyntaxContext context)
{
From f34fdbe1240b5eb95ff352d8de0432adece8b97d Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Fri, 24 May 2024 08:43:30 +0200
Subject: [PATCH 3/9] By explicitly checking for SimpleNameSyntax, we ensure
that both generic and inferred cases are handled.
---
.../src/HubClientProxyGenerator.Parser.cs | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
index f9d15a47b984..b1c76367a686 100644
--- a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
+++ b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
@@ -249,10 +249,11 @@ internal SourceGenerationSpec Parse(ImmutableArray meth
var argModel = _compilation.GetSemanticModel(argType.SyntaxTree);
symbol = (ITypeSymbol)argModel.GetSymbolInfo(argType).Symbol;
}
- else if (memberAccess.Name is not GenericNameSyntax
- && memberAccess.Parent.ChildNodes().FirstOrDefault(x => x is ArgumentListSyntax) is
- ArgumentListSyntax
- { Arguments: { Count: 1 } } als)
+ else if (memberAccess.Name is SimpleNameSyntax
+ && memberAccess.Parent.ChildNodes().FirstOrDefault(x => x is ArgumentListSyntax) is
+ ArgumentListSyntax
+ { Arguments: { Count: 1 } } als)
+
{
// Method isn't using generic syntax so inspect first expression in arguments to deduce the type
var argModel = _compilation.GetSemanticModel(als.Arguments[0].Expression.SyntaxTree);
From 2d6a58fa55606bb389d8636aefb0a3eb72dee784 Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Fri, 24 May 2024 10:11:01 +0200
Subject: [PATCH 4/9] Removing extra line
---
.../Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
index b1c76367a686..86904dd7a1b8 100644
--- a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
+++ b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
@@ -139,7 +139,6 @@ internal static bool IsSyntaxTargetForGeneration(SyntaxNode node) => node is Mem
Name: SimpleNameSyntax
}
-
internal static MemberAccessExpressionSyntax? GetSemanticTargetForGeneration(GeneratorSyntaxContext context)
{
var memberAccessExpressionSyntax = (MemberAccessExpressionSyntax)context.Node;
From d95abf8ef8762043632674df71a381b8b5cc7e6d Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Fri, 24 May 2024 10:24:46 +0200
Subject: [PATCH 5/9] Fixing IsSyntaxTargetForGeneration signature
---
.../src/HubClientProxyGenerator.Parser.cs | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
index 86904dd7a1b8..b17988dbd331 100644
--- a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
+++ b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
@@ -134,10 +134,7 @@ private static bool IsExtensionClassSignatureValid(ClassDeclarationSyntax syntax
return true;
}
- internal static bool IsSyntaxTargetForGeneration(SyntaxNode node) => node is MemberAccessExpressionSyntax
- {
- Name: SimpleNameSyntax
- }
+ internal static bool IsSyntaxTargetForGeneration(SyntaxNode node) => node is MemberAccessExpressionSyntax{ Name: SimpleNameSyntax };
internal static MemberAccessExpressionSyntax? GetSemanticTargetForGeneration(GeneratorSyntaxContext context)
{
From 316d2088235d682438e42ccd472e9f19daa54235 Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Thu, 30 May 2024 17:31:06 +0200
Subject: [PATCH 6/9] Removing extra line
---
.../Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
index b17988dbd331..6ed0b35de46d 100644
--- a/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
+++ b/src/SignalR/clients/csharp/Client.SourceGenerator/src/HubClientProxyGenerator.Parser.cs
@@ -249,7 +249,6 @@ internal SourceGenerationSpec Parse(ImmutableArray meth
&& memberAccess.Parent.ChildNodes().FirstOrDefault(x => x is ArgumentListSyntax) is
ArgumentListSyntax
{ Arguments: { Count: 1 } } als)
-
{
// Method isn't using generic syntax so inspect first expression in arguments to deduce the type
var argModel = _compilation.GetSemanticModel(als.Arguments[0].Expression.SyntaxTree);
From 5bdfc3417f1dbcfc43f8da2fda283d484fe7ad99 Mon Sep 17 00:00:00 2001
From: MattyLeslie
Date: Thu, 30 May 2024 18:02:22 +0200
Subject: [PATCH 7/9] Add tests for HubClientProxyGenerator to validate
handling of inferred and explicit generic type arguments.
---
.../UnitTests/HubClientProxyGeneratorTests.cs | 49 +++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/src/SignalR/clients/csharp/Client/test/UnitTests/HubClientProxyGeneratorTests.cs b/src/SignalR/clients/csharp/Client/test/UnitTests/HubClientProxyGeneratorTests.cs
index a252a46a5ecf..0be266139380 100644
--- a/src/SignalR/clients/csharp/Client/test/UnitTests/HubClientProxyGeneratorTests.cs
+++ b/src/SignalR/clients/csharp/Client/test/UnitTests/HubClientProxyGeneratorTests.cs
@@ -259,4 +259,53 @@ public async Task CallbacksGetTriggered()
await returnTaskFunc(Array.Empty