Skip to content

Commit d1cd989

Browse files
fix the issue (#51931)
1 parent d72b973 commit d1cd989

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

eng/packages/http-client-csharp-mgmt/generator/Azure.Generator.Management/src/Providers/ExtensionProvider.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ private MethodProvider BuildRedirectMethod(CSharpType coreType, MethodProvider t
9393
validation: ParameterValidationType.AssertNotNull);
9494
IReadOnlyList<ParameterProvider> parameters = [
9595
extensionParameter,
96-
..target.Parameters
96+
..target.Parameters.Select(DuplicateParameter)
9797
];
9898
var modifiers = (target.Modifiers & ~MethodSignatureModifiers.Virtual) | MethodSignatureModifiers.Static | MethodSignatureModifiers.Extension;
9999
var methodSignature = new MethodSignature(
@@ -105,12 +105,29 @@ private MethodProvider BuildRedirectMethod(CSharpType coreType, MethodProvider t
105105
parameters,
106106
Attributes: [new AttributeStatement(typeof(ForwardsClientCallsAttribute))]);
107107

108+
IReadOnlyList<ValueExpression> arguments = [.. parameters.Skip(1).Select(p => (ValueExpression)p)];
108109
var body = new MethodBodyStatement[]
109110
{
110-
Return(Static().Invoke(getCachedClientMethod.Signature, [extensionParameter]).Invoke(target))
111+
Return(Static().Invoke(getCachedClientMethod.Signature, [extensionParameter]).Invoke(target.Name, arguments, async: target.Modifiers.HasFlag(MethodSignatureModifiers.Async)))
111112
};
112113

113114
return new MethodProvider(methodSignature, body, this);
115+
116+
static ParameterProvider DuplicateParameter(ParameterProvider original)
117+
{
118+
return new ParameterProvider(
119+
original.Name,
120+
original.Description,
121+
original.Type,
122+
defaultValue: original.DefaultValue,
123+
isRef: original.IsRef,
124+
isOut: original.IsOut,
125+
isParams: original.IsParams,
126+
attributes: original.Attributes,
127+
initializationValue: original.InitializationValue,
128+
location: original.Location,
129+
validation: null);
130+
}
114131
}
115132

116133
private string GetArmCoreTypeVariableName(CSharpType armCoreType)

eng/packages/http-client-csharp-mgmt/generator/TestProjects/Local/Mgmt-TypeSpec/src/Generated/Extensions/MgmtTypeSpecExtensions.cs

Lines changed: 6 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)