1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 12:32:20 +02:00
Beef/IDEHelper/Tests/src/Indexers.bf

71 lines
833 B
Beef

using System;
namespace Tests
{
class Indexers
{
class ClassA
{
public virtual int this[int index]
{
get
{
return 123;
}
}
}
class ClassB : ClassA
{
public override int this[int index]
{
get
{
return 234;
}
}
}
class ClassC : ClassB
{
}
struct StructA
{
int mA;
public int this[int index]
{
get
{
return 1;
}
get mut
{
return 2;
}
}
}
[Test]
public static void Hey()
{
ClassB cc = scope ClassC();
ClassB cb = cc;
ClassA ca = cb;
int value = cc[0];
Test.Assert(value == 234);
value = cb[0];
Test.Assert(value == 234);
value = ca[0];
Test.Assert(value == 234);
StructA sa = default;
let sa2 = sa;
Test.Assert(sa[0] == 2);
Test.Assert(sa2[0] == 1);
}
}
}