1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-13 13:54:11 +02:00
Beef/IDEHelper/Tests/src/MethodSelection.bf

61 lines
1.3 KiB
Beef
Raw Normal View History

2020-07-01 12:06:51 -07:00
using System;
using System.Collections;
namespace LibA
{
extension Handler
{
public static int Handle(Tests.MethodSelection.StructA val)
{
return 4;
}
public static int Handle(LibA.LibAStruct val)
{
return 4;
}
public static int Handle(List<Tests.MethodSelection.StructA> val)
{
return 4;
}
}
}
namespace Tests
{
class MethodSelection
{
public struct StructA
{
int mA;
}
[Test]
public static void TestBasics()
{
Test.Assert(LibA.LibA0.GetOverload0<int8>() == 1);
Test.Assert(LibA.LibA0.GetOverload0<int16>() == 0);
Test.Assert(LibA.LibA0.GetOverload0<int32>() == 0);
Test.Assert(LibA.LibA0.GetOverload0<int64>() == 0);
Test.Assert(LibB.LibB0.GetOverload0<int8>() == 1);
Test.Assert(LibB.LibB0.GetOverload0<int16>() == 2);
Test.Assert(LibB.LibB0.GetOverload0<int32>() == 0);
Test.Assert(LibB.LibB0.GetOverload0<int64>() == 0);
Test.Assert(LibC.LibC0.GetOverload0<int8>() == 1);
Test.Assert(LibC.LibC0.GetOverload0<int16>() == 3);
Test.Assert(LibC.LibC0.GetOverload0<int32>() == 3);
Test.Assert(LibC.LibC0.GetOverload0<int64>() == 0);
StructA sa = .();
List<StructA> sal = null;
LibA.LibAStruct las = .();
Test.Assert(LibA.Handler.HandleT(sa) == 4);
Test.Assert(LibA.Handler.HandleT(sal) == 4);
Test.Assert(LibA.Handler.HandleT(las) == 0);
}
}
}