From 49122ae6aa5b39cb3fe2c3dcdafde16ea426e9d3 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 24 Jan 2020 11:51:02 -0800 Subject: [PATCH] Fixed 'this' calls in mixins --- IDEHelper/Compiler/BfExprEvaluator.cpp | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index cf3b8fa8..8ec2297a 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -6095,12 +6095,21 @@ BfTypedValue BfExprEvaluator::MatchMethod(BfAstNode* targetSrc, BfMethodBoundExp { checkNonStatic = false; } - else if (mModule->mCurMethodState->mTempKind != BfMethodState::TempKind_None) + else { - checkNonStatic = mModule->mCurMethodState->mTempKind == BfMethodState::TempKind_NonStatic; + if (mModule->mCurMethodState->mMixinState != NULL) + { + targetTypeInst = mModule->mCurMethodState->mMixinState->mMixinMethodInstance->GetOwner(); + curTypeDef = targetTypeInst->mTypeDef; + } + + if (mModule->mCurMethodState->mTempKind != BfMethodState::TempKind_None) + { + checkNonStatic = mModule->mCurMethodState->mTempKind == BfMethodState::TempKind_NonStatic; + } + else + checkNonStatic = !mModule->mCurMethodInstance->mMethodDef->mIsStatic; } - else - checkNonStatic = !mModule->mCurMethodInstance->mMethodDef->mIsStatic; } }