From b784101e93259fb9ec342c7db7f93a4e87300670 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 12 Feb 2022 10:58:42 -0500 Subject: [PATCH] Fixed mixin node reference with target specifiers --- IDEHelper/Compiler/BfExprEvaluator.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index dbd76d80..16964047 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -15732,6 +15732,21 @@ void BfExprEvaluator::InjectMixin(BfAstNode* targetSrc, BfTypedValue target, boo if (scopedInvocationTarget != NULL) targetNameNode = scopedInvocationTarget->mTarget; + while (true) + { + if (auto qualifiedNameNode = BfNodeDynCast(targetNameNode)) + { + targetNameNode = qualifiedNameNode->mRight; + continue; + } + if (auto memberRefExpr = BfNodeDynCast(targetNameNode)) + { + targetNameNode = memberRefExpr->mMemberName; + continue; + } + break; + } + BfTypeInstance* mixinClass = NULL; if (target.mType != NULL) mixinClass = target.mType->ToTypeInstance();