check il2cpp generics limitation
parent
6e0ad3623b
commit
90c5a6311b
|
@ -0,0 +1,165 @@
|
|||
#if CSHARP_7_OR_LATER || (UNITY_2018_3_OR_NEWER && (NET_STANDARD_2_0 || NET_4_6))
|
||||
#pragma warning disable CS1591 // Missing XML comment for publicly visible type or member
|
||||
|
||||
using UnityEngine;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.Scripting;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using Unity.Collections;
|
||||
using System.Threading;
|
||||
using NUnit.Framework;
|
||||
using UnityEngine.TestTools;
|
||||
using FluentAssertions;
|
||||
|
||||
namespace Cysharp.Threading.TasksTests
|
||||
{
|
||||
public class GenericsWhenAllAny
|
||||
{
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator WhenAllT15() => UniTask.ToCoroutine(async () =>
|
||||
{
|
||||
var t01 = Tes<int>();
|
||||
var t02 = Tes<int>();
|
||||
var t03 = Tes<int>();
|
||||
var t04 = Tes<int>();
|
||||
var t05 = Tes<int>();
|
||||
var t06 = Tes<int>();
|
||||
var t07 = Tes<int>();
|
||||
var t08 = Tes<int>();
|
||||
var t09 = Tes<int>();
|
||||
var t10 = Tes<int>();
|
||||
var t11 = Tes<int>();
|
||||
var t12 = Tes<int>();
|
||||
var t13 = Tes<int>();
|
||||
var t14 = Tes<int>();
|
||||
var t15 = Tes<int>();
|
||||
|
||||
await UniTask.WhenAll(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15);
|
||||
});
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator WhenAllT01_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
{
|
||||
var t01 = Tes<MyGenerics<int>>();
|
||||
|
||||
await UniTask.WhenAll(t01);
|
||||
});
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator WhenAllT02_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
{
|
||||
var t01 = Tes<MyGenerics<int>>();
|
||||
var t02 = Tes<MyGenerics<int>>();
|
||||
|
||||
await UniTask.WhenAll(t01, t02);
|
||||
});
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator WhenAllT03_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
{
|
||||
var t01 = Tes<MyGenerics<int>>();
|
||||
var t02 = Tes<MyGenerics<int>>();
|
||||
var t03 = Tes<MyGenerics<int>>();
|
||||
|
||||
await UniTask.WhenAll(t01, t02, t03);
|
||||
});
|
||||
|
||||
[UnityTest]
|
||||
public IEnumerator WhenAllT04_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
{
|
||||
var t01 = Tes<MyGenerics<int>>();
|
||||
var t02 = Tes<MyGenerics<int>>();
|
||||
var t03 = Tes<MyGenerics<int>>();
|
||||
var t04 = Tes<MyGenerics<int>>();
|
||||
|
||||
await UniTask.WhenAll(t01, t02, t03, t04);
|
||||
});
|
||||
|
||||
// will fail.
|
||||
|
||||
//[UnityTest]
|
||||
//public IEnumerator WhenAllT05_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
//{
|
||||
// var t01 = Tes<MyGenerics<int>>();
|
||||
// var t02 = Tes<MyGenerics<int>>();
|
||||
// var t03 = Tes<MyGenerics<int>>();
|
||||
// var t04 = Tes<MyGenerics<int>>();
|
||||
// var t05 = Tes<MyGenerics<int>>();
|
||||
|
||||
// await UniTask.WhenAll(t01, t02, t03, t04, t05);
|
||||
//});
|
||||
|
||||
//[UnityTest]
|
||||
//public IEnumerator WhenAllT06_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
//{
|
||||
// var t01 = Tes<MyGenerics<int>>();
|
||||
// var t02 = Tes<MyGenerics<int>>();
|
||||
// var t03 = Tes<MyGenerics<int>>();
|
||||
// var t04 = Tes<MyGenerics<int>>();
|
||||
// var t05 = Tes<MyGenerics<int>>();
|
||||
// var t06 = Tes<MyGenerics<int>>();
|
||||
|
||||
// await UniTask.WhenAll(t01, t02, t03, t04, t05, t06);
|
||||
//});
|
||||
|
||||
//[UnityTest]
|
||||
//public IEnumerator WhenAllT07_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
//{
|
||||
// var t01 = Tes<MyGenerics<int>>();
|
||||
// var t02 = Tes<MyGenerics<int>>();
|
||||
// var t03 = Tes<MyGenerics<int>>();
|
||||
// var t04 = Tes<MyGenerics<int>>();
|
||||
// var t05 = Tes<MyGenerics<int>>();
|
||||
// var t06 = Tes<MyGenerics<int>>();
|
||||
// var t07 = Tes<MyGenerics<int>>();
|
||||
|
||||
// await UniTask.WhenAll(t01, t02, t03, t04, t05, t06, t07);
|
||||
//});
|
||||
|
||||
//[UnityTest]
|
||||
//public IEnumerator WhenAllT15_Generics1() => UniTask.ToCoroutine(async () =>
|
||||
//{
|
||||
// var t01 = Tes<MyGenerics<int>>();
|
||||
// var t02 = Tes<MyGenerics<int>>();
|
||||
// var t03 = Tes<MyGenerics<int>>();
|
||||
// var t04 = Tes<MyGenerics<int>>();
|
||||
// var t05 = Tes<MyGenerics<int>>();
|
||||
// var t06 = Tes<MyGenerics<int>>();
|
||||
// var t07 = Tes<MyGenerics<int>>();
|
||||
// var t08 = Tes<MyGenerics<int>>();
|
||||
// var t09 = Tes<MyGenerics<int>>();
|
||||
// var t10 = Tes<MyGenerics<int>>();
|
||||
// var t11 = Tes<MyGenerics<int>>();
|
||||
// var t12 = Tes<MyGenerics<int>>();
|
||||
// var t13 = Tes<MyGenerics<int>>();
|
||||
// var t14 = Tes<MyGenerics<int>>();
|
||||
// var t15 = Tes<MyGenerics<int>>();
|
||||
|
||||
// await UniTask.WhenAll(t01, t02, t03, t04, t05, t06, t07, t08, t09, t10, t11, t12, t13, t14, t15);
|
||||
//});
|
||||
|
||||
async UniTask<T> Tes<T>()
|
||||
{
|
||||
await UniTask.Yield();
|
||||
return default;
|
||||
}
|
||||
}
|
||||
|
||||
public class MyGenerics<T>
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public class MyGenerics2
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
|
@ -0,0 +1,11 @@
|
|||
fileFormatVersion: 2
|
||||
guid: 6ce87069a3c0ebb47b26dca280a07756
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
Loading…
Reference in New Issue