From ae40f99cb4bbc22c8ba6a11530dcaf3f1f9b1332 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 25 Oct 2020 10:40:40 -0700 Subject: [PATCH] Made 'override' work for internal overrides --- IDEHelper/Compiler/BfAutoComplete.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfAutoComplete.cpp b/IDEHelper/Compiler/BfAutoComplete.cpp index ab720096..280649e1 100644 --- a/IDEHelper/Compiler/BfAutoComplete.cpp +++ b/IDEHelper/Compiler/BfAutoComplete.cpp @@ -2376,6 +2376,7 @@ void BfAutoComplete::AddOverrides(const StringImpl& filter) if (methodDef->mIsNoShow) continue; + bool allowInternalOverride = false; if (curType == mModule->mCurTypeInstance) { // The "normal" case, and only case for types without extensions @@ -2387,6 +2388,9 @@ void BfAutoComplete::AddOverrides(const StringImpl& filter) if (!curType->IsTypeMemberAccessible(methodDef->mDeclaringType, activeTypeDef)) continue; + + if (methodDef->mIsExtern) + allowInternalOverride = true; } auto& methodGroup = curType->mMethodInstanceGroups[methodDef->mIdx]; @@ -2396,7 +2400,11 @@ void BfAutoComplete::AddOverrides(const StringImpl& filter) } auto methodInst = methodGroup.mDefault; - if ((!methodDef->mIsVirtual) || (methodDef->mIsOverride)) + if (allowInternalOverride) + { + // + } + else if ((!methodDef->mIsVirtual) || (methodDef->mIsOverride)) continue; if ((methodDef->mMethodType != BfMethodType_Normal) &&