A game about forced loneliness, made by TACStudios
1namespace Unity.Burst.CompilerServices 2{ 3 /// <summary> 4 /// Compile-time aliasing intrinsics. 5 /// </summary> 6 public static class Aliasing 7 { 8 /// <summary> 9 /// Will cause a compiler error in Burst-compiled code if a and b do not alias. 10 /// </summary> 11 /// <param name="a">A pointer to do aliasing checks on.</param> 12 /// <param name="b">A pointer to do aliasing checks on.</param> 13 public static unsafe void ExpectAliased(void* a, void* b) { } 14 15 /// <summary> 16 /// Will cause a compiler error in Burst-compiled code if a and b do not alias. 17 /// </summary> 18 /// <typeparam name="A">The type of a.</typeparam> 19 /// <typeparam name="B">The type of b.</typeparam> 20 /// <param name="a">A reference to do aliasing checks on.</param> 21 /// <param name="b">A reference to do aliasing checks on.</param> 22 public static void ExpectAliased<A, B>(in A a, in B b) where A : struct where B : struct { } 23 24 /// <summary> 25 /// Will cause a compiler error in Burst-compiled code if a and b do not alias. 26 /// </summary> 27 /// <typeparam name="B">The type of b.</typeparam> 28 /// <param name="a">A pointer to do aliasing checks on.</param> 29 /// <param name="b">A reference to do aliasing checks on.</param> 30 public static unsafe void ExpectAliased<B>(void* a, in B b) where B : struct { } 31 32 /// <summary> 33 /// Will cause a compiler error in Burst-compiled code if a and b do not alias. 34 /// </summary> 35 /// <typeparam name="A">The type of a.</typeparam> 36 /// <param name="a">A reference to do aliasing checks on.</param> 37 /// <param name="b">A pointer to do aliasing checks on.</param> 38 public static unsafe void ExpectAliased<A>(in A a, void* b) where A : struct { } 39 40 /// <summary> 41 /// Will cause a compiler error in Burst-compiled code if a and b can alias. 42 /// </summary> 43 /// <param name="a">A pointer to do aliasing checks on.</param> 44 /// <param name="b">A pointer to do aliasing checks on.</param> 45 public static unsafe void ExpectNotAliased(void* a, void* b) { } 46 47 /// <summary> 48 /// Will cause a compiler error in Burst-compiled code if a and b can alias. 49 /// </summary> 50 /// <typeparam name="A">The type of a.</typeparam> 51 /// <typeparam name="B">The type of b.</typeparam> 52 /// <param name="a">A reference to do aliasing checks on.</param> 53 /// <param name="b">A reference to do aliasing checks on.</param> 54 public static void ExpectNotAliased<A, B>(in A a, in B b) where A : struct where B : struct { } 55 56 /// <summary> 57 /// Will cause a compiler error in Burst-compiled code if a and b can alias. 58 /// </summary> 59 /// <typeparam name="B">The type of b.</typeparam> 60 /// <param name="a">A pointer to do aliasing checks on.</param> 61 /// <param name="b">A reference to do aliasing checks on.</param> 62 public static unsafe void ExpectNotAliased<B>(void* a, in B b) where B : struct { } 63 64 /// <summary> 65 /// Will cause a compiler error in Burst-compiled code if a and b can alias. 66 /// </summary> 67 /// <typeparam name="A">The type of a.</typeparam> 68 /// <param name="a">A reference to do aliasing checks on.</param> 69 /// <param name="b">A pointer to do aliasing checks on.</param> 70 public static unsafe void ExpectNotAliased<A>(in A a, void* b) where A : struct { } 71 } 72}