1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-28 20:46:00 +02:00
Beef/IDE/mintest/src/main3.bf

212 lines
2.6 KiB
Beef
Raw Normal View History

//GORB
#pragma warning disable 168
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading;
//#define A
//#define B
2019-11-25 06:48:19 -08:00
struct StructA
{
2019-11-25 06:48:19 -08:00
public int mA;
2019-11-25 06:48:19 -08:00
public static StructA operator+(StructA lhs, float rhs)
{
2019-11-25 06:48:19 -08:00
StructA newVal = .();
newVal.mA = lhs.mA + (int)rhs;
return newVal;
}
}
2019-11-25 06:48:19 -08:00
struct StructB
{
2019-11-25 06:48:19 -08:00
public int mA;
2019-11-25 06:48:19 -08:00
public static bool operator==(StructA lhs, StructB rhs)
{
2019-11-25 06:48:19 -08:00
return lhs.mA == rhs.mA;
}
}
2019-11-25 06:48:19 -08:00
struct StructC
{
public int mA;
2019-11-25 06:48:19 -08:00
public static operator StructD(StructC val)
{
2019-11-25 06:48:19 -08:00
StructD conv;
conv.mA = val.mA;
return conv;
}
}
2019-11-25 06:48:19 -08:00
struct StructD
{
2019-11-25 06:48:19 -08:00
public int mA;
2019-11-25 06:48:19 -08:00
public static operator StructD(StructC val)
{
2019-11-25 06:48:19 -08:00
StructC conv;
conv.mA = val.mA;
return conv;
}
}
2019-11-25 06:48:19 -08:00
struct StructE
{
public int mA;
2019-11-25 06:48:19 -08:00
public static operator StructD(StructE val)
{
2019-11-25 06:48:19 -08:00
StructC conv;
conv.mA = val.mA;
return conv;
}
}
2019-11-25 06:48:19 -08:00
class ClassA
{
2019-11-25 06:48:19 -08:00
public int mA;
}
2019-11-25 06:48:19 -08:00
struct StructK
{
}
2019-11-25 06:48:19 -08:00
struct StructL : StructK
{
2019-11-25 06:48:19 -08:00
public int mA;
}
2019-11-25 06:48:19 -08:00
struct Checker
{
2019-11-25 06:48:19 -08:00
public static int CheckIt(int* iPtr, int len)
2019-09-29 07:44:39 -07:00
{
2019-11-25 06:48:19 -08:00
int acc = 0;
for (int i < len)
{
acc += iPtr[i];
}
return acc;
2019-09-29 07:44:39 -07:00
}
2019-11-25 06:48:19 -08:00
public static int CheckItSpan(int* iPtr, int len)
{
2019-11-25 06:48:19 -08:00
Span<int> span = .(iPtr, len);
2019-11-25 06:48:19 -08:00
int acc = 0;
for (int i < len)
2019-10-09 16:20:09 -07:00
{
2019-11-25 06:48:19 -08:00
acc += span[i];
2019-10-09 16:20:09 -07:00
}
2019-11-25 06:48:19 -08:00
return acc;
}
2019-11-25 06:48:19 -08:00
public static int CheckItSpanOpt(int* iPtr, int len)
{
2019-11-25 06:48:19 -08:00
OptSpan<int> span = .(iPtr, len);
2019-11-25 06:48:19 -08:00
int acc = 0;
for (int i < len)
{
2019-11-25 06:48:19 -08:00
acc += span[i];
}
2019-11-25 06:48:19 -08:00
return acc;
2019-10-09 16:20:09 -07:00
}
2019-09-29 07:44:39 -07:00
}
2019-10-09 16:20:09 -07:00
struct Blurg
2019-09-29 07:44:39 -07:00
{
2019-11-25 06:48:19 -08:00
static int GetHash<T>(T val) where T : IHashable
{
2019-11-25 06:48:19 -08:00
return val.GetHashCode();
}
2019-11-25 06:48:19 -08:00
public static int32 LongCall(
int abcdefghijklmnopqrstuvwxyz0,
int abcdefghijklmnopqrstuvwxyz1,
int abcdefghijklmnopqrstuvwxyz2,
int abcdefghijklmnopqrstuvwxyz3,
int abcdefghijklmnopqrstuvwxyz4,
int abcdefghijklmnopqrstuvwxyz5,
int abcdefghijklmnopqrstuvwxyz6,
int abcdefghijklmnopqrstuvwxyz7,
int abcdefghijklmnopqrstuvwxyz8,
int abcdefghijklmnopqrstuvwxyz9
)
{
2019-11-25 06:48:19 -08:00
return 0;
}
2019-11-27 08:02:15 -08:00
static mixin ScopedAlloc(int size, int align)
{
//(void*)scope:mixin [Align(align)] uint8[size]* { ? }
}
public static void TestAlloc()
{
int i = 1;
if (i == 1)
{
int size = 128;
scope:: int[size]*;
}
}
struct StructA
{
public int[10] mA;
}
enum EnumA
{
case None;
case A(StructA sa);
}
enum EnumB
{
case A;
case B(int a, int b);
}
2019-09-29 07:44:39 -07:00
public static int32 Hey()
{
2019-11-27 08:02:15 -08:00
//int_test val = 123;
2019-11-27 08:02:15 -08:00
(int, int) tup = (1, 3);
2019-11-27 08:02:15 -08:00
switch (tup)
{
case (1, var ref a):
a++;
PrintF("A\n");
default:
PrintF("B\n");
}
2019-10-09 16:20:09 -07:00
2019-11-27 08:02:15 -08:00
if (tup case (1, var ref aa))
{
aa += 100;
}
2019-11-27 08:02:15 -08:00
/*EnumB eb = .B(1, 2);
2019-11-27 08:02:15 -08:00
if (eb case .B(1, var ref bb))
{
2019-11-27 08:02:15 -08:00
}*/
2019-11-25 06:48:19 -08:00
return 123;
2019-09-29 07:44:39 -07:00
}
}