ArgumentsExtensions
using NUnit.Framework.Interfaces;
using System;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Threading;
namespace NUnit.Framework.Internal.Extensions
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
internal static class ArgumentsExtensions
{
public sealed class <G>$5826E9994B69910B49B9282D8BFF5922
{
public static class <M>$522E48C9F2CE458AF717D4844EC3AD4A
{
}
[ExtensionMarker("<M>$522E48C9F2CE458AF717D4844EC3AD4A")]
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
1,
2
})]
public object[] Unpack()
{
throw null;
}
}
public sealed class <G>$8B246D26940F9C51BF3AB90E7FD796D9
{
public static class <M>$323F7F41D9803D7D201B6D6BDA190C13
{
}
[ExtensionMarker("<M>$323F7F41D9803D7D201B6D6BDA190C13")]
public bool LastArgumentIsCancellationToken()
{
throw null;
}
}
public sealed class <G>$1811C7E5C32E82AF4E1B159CAFA5F293
{
public static class <M>$E9216EEBA576A71DF23F80947A55113B
{
}
[ExtensionMarker("<M>$E9216EEBA576A71DF23F80947A55113B")]
public bool ParameterIsParamsArray()
{
throw null;
}
}
public sealed class <G>$248DBFF30607091B4958CD8CD757152A
{
public static class <M>$04C942FBA5110577BF3EEEC5C3689F43
{
}
[ExtensionMarker("<M>$04C942FBA5110577BF3EEEC5C3689F43")]
public bool ParameterIsParamsArray()
{
throw null;
}
}
public sealed class <G>$34346CEB1280D5FB3EDF6624EBA19C1F
{
public static class <M>$8B785AD64216E996E13FBF33B3DF4533
{
}
[ExtensionMarker("<M>$8B785AD64216E996E13FBF33B3DF4533")]
public bool LastParameterAcceptsCancellationToken()
{
throw null;
}
[ExtensionMarker("<M>$8B785AD64216E996E13FBF33B3DF4533")]
public bool LastParameterIsParamsArray()
{
throw null;
}
[ExtensionMarker("<M>$8B785AD64216E996E13FBF33B3DF4533")]
public bool HasSingleParameterOfType(Type type)
{
throw null;
}
[ExtensionMarker("<M>$8B785AD64216E996E13FBF33B3DF4533")]
public bool ShouldUnpackArrayAsArguments(Array array)
{
throw null;
}
}
public sealed class <G>$C9EF4C2B0678AD03008034688213EECB
{
public static class <M>$83B5328A3D4052D2026AA76444B2C9A7
{
}
[ExtensionMarker("<M>$83B5328A3D4052D2026AA76444B2C9A7")]
public bool LastParameterAcceptsCancellationToken()
{
throw null;
}
}
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
1,
2
})]
public static object[] Unpack(this Array array)
{
object[] array2 = new object[array.Length];
for (int i = 0; i < array.Length; i++) {
array2[i] = array.GetValue(i);
}
return array2;
}
public static bool LastArgumentIsCancellationToken([System.Runtime.CompilerServices.Nullable(new byte[] {
1,
2
})] this object[] arguments)
{
if (arguments.Length != 0)
return arguments[arguments.Length - 1]?.GetType() == typeof(CancellationToken);
return false;
}
public static bool ParameterIsParamsArray(this IParameterInfo lastParameter)
{
if (lastParameter.ParameterType.IsArray)
return lastParameter.ParameterInfo.ParameterIsParamsArray();
return false;
}
public static bool ParameterIsParamsArray(this ParameterInfo lastParameter)
{
if (lastParameter.ParameterType.IsArray)
return lastParameter.HasAttribute<ParamArrayAttribute>(false);
return false;
}
public static bool LastParameterAcceptsCancellationToken(this IParameterInfo[] parameters)
{
if (parameters.Length != 0)
return parameters[parameters.Length - 1].ParameterType == typeof(CancellationToken);
return false;
}
public static bool LastParameterIsParamsArray(this IParameterInfo[] parameters)
{
if (parameters.Length == 0)
return false;
return parameters[parameters.Length - 1].ParameterIsParamsArray();
}
public static bool HasSingleParameterOfType(this IParameterInfo[] parameters, Type type)
{
if (parameters.Length == 1)
return parameters[0].ParameterType == type;
return false;
}
public static bool ShouldUnpackArrayAsArguments(this IParameterInfo[] parameters, Array array)
{
int num = parameters.Length;
if (num == 0)
return false;
Type parameterType = parameters[0].ParameterType;
Type type = array.GetType();
if (type == typeof(object[]) && array.Length == 1 && parameterType != typeof(object))
return true;
if (parameterType.IsAssignableFrom(type)) {
switch (num) {
case 2:
if (!parameters.LastParameterIsParamsArray())
break;
goto case 1;
case 1:
return false;
}
}
if (parameters.LastParameterIsParamsArray())
return true;
if (num > 1)
return true;
if (parameterType == typeof(object))
return false;
return true;
}
public static bool LastParameterAcceptsCancellationToken(this ParameterInfo[] parameters)
{
if (parameters.Length != 0)
return parameters[parameters.Length - 1].ParameterType == typeof(CancellationToken);
return false;
}
}
}