1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed unqualified static lookups in mixins

This commit is contained in:
Brian Fiete 2020-03-30 11:13:24 -07:00
parent 9933e4a353
commit a3020720c9
3 changed files with 10 additions and 3 deletions

View file

@ -3114,8 +3114,8 @@ BfTypedValue BfExprEvaluator::LookupIdentifier(BfAstNode* refNode, const StringI
}
}
if (!thisValue)
thisValue = BfTypedValue(mModule->mCurTypeInstance);
if (!thisValue.HasType())
thisValue = BfTypedValue(mModule->mCurTypeInstance);
BfTypedValue result = LookupField(identifierNode, thisValue, findName, BfLookupFieldFlag_IsImplicitThis);
if (mPropDef != NULL)
{

View file

@ -12062,7 +12062,7 @@ BfTypedValue BfModule::GetThis()
if (checkMethodState->mMixinState != NULL)
{
BfTypedValue thisValue = checkMethodState->mMixinState->mTarget;
if (thisValue)
if (thisValue.HasType())
{
checkMethodState->mMixinState->mLastTargetAccessId = useMethodState->GetRootMethodState()->mCurAccessId++;
if (!thisValue.mType->IsValueType())

View file

@ -7,6 +7,7 @@ namespace Tests
class MixClass
{
public int mA = 100;
public static int sA = 200;
public mixin MixA(var addTo)
{
@ -22,6 +23,11 @@ namespace Tests
AddIt();
}
public static mixin MixC(var val)
{
val + sA
}
}
[Test]
@ -32,6 +38,7 @@ namespace Tests
Test.Assert(mc.mA == 110);
mc.MixB!(10);
Test.Assert(mc.mA == 120);
Test.Assert(MixClass.MixC!(30) == 230);
}
[Test]