internal static TypeReference ResolveReturnTypeIfNeeded(MethodReference methodReference)
{
if (methodReference.DeclaringType.IsArray && methodReference.Name == "Get")
return methodReference.ReturnType;
var genericInstanceMethod = methodReference as GenericInstanceMethod;
var declaringGenericInstanceType = methodReference.DeclaringType as GenericInstanceType;
if (genericInstanceMethod == null && declaringGenericInstanceType == null)
return methodReference.ReturnType;
return ResolveIfNeeded (genericInstanceMethod, declaringGenericInstanceType, methodReference.ReturnType);
}