|
@@ -2352,11 +2352,6 @@ void BfModule::UpdateCEEmit(CeEmitContext* ceEmitContext, BfTypeInstance* typeIn
|
|
defBuilder.mCurTypeDef = typeInstance->mTypeDef;
|
|
defBuilder.mCurTypeDef = typeInstance->mTypeDef;
|
|
defBuilder.mCurDeclaringTypeDef = typeInstance->mTypeDef;
|
|
defBuilder.mCurDeclaringTypeDef = typeInstance->mTypeDef;
|
|
|
|
|
|
- if (typeInstance->mTypeDef->mIsCombinedPartial)
|
|
|
|
- {
|
|
|
|
- // Always define generated methods on the primary type declaration
|
|
|
|
- defBuilder.mCurDeclaringTypeDef = typeInstance->mTypeDef->mPartials[0]->GetLatest();
|
|
|
|
- }
|
|
|
|
defBuilder.mPassInstance = mCompiler->mPassInstance;
|
|
defBuilder.mPassInstance = mCompiler->mPassInstance;
|
|
defBuilder.mIsComptime = true;
|
|
defBuilder.mIsComptime = true;
|
|
defBuilder.DoVisitChild(typeDeclaration->mDefineNode);
|
|
defBuilder.DoVisitChild(typeDeclaration->mDefineNode);
|
|
@@ -9676,7 +9671,16 @@ BfTypeDef* BfModule::GetActiveTypeDef(BfTypeInstance* typeInstanceOverride, bool
|
|
if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL) && (useMixinDecl))
|
|
if ((mCurMethodState != NULL) && (mCurMethodState->mMixinState != NULL) && (useMixinDecl))
|
|
useTypeDef = mCurMethodState->mMixinState->mMixinMethodInstance->mMethodDef->mDeclaringType->GetDefinition();
|
|
useTypeDef = mCurMethodState->mMixinState->mMixinMethodInstance->mMethodDef->mDeclaringType->GetDefinition();
|
|
else if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mMethodDef->mDeclaringType != NULL))
|
|
else if ((mCurMethodInstance != NULL) && (mCurMethodInstance->mMethodDef->mDeclaringType != NULL))
|
|
- useTypeDef = mCurMethodInstance->mMethodDef->mDeclaringType->GetDefinition();
|
|
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ auto declTypeDef = mCurMethodInstance->mMethodDef->mDeclaringType;
|
|
|
|
+ useTypeDef = declTypeDef->GetDefinition();
|
|
|
|
+ if ((declTypeDef->IsEmitted()) && (useTypeDef->mIsCombinedPartial))
|
|
|
|
+ {
|
|
|
|
+ // Always consider methods to belong to the primary type declaration
|
|
|
|
+ useTypeDef = useTypeDef->mPartials[0];
|
|
|
|
+ }
|
|
|
|
+ }
|
|
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))
|