Skip to content

Commit d2334d7

Browse files
committed
Remove cancellationToken as an invokable argument
1 parent bb534b6 commit d2334d7

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

src/Orleans.CodeGenerator/InvokableGenerator.cs

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -504,13 +504,13 @@ private MemberDeclarationSyntax GenerateInvokeInnerMethod(
504504
{
505505
var resultTask = IdentifierName("resultTask");
506506

507+
507508
// C# var resultTask = this.target.{Method}({params});
508509
var args = SeparatedList(
509-
fields.OfType<MethodParameterFieldDescription>()
510-
.OrderBy(p => p.ParameterOrdinal)
511-
.Select(p => SymbolEqualityComparer.Default.Equals(LibraryTypes.CancellationToken, p.Parameter.Type)
510+
method.Method.Parameters
511+
.Select(p => SymbolEqualityComparer.Default.Equals(LibraryTypes.CancellationToken, p.Type)
512512
? Argument(IdentifierName("cancellationToken"))
513-
: Argument(IdentifierName(p.FieldName))));
513+
: Argument(IdentifierName($"arg{p.Ordinal}"))));
514514

515515
var isExtension = method.Key.ProxyBase.IsExtension;
516516
var getTarget = InvocationExpression(
@@ -691,11 +691,19 @@ private MemberDeclarationSyntax GenerateDisposeMethod(
691691
}
692692

693693
private MemberDeclarationSyntax GenerateGetArgumentCount(InvokableMethodDescription methodDescription)
694-
=> methodDescription.Method.Parameters.Length is var count and not 0 ?
694+
{
695+
var count = methodDescription.Method.Parameters.Length;
696+
if (methodDescription.IsCancellable)
697+
{
698+
count -= 1;
699+
}
700+
701+
return count is not 0 ?
695702
MethodDeclaration(PredefinedType(Token(SyntaxKind.IntKeyword)), "GetArgumentCount")
696703
.WithExpressionBody(ArrowExpressionClause(LiteralExpression(SyntaxKind.NumericLiteralExpression, Literal(count))))
697704
.WithModifiers(TokenList(Token(SyntaxKind.PublicKeyword), Token(SyntaxKind.OverrideKeyword)))
698705
.WithSemicolonToken(Token(SyntaxKind.SemicolonToken)) : null;
706+
}
699707

700708
private MemberDeclarationSyntax GenerateGetActivityName(InvokableMethodDescription methodDescription)
701709
{
@@ -895,6 +903,11 @@ private List<InvokerFieldDescription> GetFieldDescriptions(InvokableMethodDescri
895903

896904
foreach (var parameter in method.Method.Parameters)
897905
{
906+
if (SymbolEqualityComparer.Default.Equals(LibraryTypes.CancellationToken, parameter.Type))
907+
{
908+
continue;
909+
}
910+
898911
fields.Add(new MethodParameterFieldDescription(method.CodeGenerator, parameter, $"arg{fieldId}", fieldId, method.TypeParameterSubstitutions));
899912
fieldId++;
900913
}

0 commit comments

Comments
 (0)