1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Fixed error with generic method call on a static field

This commit is contained in:
Brian Fiete 2020-09-03 10:24:42 -07:00
parent 70c7067bb0
commit 24aaa22f7a
5 changed files with 22 additions and 8 deletions

View file

@ -5983,7 +5983,7 @@ BfType* BfModule::ResolveTypeDef(BfTypeDef* typeDef, const BfTypeVector& generic
int checkIdx = 0;
BfTypeDef* BfModule::ResolveGenericInstanceDef(BfGenericInstanceTypeRef* genericTypeRef, BfType** outType)
BfTypeDef* BfModule::ResolveGenericInstanceDef(BfGenericInstanceTypeRef* genericTypeRef, BfType** outType, BfResolveTypeRefFlags resolveFlags)
{
if (outType != NULL)
*outType = NULL;
@ -6061,13 +6061,14 @@ BfTypeDef* BfModule::ResolveGenericInstanceDef(BfGenericInstanceTypeRef* generic
}
}
if (wasGenericParam)
if ((wasGenericParam) && ((resolveFlags & BfResolveTypeRefFlag_IgnoreLookupError) == 0))
Fail("Cannot use generic param as generic instance type", typeRef);
}
if (typeDef == NULL)
{
TypeRefNotFound(typeRef);
if ((resolveFlags & BfResolveTypeRefFlag_IgnoreLookupError) == 0)
TypeRefNotFound(typeRef);
return NULL;
}
}
@ -6085,7 +6086,8 @@ BfTypeDef* BfModule::ResolveGenericInstanceDef(BfGenericInstanceTypeRef* generic
return typeInst->mTypeDef;
}
Fail("Invalid generic type", typeRef);
if ((resolveFlags & BfResolveTypeRefFlag_IgnoreLookupError) == 0)
Fail("Invalid generic type", typeRef);
return NULL;
}
@ -8273,7 +8275,7 @@ BfType* BfModule::ResolveTypeRef(BfTypeReference* typeRef, BfPopulateType popula
}
BfResolvedTypeSet::LookupContext lookupCtx;
lookupCtx.mResolveFlags = (BfResolveTypeRefFlags)(resolveFlags & BfResolveTypeRefFlag_NoCreate);
lookupCtx.mResolveFlags = (BfResolveTypeRefFlags)(resolveFlags & (BfResolveTypeRefFlag_NoCreate | BfResolveTypeRefFlag_IgnoreLookupError));
lookupCtx.mRootTypeRef = typeRef;
lookupCtx.mRootTypeDef = typeDef;
lookupCtx.mModule = this;