mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 03:52:19 +02:00
Improved namespace search in emitted members in types with extensions
This commit is contained in:
parent
15fd1b5f3f
commit
7406780f57
2 changed files with 9 additions and 4 deletions
|
@ -9915,7 +9915,7 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
|
||||||
else if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mMethodDef->mDeclaringType != NULL))
|
else if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mMethodDef->mDeclaringType != NULL))
|
||||||
{
|
{
|
||||||
auto declTypeDef = mCurMethodInstance->mMethodDef->mDeclaringType;
|
auto declTypeDef = mCurMethodInstance->mMethodDef->mDeclaringType;
|
||||||
useTypeDef = declTypeDef->GetDefinition();
|
useTypeDef = declTypeDef->GetDefinition(true);
|
||||||
if ((declTypeDef->IsEmitted()) && (useTypeDef->mIsCombinedPartial))
|
if ((declTypeDef->IsEmitted()) && (useTypeDef->mIsCombinedPartial))
|
||||||
{
|
{
|
||||||
// Always consider methods to belong to the primary type declaration
|
// 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)
|
else if (mContext->mCurTypeState != NULL)
|
||||||
{
|
{
|
||||||
if ((mContext->mCurTypeState->mCurFieldDef != NULL) && (mContext->mCurTypeState->mCurFieldDef->mDeclaringType != 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)
|
else if (mContext->mCurTypeState->mCurTypeDef != NULL)
|
||||||
useTypeDef = mContext->mCurTypeState->mCurTypeDef->GetDefinition();
|
useTypeDef = mContext->mCurTypeState->mCurTypeDef->GetDefinition(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
return useTypeDef;
|
return useTypeDef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1205,10 +1205,14 @@ public:
|
||||||
|
|
||||||
bool IsEmitted() { return mEmitParent != NULL; }
|
bool IsEmitted() { return mEmitParent != NULL; }
|
||||||
|
|
||||||
BfTypeDef* GetDefinition()
|
BfTypeDef* GetDefinition(bool getEmitRoot = false)
|
||||||
{
|
{
|
||||||
if (mEmitParent != NULL)
|
if (mEmitParent != NULL)
|
||||||
|
{
|
||||||
|
if ((getEmitRoot) && (mEmitParent->mIsCombinedPartial))
|
||||||
|
return mEmitParent->mPartials[0];
|
||||||
return mEmitParent;
|
return mEmitParent;
|
||||||
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue