|
@@ -2376,6 +2376,7 @@ void BfAutoComplete::AddOverrides(const StringImpl& filter)
|
|
if (methodDef->mIsNoShow)
|
|
if (methodDef->mIsNoShow)
|
|
continue;
|
|
continue;
|
|
|
|
|
|
|
|
+ bool allowInternalOverride = false;
|
|
if (curType == mModule->mCurTypeInstance)
|
|
if (curType == mModule->mCurTypeInstance)
|
|
{
|
|
{
|
|
// The "normal" case, and only case for types without extensions
|
|
// 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))
|
|
if (!curType->IsTypeMemberAccessible(methodDef->mDeclaringType, activeTypeDef))
|
|
continue;
|
|
continue;
|
|
|
|
+
|
|
|
|
+ if (methodDef->mIsExtern)
|
|
|
|
+ allowInternalOverride = true;
|
|
}
|
|
}
|
|
|
|
|
|
auto& methodGroup = curType->mMethodInstanceGroups[methodDef->mIdx];
|
|
auto& methodGroup = curType->mMethodInstanceGroups[methodDef->mIdx];
|
|
@@ -2396,7 +2400,11 @@ void BfAutoComplete::AddOverrides(const StringImpl& filter)
|
|
}
|
|
}
|
|
auto methodInst = methodGroup.mDefault;
|
|
auto methodInst = methodGroup.mDefault;
|
|
|
|
|
|
- if ((!methodDef->mIsVirtual) || (methodDef->mIsOverride))
|
|
|
|
|
|
+ if (allowInternalOverride)
|
|
|
|
+ {
|
|
|
|
+ //
|
|
|
|
+ }
|
|
|
|
+ else if ((!methodDef->mIsVirtual) || (methodDef->mIsOverride))
|
|
continue;
|
|
continue;
|
|
|
|
|
|
if ((methodDef->mMethodType != BfMethodType_Normal) &&
|
|
if ((methodDef->mMethodType != BfMethodType_Normal) &&
|