mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 04:22:20 +02:00
Fixed 'int unknown' generic inference issue
This commit is contained in:
parent
66ab699abf
commit
20d8ae279c
2 changed files with 3 additions and 4 deletions
|
@ -320,6 +320,8 @@ bool BfGenericInferContext::InferGenericArgument(BfMethodInstance* methodInstanc
|
||||||
}
|
}
|
||||||
if ((*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] == NULL)
|
if ((*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] == NULL)
|
||||||
mInferredCount++;
|
mInferredCount++;
|
||||||
|
if ((argType != NULL) && (argType->IsIntUnknown()))
|
||||||
|
argType = mModule->FixIntUnknown(argType);
|
||||||
(*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] = argType;
|
(*mCheckMethodGenericArguments)[wantGenericParam->mGenericParamIdx] = argType;
|
||||||
if (!mPrevArgValues.IsEmpty())
|
if (!mPrevArgValues.IsEmpty())
|
||||||
mPrevArgValues[wantGenericParam->mGenericParamIdx] = argValue;
|
mPrevArgValues[wantGenericParam->mGenericParamIdx] = argValue;
|
||||||
|
|
|
@ -582,10 +582,6 @@ void BfModule::InitType(BfType* resolvedTypeRef, BfPopulateType populateType)
|
||||||
if (resolvedTypeRef->IsGenericTypeInstance())
|
if (resolvedTypeRef->IsGenericTypeInstance())
|
||||||
{
|
{
|
||||||
auto genericTypeInst = (BfTypeInstance*)resolvedTypeRef;
|
auto genericTypeInst = (BfTypeInstance*)resolvedTypeRef;
|
||||||
//BF_ASSERT(genericTypeInst->mGenericParams.size() <= genericTypeInst->mTypeGenericArguments.size());
|
|
||||||
// BF_ASSERT((genericTypeInst->mGenericParams.size() == 0) ||
|
|
||||||
// (genericTypeInst->mGenericParams.size() == genericTypeInst->mTypeGenericArguments.size()));
|
|
||||||
|
|
||||||
for (auto typeGenericArg : genericTypeInst->mGenericTypeInfo->mTypeGenericArguments)
|
for (auto typeGenericArg : genericTypeInst->mGenericTypeInfo->mTypeGenericArguments)
|
||||||
{
|
{
|
||||||
BF_ASSERT((typeGenericArg->mRebuildFlags & BfTypeRebuildFlag_Deleted) == 0);
|
BF_ASSERT((typeGenericArg->mRebuildFlags & BfTypeRebuildFlag_Deleted) == 0);
|
||||||
|
@ -598,6 +594,7 @@ void BfModule::InitType(BfType* resolvedTypeRef, BfPopulateType populateType)
|
||||||
PopulateType(genericArg, BfPopulateType_Declaration);
|
PopulateType(genericArg, BfPopulateType_Declaration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
BF_ASSERT(!typeGenericArg->IsIntUnknown());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue