1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 06:14:10 +02:00
Beef/IDEHelper/Tests/LibA/src/LibA0.bf

115 lines
1.4 KiB
Beef
Raw Normal View History

2019-08-23 11:56:54 -07:00
using System;
using System.Collections;
2019-08-23 11:56:54 -07:00
namespace LibA
{
2020-07-01 12:06:51 -07:00
struct LibAStruct
{
int mA;
}
2020-05-16 08:21:34 -07:00
interface IVal
{
int Val
{
get; set;
}
}
2019-08-23 11:56:54 -07:00
class LibA0
{
2020-05-16 08:21:34 -07:00
public static int GetVal<T>(T val) where T : IVal
{
return val.Val;
}
public static void Dispose<T>(mut T val) where T : IDisposable
{
val.Dispose();
}
public static void Alloc<T>() where T : new, delete
{
let t = new T();
delete t;
}
public static bool DictEquals(Dictionary<String, int> lhs, Dictionary<String, int> rhs)
{
return lhs == rhs;
}
2020-07-01 12:06:51 -07:00
public static int GetOverload0<T>() where T : var
{
T val = default;
return Overload0(val);
}
}
struct Handler
{
public static int Handle(Object obj)
{
return 0;
}
public static int HandleT<T>(T val) where T : var
{
return Handle(val);
}
2019-08-23 11:56:54 -07:00
}
}
class LibClassA
{
public int32 mA = GetVal(7, "LibA.LibClassA.mA");
public this()
{
PrintF("LibA.LibClassA()\n");
mA += 100;
}
public this(int32 a)
{
mA += a;
}
public static int32 GetVal(int32 val, String str)
{
PrintF("GetVal: %s\n", str.CStr());
return val;
}
public int GetVal2()
{
return 9;
}
2019-11-30 13:18:07 -08:00
public static int GetVal3(Object obj)
{
return 30;
}
2019-08-23 11:56:54 -07:00
}
class LibClassB
{
2019-11-30 13:18:07 -08:00
public static int DoGetVal3<T>(T val)
{
return LibClassA.GetVal3(val);
}
2020-07-01 12:06:51 -07:00
}
static
{
public static int Overload0(Object a)
{
return 0;
}
public static int Overload0(int8 a)
{
return 1;
}
}