private static string GenerateMethodWithRefOutOrNoParameters(MethodInfo baseMethod, string delegateCast, string argumentNameList, string outInitializers, string methodDescriptionWithOverride, string visibility, RequiresIsNewImplementation requiresIsNewImplementation, SortedSet <string> namespaces, bool isMake, bool hasEvents) { var requiresNew = requiresIsNewImplementation == RequiresIsNewImplementation.Yes ? "new" : string.Empty; var returnTypeName = $"{baseMethod.ReturnType.GetFullName(namespaces, baseMethod.ReturnParameter)}"; if (baseMethod.ReturnType != typeof(void)) { var returnTypeAttributes = baseMethod.ReturnParameter.GetAttributes(true, namespaces); return(isMake ? MethodTemplates.GetFunctionForMake(outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, baseMethod.ReturnType) : baseMethod.ReturnType.RequiresExplicitCast() ? MethodTemplates.GetFunctionWithValueTypeReturnValueAndNoArguments( baseMethod.MetadataToken, argumentNameList, returnTypeName, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, hasEvents) : MethodTemplates.GetFunctionWithReferenceTypeReturnValueAndNoArguments( baseMethod.MetadataToken, argumentNameList, returnTypeName, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, requiresNew, returnTypeAttributes, hasEvents)); } else { return(isMake ? MethodTemplates.GetActionMethodWithNoArgumentsForMake(outInitializers, methodDescriptionWithOverride, visibility) : MethodTemplates.GetActionMethodWithNoArguments(baseMethod.MetadataToken, argumentNameList, delegateCast, outInitializers, methodDescriptionWithOverride, visibility, hasEvents)); } }
public static void GetFunctionWithReferenceTypeReturnValueAndNoArgumentsMethodAndHasEventsIsFalse() => Assert.That(MethodTemplates.GetFunctionWithReferenceTypeReturnValueAndNoArguments(1, "b", "c", "d", "e", "f", "g", "h", "i", false), Is.EqualTo( @"ig h f { e if (this.handlers.TryGetValue(1, out var methodHandlers)) { var methodHandler = methodHandlers[0]; #pragma warning disable CS8604 var result = methodHandler.Method != null ? (c)((d)methodHandler.Method)(b) : ((R.HandlerInformation<c>)methodHandler).ReturnValue; #pragma warning restore CS8604 methodHandler.IncrementCallCount(); #pragma warning disable CS8762 return result; #pragma warning restore CS8762 } else { throw new RE.ExpectationException($""No handlers were found for f""); } }"));