mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
71 lines
833 B
Beef
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);
|
|
}
|
|
}
|
|
}
|