1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Improved namespace search in emitted members in types with extensions

This commit is contained in:
Brian Fiete 2022-08-25 07:46:37 -07:00
parent 15fd1b5f3f
commit 7406780f57
2 changed files with 9 additions and 4 deletions

View file

@ -9915,7 +9915,7 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
else if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mMethodDef->mDeclaringType != NULL))
{
auto declTypeDef = mCurMethodInstance->mMethodDef->mDeclaringType;
useTypeDef = declTypeDef->GetDefinition();
useTypeDef = declTypeDef->GetDefinition(true);
if ((declTypeDef->IsEmitted()) && (useTypeDef->mIsCombinedPartial))
{
// Always consider methods to belong to the primary type declaration
@ -9925,10 +9925,11 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
else if (mContext->mCurTypeState != NULL)
{
if ((mContext->mCurTypeState->mCurFieldDef != NULL) && (mContext->mCurTypeState->mCurFieldDef->mDeclaringType != NULL))
useTypeDef = mContext->mCurTypeState->mCurFieldDef->mDeclaringType->GetDefinition();
useTypeDef = mContext->mCurTypeState->mCurFieldDef->mDeclaringType->GetDefinition(true);
else if (mContext->mCurTypeState->mCurTypeDef != NULL)
useTypeDef = mContext->mCurTypeState->mCurTypeDef->GetDefinition();
useTypeDef = mContext->mCurTypeState->mCurTypeDef->GetDefinition(true);
}
return useTypeDef;
}

View file

@ -1205,10 +1205,14 @@ public:
bool IsEmitted() { return mEmitParent != NULL; }
BfTypeDef* GetDefinition()
BfTypeDef* GetDefinition(bool getEmitRoot = false)
{
if (mEmitParent != NULL)
{
if ((getEmitRoot) && (mEmitParent->mIsCombinedPartial))
return mEmitParent->mPartials[0];
return mEmitParent;
}
return this;
}