From 2ff09e3a935681f282c4c4fe52e974ac51ce4590 Mon Sep 17 00:00:00 2001 From: Stuart Turner Date: Sat, 30 Aug 2025 12:19:43 -0500 Subject: [PATCH] Update Performance --- src/Common/ITypeSymbolExtensions.cs | 14 +++++++++----- .../HandlerClassAnalyzer.cs | 3 ++- .../TransformHandler.cs | 3 ++- 3 files changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Common/ITypeSymbolExtensions.cs b/src/Common/ITypeSymbolExtensions.cs index de0d1f10..99cc60cf 100644 --- a/src/Common/ITypeSymbolExtensions.cs +++ b/src/Common/ITypeSymbolExtensions.cs @@ -25,9 +25,10 @@ typeSymbol is }; public static bool IsBehavior2(this ITypeSymbol typeSymbol) => - typeSymbol is + typeSymbol is INamedTypeSymbol { - MetadataName: "Behavior`2", + Arity: 2, + Name: "Behavior", ContainingNamespace: { Name: "Shared", @@ -50,7 +51,8 @@ public static bool ImplementsBehavior(this INamedTypeSymbol typeSymbol) => public static bool IsValueTask1(this ITypeSymbol typeSymbol) => typeSymbol is INamedTypeSymbol { - MetadataName: "ValueTask`1", + Arity: 1, + Name: "ValueTask", ContainingNamespace: { Name: "Tasks", @@ -88,7 +90,8 @@ typeSymbol is INamedTypeSymbol public static bool IsIEquatable1(this ITypeSymbol typeSymbol) => typeSymbol is INamedTypeSymbol { - MetadataName: "IEquatable`1", + Arity: 1, + Name: "IEquatable", ContainingNamespace: { Name: "System", @@ -133,7 +136,8 @@ typeSymbol is public static bool IsIHandler([NotNullWhen(true)] this ITypeSymbol? typeSymbol) => typeSymbol is INamedTypeSymbol { - MetadataName: "IHandler`2", + Arity: 2, + Name: "IHandler", ContainingNamespace: { Name: "Shared", diff --git a/src/Immediate.Handlers.Analyzers/HandlerClassAnalyzer.cs b/src/Immediate.Handlers.Analyzers/HandlerClassAnalyzer.cs index c2327e51..c325972c 100644 --- a/src/Immediate.Handlers.Analyzers/HandlerClassAnalyzer.cs +++ b/src/Immediate.Handlers.Analyzers/HandlerClassAnalyzer.cs @@ -361,7 +361,8 @@ private static void AnalyzeReturnType(SymbolAnalysisContext context, IMethodSymb { OriginalDefinition: { - MetadataName: "ValueTask" or "ValueTask`1", + Arity: 0 or 1, + Name: "ValueTask", ContainingNamespace: { Name: "Tasks", diff --git a/src/Immediate.Handlers.Generators/TransformHandler.cs b/src/Immediate.Handlers.Generators/TransformHandler.cs index 8b75d79d..f770d713 100644 --- a/src/Immediate.Handlers.Generators/TransformHandler.cs +++ b/src/Immediate.Handlers.Generators/TransformHandler.cs @@ -37,7 +37,8 @@ is null { OriginalDefinition: { - MetadataName: "ValueTask" or "ValueTask`1", + Arity: 0 or 1, + Name: "ValueTask", ContainingNamespace: { Name: "Tasks",