Skip to content

Commit f8f1050

Browse files
committed
Call benchmark method directly instead of via delegate.
1 parent 205ce61 commit f8f1050

File tree

7 files changed

+295
-259
lines changed

7 files changed

+295
-259
lines changed

src/BenchmarkDotNet/Code/CodeGenerator.cs

-1
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ internal static string Generate(BuildPartition buildPartition)
4545
.Replace("$ID$", buildInfo.Id.ToString())
4646
.Replace("$OperationsPerInvoke$", provider.OperationsPerInvoke)
4747
.Replace("$WorkloadTypeName$", provider.WorkloadTypeName)
48-
.Replace("$WorkloadMethodDelegate$", provider.WorkloadMethodDelegate(passArguments))
4948
.Replace("$WorkloadMethodReturnType$", provider.WorkloadMethodReturnTypeName)
5049
.Replace("$WorkloadMethodReturnTypeModifiers$", provider.WorkloadMethodReturnTypeModifiers)
5150
.Replace("$OverheadMethodReturnTypeName$", provider.OverheadMethodReturnTypeName)

src/BenchmarkDotNet/Code/DeclarationsProvider.cs

-8
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ internal abstract class DeclarationsProvider
3636

3737
public virtual string WorkloadMethodReturnTypeName => WorkloadMethodReturnType.GetCorrectCSharpTypeName();
3838

39-
public virtual string WorkloadMethodDelegate(string passArguments) => Descriptor.WorkloadMethod.Name;
40-
4139
public virtual string WorkloadMethodReturnTypeModifiers => null;
4240

4341
public virtual string GetWorkloadMethodCall(string passArguments) => $"{Descriptor.WorkloadMethod.Name}({passArguments})";
@@ -149,9 +147,6 @@ internal class TaskDeclarationsProvider : VoidDeclarationsProvider
149147
{
150148
public TaskDeclarationsProvider(Descriptor descriptor) : base(descriptor) { }
151149

152-
public override string WorkloadMethodDelegate(string passArguments)
153-
=> $"({passArguments}) => {{ BenchmarkDotNet.Helpers.AwaitHelper.GetResult({Descriptor.WorkloadMethod.Name}({passArguments})); }}";
154-
155150
public override string GetWorkloadMethodCall(string passArguments) => $"BenchmarkDotNet.Helpers.AwaitHelper.GetResult({Descriptor.WorkloadMethod.Name}({passArguments}))";
156151

157152
protected override Type WorkloadMethodReturnType => typeof(void);
@@ -166,9 +161,6 @@ public GenericTaskDeclarationsProvider(Descriptor descriptor) : base(descriptor)
166161

167162
protected override Type WorkloadMethodReturnType => Descriptor.WorkloadMethod.ReturnType.GetTypeInfo().GetGenericArguments().Single();
168163

169-
public override string WorkloadMethodDelegate(string passArguments)
170-
=> $"({passArguments}) => {{ return BenchmarkDotNet.Helpers.AwaitHelper.GetResult({Descriptor.WorkloadMethod.Name}({passArguments})); }}";
171-
172164
public override string GetWorkloadMethodCall(string passArguments) => $"BenchmarkDotNet.Helpers.AwaitHelper.GetResult({Descriptor.WorkloadMethod.Name}({passArguments}))";
173165
}
174166
}

src/BenchmarkDotNet/Helpers/Reflection.Emit/ModuleBuilderExtensions.cs

-60
This file was deleted.

0 commit comments

Comments
 (0)