From 01d9bfb66f773b6b18fc77bfb9024bbee3b8d008 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 13 Aug 2020 17:05:43 -0700 Subject: [PATCH] Properly reference alt method module --- IDEHelper/Compiler/BfExprEvaluator.cpp | 2 +- IDEHelper/Compiler/BfModule.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index f072f7c0..c4a8679d 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -14788,7 +14788,7 @@ BfMethodDef* BfExprEvaluator::GetPropertyMethodDef(BfPropertyDef* propDef, BfMet } BfModuleMethodInstance BfExprEvaluator::GetPropertyMethodInstance(BfMethodDef* methodDef) -{ +{ if (mPropDefBypassVirtual) { if (mPropTarget.mType->IsInterface()) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 37729d82..d1c1b56f 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -12402,7 +12402,10 @@ BfModuleMethodInstance BfModule::GetMethodInstance(BfTypeInstance* typeInst, BfM if (mCompiler->IsSkippingExtraResolveChecks()) return BfModuleMethodInstance(methodInstance, BfIRFunction()); - + + if (methodInstance->mDeclModule != this) + return ReferenceExternalMethodInstance(methodInstance, flags); + return BfModuleMethodInstance(methodInstance); }