From 45871a50e5cc5702d60ab0ddb2d6b1934559f684 Mon Sep 17 00:00:00 2001 From: Claire Novotny Date: Thu, 4 Feb 2021 15:57:12 -0500 Subject: [PATCH] Prefix our local vars with ______ to prevent collisions with method argument names --- .../InterfaceStubGenerator.cs | 6 +- Refit.Tests/InterfaceStubGenerator.cs | 144 +++++++++--------- Refit.Tests/RestService.cs | 24 +++ 3 files changed, 99 insertions(+), 75 deletions(-) diff --git a/InterfaceStubGenerator.Core/InterfaceStubGenerator.cs b/InterfaceStubGenerator.Core/InterfaceStubGenerator.cs index e8e69152c..9c317b581 100644 --- a/InterfaceStubGenerator.Core/InterfaceStubGenerator.cs +++ b/InterfaceStubGenerator.Core/InterfaceStubGenerator.cs @@ -320,9 +320,9 @@ void ProcessRefitMethod(StringBuilder source, IMethodSymbol methodSymbol) var genericString = genericList.Count > 0 ? $", new global::System.Type[] {{ {string.Join(", ", genericList)} }}" : string.Empty; source.Append(@$" - var arguments = new object[] {{ {string.Join(", ", argList)} }}; - var func = requestBuilder.BuildRestResultFuncForMethod(""{methodSymbol.Name}"", new global::System.Type[] {{ {string.Join(", ", typeList)} }}{genericString} ); - return ({methodSymbol.ReturnType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})func(Client, arguments); + var ______arguments = new object[] {{ {string.Join(", ", argList)} }}; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""{methodSymbol.Name}"", new global::System.Type[] {{ {string.Join(", ", typeList)} }}{genericString} ); + return ({methodSymbol.ReturnType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)})______func(this.Client, ______arguments); "); WriteMethodClosing(source); diff --git a/Refit.Tests/InterfaceStubGenerator.cs b/Refit.Tests/InterfaceStubGenerator.cs index f9e78734b..298792f0e 100644 --- a/Refit.Tests/InterfaceStubGenerator.cs +++ b/Refit.Tests/InterfaceStubGenerator.cs @@ -177,105 +177,105 @@ public RefitTestsIGitHubApi(global::System.Net.Http.HttpClient client, global::R /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApi.GetUser(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUser"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUser"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.IGitHubApi.GetUserObservable(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservable"", new global::System.Type[] { typeof(string) } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservable"", new global::System.Type[] { typeof(string) } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.IGitHubApi.GetUserCamelCase(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserCamelCase"", new global::System.Type[] { typeof(string) } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserCamelCase"", new global::System.Type[] { typeof(string) } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task> global::Refit.Tests.IGitHubApi.GetOrgMembers(string @orgName, global::System.Threading.CancellationToken @cancellationToken) { - var arguments = new object[] { @orgName, @cancellationToken }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetOrgMembers"", new global::System.Type[] { typeof(string), typeof(global::System.Threading.CancellationToken) } ); - return (global::System.Threading.Tasks.Task>)func(Client, arguments); + var ______arguments = new object[] { @orgName, @cancellationToken }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetOrgMembers"", new global::System.Type[] { typeof(string), typeof(global::System.Threading.CancellationToken) } ); + return (global::System.Threading.Tasks.Task>)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApi.FindUsers(string @q) { - var arguments = new object[] { @q }; - var func = requestBuilder.BuildRestResultFuncForMethod(""FindUsers"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { @q }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""FindUsers"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApi.GetIndex() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetIndex"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetIndex"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.IGitHubApi.GetIndexObservable() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetIndexObservable"", new global::System.Type[] { } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetIndexObservable"", new global::System.Type[] { } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApi.NothingToSeeHere() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHere"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHere"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task> global::Refit.Tests.IGitHubApi.NothingToSeeHereWithMetadata() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHereWithMetadata"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task>)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHereWithMetadata"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task>)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task> global::Refit.Tests.IGitHubApi.GetUserWithMetadata(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserWithMetadata"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task>)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserWithMetadata"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task>)______func(this.Client, ______arguments); } /// global::System.IObservable> global::Refit.Tests.IGitHubApi.GetUserObservableWithMetadata(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservableWithMetadata"", new global::System.Type[] { typeof(string) } ); - return (global::System.IObservable>)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservableWithMetadata"", new global::System.Type[] { typeof(string) } ); + return (global::System.IObservable>)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApi.CreateUser(global::Refit.Tests.User @user) { - var arguments = new object[] { @user }; - var func = requestBuilder.BuildRestResultFuncForMethod(""CreateUser"", new global::System.Type[] { typeof(global::Refit.Tests.User) } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { @user }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""CreateUser"", new global::System.Type[] { typeof(global::Refit.Tests.User) } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task> global::Refit.Tests.IGitHubApi.CreateUserWithMetadata(global::Refit.Tests.User @user) { - var arguments = new object[] { @user }; - var func = requestBuilder.BuildRestResultFuncForMethod(""CreateUserWithMetadata"", new global::System.Type[] { typeof(global::Refit.Tests.User) } ); - return (global::System.Threading.Tasks.Task>)func(Client, arguments); + var ______arguments = new object[] { @user }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""CreateUserWithMetadata"", new global::System.Type[] { typeof(global::Refit.Tests.User) } ); + return (global::System.Threading.Tasks.Task>)______func(this.Client, ______arguments); } } } @@ -317,9 +317,9 @@ public RefitTestsIGitHubApiDisposable(global::System.Net.Http.HttpClient client, /// global::System.Threading.Tasks.Task global::Refit.Tests.IGitHubApiDisposable.RefitMethod() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""RefitMethod"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""RefitMethod"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// @@ -367,65 +367,65 @@ public RefitTestsTestNestedINestedGitHubApi(global::System.Net.Http.HttpClient c /// global::System.Threading.Tasks.Task global::Refit.Tests.TestNested.INestedGitHubApi.GetUser(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUser"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUser"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.TestNested.INestedGitHubApi.GetUserObservable(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservable"", new global::System.Type[] { typeof(string) } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserObservable"", new global::System.Type[] { typeof(string) } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.TestNested.INestedGitHubApi.GetUserCamelCase(string @userName) { - var arguments = new object[] { @userName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetUserCamelCase"", new global::System.Type[] { typeof(string) } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { @userName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetUserCamelCase"", new global::System.Type[] { typeof(string) } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task> global::Refit.Tests.TestNested.INestedGitHubApi.GetOrgMembers(string @orgName) { - var arguments = new object[] { @orgName }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetOrgMembers"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task>)func(Client, arguments); + var ______arguments = new object[] { @orgName }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetOrgMembers"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task>)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.TestNested.INestedGitHubApi.FindUsers(string @q) { - var arguments = new object[] { @q }; - var func = requestBuilder.BuildRestResultFuncForMethod(""FindUsers"", new global::System.Type[] { typeof(string) } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { @q }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""FindUsers"", new global::System.Type[] { typeof(string) } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.TestNested.INestedGitHubApi.GetIndex() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetIndex"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetIndex"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.IObservable global::Refit.Tests.TestNested.INestedGitHubApi.GetIndexObservable() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetIndexObservable"", new global::System.Type[] { } ); - return (global::System.IObservable)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetIndexObservable"", new global::System.Type[] { } ); + return (global::System.IObservable)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::Refit.Tests.TestNested.INestedGitHubApi.NothingToSeeHere() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHere"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""NothingToSeeHere"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } } } @@ -533,17 +533,17 @@ public IServiceWithoutNamespace(global::System.Net.Http.HttpClient client, globa /// global::System.Threading.Tasks.Task global::IServiceWithoutNamespace.GetRoot() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""GetRoot"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""GetRoot"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } /// global::System.Threading.Tasks.Task global::IServiceWithoutNamespace.PostRoot() { - var arguments = new object[] { }; - var func = requestBuilder.BuildRestResultFuncForMethod(""PostRoot"", new global::System.Type[] { } ); - return (global::System.Threading.Tasks.Task)func(Client, arguments); + var ______arguments = new object[] { }; + var ______func = requestBuilder.BuildRestResultFuncForMethod(""PostRoot"", new global::System.Type[] { } ); + return (global::System.Threading.Tasks.Task)______func(this.Client, ______arguments); } } } diff --git a/Refit.Tests/RestService.cs b/Refit.Tests/RestService.cs index 9855240d1..67d264264 100644 --- a/Refit.Tests/RestService.cs +++ b/Refit.Tests/RestService.cs @@ -59,6 +59,10 @@ public interface IRequestBin [Post("/big")] Task PostBig(BigObject big); + + + [Get("/foo/{arguments}")] + Task SomeApiThatUsesVariableNameFromCodeGen(string arguments); } public interface IApiBindPathToObject @@ -1359,6 +1363,26 @@ public async Task PostToRequestBinWithGenerics() mockHttp.VerifyNoOutstandingExpectation(); } + [Fact] + public async Task UseMethodWithArgumentsParameter() + { + var mockHttp = new MockHttpMessageHandler(); + + var settings = new RefitSettings + { + HttpMessageHandlerFactory = () => mockHttp + }; + + var fixture = RestService.For("http://httpbin.org/", settings); + + mockHttp.Expect(HttpMethod.Get, "http://httpbin.org/foo/something") + .Respond(HttpStatusCode.OK); + + await fixture.SomeApiThatUsesVariableNameFromCodeGen("something"); + + mockHttp.VerifyNoOutstandingExpectation(); + } + [Fact] public async Task CanGetDataOutOfErrorResponses() {