using System;
using Il2CppInterop.Common.Attributes;
using Il2CppInterop.Runtime;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using Il2CppSystem;
using Il2CppSystem.Collections.Generic;
using Il2CppSystem.Reflection;

namespace MTAssets.UltimateLODSystem
{
	// Token: 0x0200060A RID: 1546
	public static class ListMethodsExtensions : Object
	{
		// Token: 0x06009F20 RID: 40736 RVA: 0x0028BB4C File Offset: 0x00289D4C
		[CallerCount(0)]
		public unsafe static void RemoveAllNullItems<T>(this List<T> list)
		{
			checked
			{
				IntPtr* ptr = stackalloc IntPtr[unchecked((UIntPtr)1) * (UIntPtr)sizeof(IntPtr)];
				*ptr = IL2CPP.Il2CppObjectBaseToPtr(list);
				IntPtr intPtr2;
				IntPtr intPtr = IL2CPP.il2cpp_runtime_invoke(ListMethodsExtensions.MethodInfoStoreGeneric_RemoveAllNullItems_Public_Static_Void_List_1_T_0<T>.Pointer, 0, (void**)ptr, ref intPtr2);
				Il2CppException.RaiseExceptionIfNecessary(intPtr2);
			}
		}

		// Token: 0x06009F21 RID: 40737 RVA: 0x0028BB96 File Offset: 0x00289D96
		// Note: this type is marked as 'beforefieldinit'.
		static ListMethodsExtensions()
		{
			Il2CppClassPointerStore<ListMethodsExtensions>.NativeClassPtr = IL2CPP.GetIl2CppClass("Assembly-CSharp.dll", "MTAssets.UltimateLODSystem", "ListMethodsExtensions");
			IL2CPP.il2cpp_runtime_class_init(Il2CppClassPointerStore<ListMethodsExtensions>.NativeClassPtr);
			ListMethodsExtensions.NativeMethodInfoPtr_RemoveAllNullItems_Public_Static_Void_List_1_T_0 = IL2CPP.GetIl2CppMethodByToken(Il2CppClassPointerStore<ListMethodsExtensions>.NativeClassPtr, 100675537);
		}

		// Token: 0x06009F22 RID: 40738 RVA: 0x0000A688 File Offset: 0x00008888
		public ListMethodsExtensions(IntPtr pointer)
			: base(pointer)
		{
		}

		// Token: 0x04006A91 RID: 27281
		private static readonly IntPtr NativeMethodInfoPtr_RemoveAllNullItems_Public_Static_Void_List_1_T_0;

		// Token: 0x0200060B RID: 1547
		private sealed class MethodInfoStoreGeneric_RemoveAllNullItems_Public_Static_Void_List_1_T_0<T>
		{
			// Token: 0x04006A92 RID: 27282
			internal static IntPtr Pointer = IL2CPP.il2cpp_method_get_from_reflection(IL2CPP.Il2CppObjectBaseToPtrNotNull(new MethodInfo(IL2CPP.il2cpp_method_get_object(ListMethodsExtensions.NativeMethodInfoPtr_RemoveAllNullItems_Public_Static_Void_List_1_T_0, Il2CppClassPointerStore<ListMethodsExtensions>.NativeClassPtr)).MakeGenericMethod(new Il2CppReferenceArray<Type>(new Type[] { Type.internal_from_handle(IL2CPP.il2cpp_class_get_type(Il2CppClassPointerStore<T>.NativeClassPtr)) }))));
		}
	}
}
