1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 22:34:09 +02:00
Beef/IDEHelper/Tests/src/Indexers.bf

72 lines
833 B
Beef
Raw Normal View History

2020-05-13 16:28:42 -07:00
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;
}
}
}
2020-05-13 16:28:42 -07:00
[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);
2020-05-13 16:28:42 -07:00
}
}
}