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

Fixed some struct-init-detection code

This commit is contained in:
Brian Fiete 2020-04-11 07:32:40 -07:00
parent cc47080e96
commit f869bb3978
2 changed files with 61 additions and 1 deletions

View file

@ -3586,7 +3586,7 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar
}
}
int fieldIdx = -1;
int fieldIdx = mResultLocalVarField - 1;
if (fieldIdx == -1)
{
mResultLocalVarField = minMergedDataIdx + 1;

View file

@ -0,0 +1,60 @@
namespace Tests
{
class StructInit
{
struct StructA
{
public int mA0;
}
struct StructB
{
public int mB0;
public int mB1;
}
struct StructC
{
public StructA mSA;
public StructB mSB;
public this()
{
mSA.mA0 = 1;
mSB.mB0 = 2;
mSB.mB1 = 3;
}
}
struct StructD
{
public StructC mSC;
public int mD0;
public this()
{
mSC.mSA.mA0 = 1;
mSC.mSB.mB0 = 2;
mSC.mSB.mB1 = 3;
mD0 = 4;
}
}
struct StructE
{
public StructD mSD;
public int[3] mE0;
public this()
{
mSD.mSC.mSA.mA0 = 1;
mSD.mSC.mSB.mB0 = 2;
mSD.mSC.mSB.mB1 = 3;
mSD.mD0 = 4;
mE0[0] = 5;
mE0[1] = 6;
mE0[2] = 7;
}
}
}
}