1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 20:42:21 +02:00

Initializer expressions

This commit is contained in:
Brian Fiete 2020-06-18 06:12:14 -07:00
parent f6e31e4976
commit 229a5aa5c5
17 changed files with 305 additions and 18 deletions

View file

@ -0,0 +1,44 @@
using System;
namespace Tests
{
class Initializers
{
struct StructA
{
public int mA = 123;
public int mB;
public int mC;
public int mD;
public int ValC
{
set mut
{
mC = value;
}
}
public void Add(float val, float? val2 = 234) mut
{
mD += (int)val;
mD += (int)val2 * 10;
}
public void Add(int val)
{
Test.FatalError("Shouldn't be called");
}
}
[Test]
public static void TestBasics()
{
StructA sa = .() { mB = 345, ValC = 456, 567.8f, 789};
Test.Assert(sa.mA == 123);
Test.Assert(sa.mB == 345);
Test.Assert(sa.mC == 456);
Test.Assert(sa.mD == 6036);
}
}
}

View file

@ -263,12 +263,21 @@ namespace Tests
const String cStr1 = "A" + "B";
const String cStr2 = cStr1 + "C" + cStrD;
Test.Assert(cStr2 == "ABCD");
Test.Assert(cStr2 === "ABCD");
const char8* cStr3 = "A" + "B";
const char8* cStr4 = cStr1 + "C" + cStrPD;
Test.Assert(StringView(cStr4) == "ABCD");
TestDefaults();
String strA = scope String("ABCD");
Test.Assert(strA == cStr2);
Test.Assert(strA !== cStr1);
let strTup = (strA, strA);
Test.Assert(strTup == (cStr2, cStr2));
Test.Assert(strTup !== (cStr2, cStr2));
}
public static TTo Convert<TFrom, TTo>(TFrom val) where TTo : operator explicit TFrom

View file

@ -6,6 +6,12 @@ namespace Tests
{
class Tuples
{
public static void Add(ref (int32, float) val)
{
val.0 += 100;
val.1 += 200;
}
[Test]
public static void TestBasic()
{
@ -21,6 +27,9 @@ namespace Tests
let v0 = tVal1.0;
Test.Assert(v0 == 2);
Add(ref tVal1);
Test.Assert(tVal1 == (a: 102, b: 203));
}
class ValClass