mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
Small failure case fixes
This commit is contained in:
parent
d0de4776f3
commit
57c50635a0
2 changed files with 20 additions and 13 deletions
|
@ -2051,20 +2051,27 @@ bool BfMethodMatcher::CheckMethod(BfTypeInstance* targetTypeInstance, BfTypeInst
|
|||
|
||||
for (int genericArgIdx = uniqueGenericStartIdx; genericArgIdx < (int)checkMethod->mGenericParams.size(); genericArgIdx++)
|
||||
{
|
||||
auto& genericArg = mCheckMethodGenericArguments[genericArgIdx];
|
||||
if (genericArg == NULL)
|
||||
if (genericArgIdx >= mCheckMethodGenericArguments.mSize)
|
||||
{
|
||||
auto genericParam = methodInstance->mMethodInfoEx->mGenericParams[genericArgIdx];
|
||||
InferFromGenericConstraints(methodInstance, genericParam, &mCheckMethodGenericArguments);
|
||||
if (genericArg != NULL)
|
||||
failed = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto& genericArg = mCheckMethodGenericArguments[genericArgIdx];
|
||||
if (genericArg == NULL)
|
||||
{
|
||||
if (inferredAllGenericArguments)
|
||||
genericInferContext.InferGenericArguments(methodInstance, genericArgIdx);
|
||||
madeProgress = true;
|
||||
auto genericParam = methodInstance->mMethodInfoEx->mGenericParams[genericArgIdx];
|
||||
InferFromGenericConstraints(methodInstance, genericParam, &mCheckMethodGenericArguments);
|
||||
if (genericArg != NULL)
|
||||
{
|
||||
if (inferredAllGenericArguments)
|
||||
genericInferContext.InferGenericArguments(methodInstance, genericArgIdx);
|
||||
madeProgress = true;
|
||||
}
|
||||
hasUninferred = true;
|
||||
if (!allowEmptyGenericSet.Contains(genericArgIdx))
|
||||
failed = true;
|
||||
}
|
||||
hasUninferred = true;
|
||||
if (!allowEmptyGenericSet.Contains(genericArgIdx))
|
||||
failed = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue