mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 20:42:21 +02:00
Initializer expressions
This commit is contained in:
parent
f6e31e4976
commit
229a5aa5c5
17 changed files with 305 additions and 18 deletions
44
IDEHelper/Tests/src/Initializers.bf
Normal file
44
IDEHelper/Tests/src/Initializers.bf
Normal 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);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue