1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-14 14:24:10 +02:00

Allow ctor calls with a 'var' constraint

This commit is contained in:
Brian Fiete 2020-12-30 05:35:37 -08:00
parent d31dc16621
commit 9eb3d8c3a5

View file

@ -13145,6 +13145,12 @@ void BfExprEvaluator::CreateObject(BfObjectCreateExpression* objCreateExpr, BfAs
{
auto genericParam = mModule->GetGenericParamInstance((BfGenericParamType*)resolvedTypeRef);
if (genericParam->mTypeConstraint == NULL)
{
if ((genericParam->mGenericParamFlags & BfGenericParamFlag_Var) != 0)
{
// Allow it
}
else
{
if ((genericParam->mGenericParamFlags & BfGenericParamFlag_New) == 0)
{
@ -13155,6 +13161,7 @@ void BfExprEvaluator::CreateObject(BfObjectCreateExpression* objCreateExpr, BfAs
mModule->Fail(StrFormat("Only default parameterless constructors can be called on generic argument '%s'", genericParam->GetName().c_str()), objCreateExpr->mTypeRef);
}
}
}
if (((genericParam->mTypeConstraint != NULL) && (genericParam->mTypeConstraint->IsValueType())) ||
((genericParam->mGenericParamFlags & (BfGenericParamFlag_Struct | BfGenericParamFlag_StructPtr)) != 0))