@@ -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)
{
@@ -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())
@@ -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);