diff --git a/IDEHelper/Compiler/BfMangler.cpp b/IDEHelper/Compiler/BfMangler.cpp index a092e329..0f0e274f 100644 --- a/IDEHelper/Compiler/BfMangler.cpp +++ b/IDEHelper/Compiler/BfMangler.cpp @@ -901,7 +901,9 @@ String BfGNUMangler::Mangle(BfMethodInstance* methodInst) else if (methodDef->mCheckedKind == BfCheckedKind_Unchecked) name += "`UCHK"; - if ((methodInst->mMethodDef->mDeclaringType->mPartialIdx != -1) && (!methodInst->mIsForeignMethodDef)) + if ((methodInst->mMethodDef->mDeclaringType->mPartialIdx != -1) && (methodInst->mMethodDef->mDeclaringType->IsExtension()) && + (!methodInst->mIsForeignMethodDef) && (!methodInst->mMethodDef->mIsExtern) && + ((!methodInst->mMethodDef->mIsOverride) || (methodDef->mName == BF_METHODNAME_MARKMEMBERS) || (methodDef->mMethodType == BfMethodType_Dtor))) { auto declType = methodInst->mMethodDef->mDeclaringType; BF_ASSERT(methodInst->GetOwner()->mTypeDef->mIsCombinedPartial);